Comparing version 4.0.0-beta.4 to 4.0.0-beta.5
@@ -16,9 +16,3 @@ import { type ChildModel, type ModelData } from 'racer'; | ||
singleton?: true | undefined; | ||
view?: { | ||
dependencies?: any[]; | ||
file?: string; | ||
is: string; | ||
source?: string; | ||
viewPartialDependencies?: string[]; | ||
}; | ||
view?: ComponentViewDefinition; | ||
} | ||
@@ -35,2 +29,11 @@ export interface SingletonComponentConstructor { | ||
} | ||
export interface ComponentViewDefinition { | ||
dependencies?: ComponentConstructor[]; | ||
file?: string; | ||
is?: string; | ||
source?: string; | ||
viewPartialDependencies?: Array<string | { | ||
is: string; | ||
}>; | ||
} | ||
export declare abstract class Component extends Controller { | ||
@@ -44,8 +47,3 @@ context: Context; | ||
_scope: string[]; | ||
view?: { | ||
dependencies: ComponentConstructor[]; | ||
file: string; | ||
is: string; | ||
source: string; | ||
}; | ||
view?: ComponentViewDefinition; | ||
static DataConstructor?: DataConstructor; | ||
@@ -52,0 +50,0 @@ constructor(context: Context, data: ComponentModelData); |
@@ -1,7 +0,9 @@ | ||
import { type App } from './App'; | ||
import { util } from 'racer'; | ||
import { Derby, type DerbyBase } from './Derby'; | ||
import { type Page } from './Page'; | ||
import { type PageParams } from './routes'; | ||
export { type App } from './App'; | ||
export { type Page, type PageBase, PageForClient } from './Page'; | ||
export { PageForServer } from './PageForServer'; | ||
export { Component, type ComponentConstructor, type ComponentViewDefinition } from './components'; | ||
export { type PageParams } from './routes'; | ||
declare const instance: DerbyBase; | ||
declare const Component: typeof import("./components").Component; | ||
export { App, Component, Derby, instance, Page, PageParams, }; | ||
export { Derby, instance, util, }; |
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.instance = exports.Derby = exports.Component = void 0; | ||
exports.util = exports.instance = exports.Derby = exports.Component = exports.PageForServer = exports.PageForClient = void 0; | ||
var racer_1 = require("racer"); | ||
Object.defineProperty(exports, "util", { enumerable: true, get: function () { return racer_1.util; } }); | ||
var Derby_1 = require("./Derby"); | ||
Object.defineProperty(exports, "Derby", { enumerable: true, get: function () { return Derby_1.Derby; } }); | ||
var Page_1 = require("./Page"); | ||
Object.defineProperty(exports, "PageForClient", { enumerable: true, get: function () { return Page_1.PageForClient; } }); | ||
var PageForServer_1 = require("./PageForServer"); | ||
Object.defineProperty(exports, "PageForServer", { enumerable: true, get: function () { return PageForServer_1.PageForServer; } }); | ||
var components_1 = require("./components"); | ||
Object.defineProperty(exports, "Component", { enumerable: true, get: function () { return components_1.Component; } }); | ||
var DerbyClass = racer_1.util.isServer | ||
@@ -11,3 +18,1 @@ ? racer_1.util.serverRequire(module, './DerbyForServer').DerbyForServer | ||
exports.instance = instance; | ||
var Component = instance.Component; | ||
exports.Component = Component; |
@@ -0,1 +1,10 @@ | ||
import 'chai'; | ||
declare global { | ||
export namespace Chai { | ||
interface Assertion { | ||
html(expectedText: string | undefined, options: any): void; | ||
render(expectedText: string | undefined, options: any): void; | ||
} | ||
} | ||
} | ||
/** | ||
@@ -2,0 +11,0 @@ * @param { {window: Window } } [dom] - _optional_ - An object that will have a `window` property |
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.assertions = void 0; | ||
var ComponentHarness_1 = require("./ComponentHarness"); | ||
require("chai"); | ||
/** | ||
@@ -5,0 +6,0 @@ * @param { {window: Window } } [dom] - _optional_ - An object that will have a `window` property |
@@ -7,3 +7,6 @@ /// <reference types="node" /> | ||
import { PageForClient } from '../Page'; | ||
declare class PageForHarness extends PageForClient { | ||
export interface RenderOptions { | ||
url?: string; | ||
} | ||
export declare class PageForHarness extends PageForClient { | ||
component?: Component; | ||
@@ -13,3 +16,3 @@ fragment?: any; | ||
} | ||
declare class AppForHarness extends App { | ||
export declare class AppForHarness extends App { | ||
_harness: any; | ||
@@ -32,4 +35,5 @@ _pages: PageForHarness[]; | ||
app: AppForHarness; | ||
document: Document; | ||
model: RootModel; | ||
page: PageForHarness; | ||
model: RootModel; | ||
constructor(); | ||
@@ -60,3 +64,5 @@ /** @typedef { {view: {is: string, source?: string}} } InlineComponent */ | ||
*/ | ||
stub(): this; | ||
stub(...args: Array<string | { | ||
is: string; | ||
}>): this; | ||
/** | ||
@@ -71,3 +77,5 @@ * Stubs out view names as components. | ||
*/ | ||
stubComponent(): this; | ||
stubComponent(...args: Array<string | { | ||
is: string; | ||
}>): this; | ||
/** | ||
@@ -99,4 +107,14 @@ * @typedef {Object} RenderOptions | ||
_get(renderFn: (page: PageForHarness) => void, options?: any): PageForHarness; | ||
/** | ||
* Instantiates a component and calls its `init()` if present, without rendering it. | ||
* | ||
* This can be used in place of `new MyComponent()` in old tests that were written prior to the | ||
* component test framework being developed. | ||
* | ||
* @param Ctor - class (constructor) for the component to instantiate | ||
* @param rootModel - a root model | ||
* @returns a newly instantiated component, with its `init()` already called if present | ||
*/ | ||
createNonRenderedComponent(Ctor: ComponentConstructor, rootModel: RootModel): any; | ||
static createStubComponent(options: any): ComponentConstructor; | ||
} | ||
export {}; |
@@ -26,3 +26,3 @@ var __extends = (this && this.__extends) || (function () { | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.ComponentHarness = void 0; | ||
exports.ComponentHarness = exports.AppForHarness = exports.PageForHarness = void 0; | ||
var events_1 = require("events"); | ||
@@ -44,2 +44,3 @@ var url_1 = require("url"); | ||
}(Page_1.PageForClient)); | ||
exports.PageForHarness = PageForHarness; | ||
var AppForHarness = /** @class */ (function (_super) { | ||
@@ -82,2 +83,3 @@ __extends(AppForHarness, _super); | ||
}(App_1.App)); | ||
exports.AppForHarness = AppForHarness; | ||
/** | ||
@@ -135,3 +137,7 @@ * Creates a `ComponentHarness`. | ||
ComponentHarness.prototype.stub = function () { | ||
for (var i = 0; i < arguments.length; i++) { | ||
var args = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
args[_i] = arguments[_i]; | ||
} | ||
for (var i = 0; i < args.length; i++) { | ||
// eslint-disable-next-line prefer-rest-params | ||
@@ -161,3 +167,7 @@ var arg = arguments[i]; | ||
ComponentHarness.prototype.stubComponent = function () { | ||
for (var i = 0; i < arguments.length; i++) { | ||
var args = []; | ||
for (var _i = 0; _i < arguments.length; _i++) { | ||
args[_i] = arguments[_i]; | ||
} | ||
for (var i = 0; i < args.length; i++) { | ||
// eslint-disable-next-line prefer-rest-params | ||
@@ -256,2 +266,24 @@ var arg = arguments[i]; | ||
}; | ||
/** | ||
* Instantiates a component and calls its `init()` if present, without rendering it. | ||
* | ||
* This can be used in place of `new MyComponent()` in old tests that were written prior to the | ||
* component test framework being developed. | ||
* | ||
* @param Ctor - class (constructor) for the component to instantiate | ||
* @param rootModel - a root model | ||
* @returns a newly instantiated component, with its `init()` already called if present | ||
*/ | ||
ComponentHarness.prototype.createNonRenderedComponent = function (Ctor, rootModel) { | ||
// If the component doesn't already extend Component, then do so. | ||
// This normally happens when calling `app.component(Ctor)` to register a component: | ||
// https://github.com/derbyjs/derby/blob/2ababe7c805c59e51ddef0153cb8c5f6b66dd4ce/lib/App.js#L278-L279 | ||
(0, components_1.extendComponent)(Ctor); | ||
// Mimic Derby's component creation process: | ||
// createFactory: https://github.com/derbyjs/derby/blob/57d28637e8489244cc8438041e6c61d9468cd344/lib/components.js#L346 | ||
// Factory#init: https://github.com/derbyjs/derby/blob/57d28637e8489244cc8438041e6c61d9468cd344/lib/components.js#L370-L392 | ||
// new Page: https://github.com/derbyjs/derby/blob/57d28637e8489244cc8438041e6c61d9468cd344/lib/Page.js#L15 | ||
// Context#controller: https://github.com/derbyjs/derby-templates/blob/master/lib/contexts.js#L19-L25 | ||
return (0, components_1.createFactory)(Ctor).init(new Page_1.PageForClient(this.app, rootModel).context).controller; | ||
}; | ||
ComponentHarness.createStubComponent = function (options) { | ||
@@ -258,0 +290,0 @@ return createStubComponent(options); |
export { assertions } from './assertions'; | ||
export { ComponentHarness } from './ComponentHarness'; | ||
export { install as domTestRunner } from './domTestRunner'; | ||
export { ComponentHarness, type RenderOptions, PageForHarness } from './ComponentHarness'; | ||
export { install as domTestRunner, DomTestRunner } from './domTestRunner'; |
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.domTestRunner = exports.ComponentHarness = exports.assertions = void 0; | ||
exports.DomTestRunner = exports.domTestRunner = exports.PageForHarness = exports.ComponentHarness = exports.assertions = void 0; | ||
var assertions_1 = require("./assertions"); | ||
@@ -7,3 +7,5 @@ Object.defineProperty(exports, "assertions", { enumerable: true, get: function () { return assertions_1.assertions; } }); | ||
Object.defineProperty(exports, "ComponentHarness", { enumerable: true, get: function () { return ComponentHarness_1.ComponentHarness; } }); | ||
Object.defineProperty(exports, "PageForHarness", { enumerable: true, get: function () { return ComponentHarness_1.PageForHarness; } }); | ||
var domTestRunner_1 = require("./domTestRunner"); | ||
Object.defineProperty(exports, "domTestRunner", { enumerable: true, get: function () { return domTestRunner_1.install; } }); | ||
Object.defineProperty(exports, "DomTestRunner", { enumerable: true, get: function () { return domTestRunner_1.DomTestRunner; } }); |
{ | ||
"name": "derby", | ||
"description": "MVC framework making it easy to write realtime, collaborative applications that run in both Node.js and browsers.", | ||
"version": "4.0.0-beta.4", | ||
"version": "4.0.0-beta.5", | ||
"homepage": "http://derbyjs.com/", | ||
@@ -24,3 +24,4 @@ "repository": { | ||
"./test-utils": "./dist/test-utils/index.js", | ||
"./test-utils/*": "./dist/test-utils/*.js" | ||
"./test-utils/*": "./dist/test-utils/*.js", | ||
"./file-utils": "./dist/files.js" | ||
}, | ||
@@ -72,3 +73,3 @@ "files": [ | ||
"prettier": "^3.0.1", | ||
"racer": "^2.0.0-beta.4", | ||
"racer": "^v2.0.0-beta.8", | ||
"ts-node": "^10.9.2", | ||
@@ -78,3 +79,3 @@ "typescript": "~5.1.3" | ||
"peerDependencies": { | ||
"racer": "^2.0.0-beta.4" | ||
"racer": "^v2.0.0-beta.8" | ||
}, | ||
@@ -81,0 +82,0 @@ "optionalDependencies": {}, |
410631
9939