@desk-framework/frame-test
Advanced tools
Comparing version 4.0.0-dev.17 to 4.0.0-dev.18
@@ -47,3 +47,3 @@ import { ConfigOptions, app, } from "@desk-framework/frame-core"; | ||
if (options.captureLogs) { | ||
app.addLogHandler(0, (msg) => { | ||
app.log.addHandler(0, (msg) => { | ||
let tests = TestScope.getRunningTests(); | ||
@@ -50,0 +50,0 @@ for (let t of tests) { |
@@ -1,2 +0,2 @@ | ||
import { Observer, RenderContext, UIStyle, app, } from "@desk-framework/frame-core"; | ||
import { ManagedEvent, Observer, UIStyle, app, } from "@desk-framework/frame-core"; | ||
/** UI component event names that are used for basic platform events */ | ||
@@ -73,4 +73,6 @@ const _eventNames = { | ||
observe(observed) { | ||
this._thisRenderedEvent = new ManagedEvent("Rendered", observed, undefined, undefined, undefined, true); | ||
return super.observe(observed).observePropertyAsync("hidden", "position"); | ||
} | ||
_thisRenderedEvent; | ||
/** Handler for base property changes; must be overridden to handle other UI component properties */ | ||
@@ -140,3 +142,4 @@ async handlePropertyChange(property, value, event) { | ||
if (baseEvent && this.observed && !this.observed.isUnlinked()) { | ||
this.observed.emit(baseEvent, data); | ||
let event = new ManagedEvent(baseEvent, this.observed, data, undefined, undefined, baseEvent === "MouseEnter" || baseEvent === "MouseLeave"); | ||
this.observed.emit(event); | ||
} | ||
@@ -146,3 +149,4 @@ } | ||
onRender(event) { | ||
if (event.render && event.source === this.observed) { | ||
if (typeof event.data.render === "function" && | ||
event.source === this.observed) { | ||
if (!this.element) { | ||
@@ -161,3 +165,3 @@ // create output element if needed | ||
// call render callback with new element | ||
this.updateCallback = event.render.call(undefined, this._hidden ? undefined : this.output, () => { | ||
this.updateCallback = event.data.render.call(undefined, this._hidden ? undefined : this.output, () => { | ||
// try to focus if requested | ||
@@ -170,3 +174,3 @@ if (this._requestedFocus && this.element && !this._hidden) { | ||
if (this.observed && !this.observed.isUnlinked()) { | ||
this.observed.emit(new RenderContext.RendererEvent("Rendered", this.observed)); | ||
this.observed.emit(this._thisRenderedEvent); | ||
} | ||
@@ -173,0 +177,0 @@ }); |
@@ -134,4 +134,3 @@ import { RenderContext, app, } from "@desk-framework/frame-core"; | ||
remount() { | ||
this.emitChange(); | ||
return this; | ||
return this.emitChange("Remount"); | ||
} | ||
@@ -138,0 +137,0 @@ /** Returns true if any output is currently rendered at all */ |
@@ -1,3 +0,2 @@ | ||
import { RenderContext, ui, } from "@desk-framework/frame-core"; | ||
import { TestOutputElement } from "../app/TestOutputElement.js"; | ||
import { ui } from "@desk-framework/frame-core"; | ||
import { getBaseStyleClass } from "./TestBaseObserver.js"; | ||
@@ -31,9 +30,15 @@ import { UIContainerRenderer } from "./UIContainerRenderer.js"; | ||
throw ReferenceError(); | ||
let elt = new TestOutputElement("cell"); | ||
let output = new RenderContext.Output(this.observed, elt); | ||
elt.output = output; | ||
let output = super.getOutput(); | ||
if (this.observed.allowFocus || this.observed.allowKeyboardFocus) | ||
elt.focusable = true; | ||
output.element.focusable = true; | ||
return output; | ||
} | ||
updateContent(element) { | ||
let cell = this.observed; | ||
if (!cell) | ||
return; | ||
super.updateContent(element); | ||
if (cell.allowFocus || cell.allowKeyboardFocus) | ||
element.focusable = true; | ||
} | ||
updateStyle(element) { | ||
@@ -40,0 +45,0 @@ let cell = this.observed; |
@@ -1,2 +0,2 @@ | ||
import { RenderContext, UIColumn, UIRow, UIScrollContainer, app, } from "@desk-framework/frame-core"; | ||
import { RenderContext, UICell, UIColumn, UIRow, UIScrollContainer, app, } from "@desk-framework/frame-core"; | ||
import { TestOutputElement } from "../app/TestOutputElement.js"; | ||
@@ -42,10 +42,16 @@ import { TestBaseObserver, applyElementStyle } from "./TestBaseObserver.js"; | ||
throw ReferenceError(); | ||
let isRow = this.observed instanceof UIRow; | ||
let isColumn = this.observed instanceof UIColumn; | ||
let isForm = this.observed.accessibleRole === "form"; | ||
let elt = new TestOutputElement(isRow ? "row" : isColumn ? "column" : isForm ? "form" : "container"); | ||
let type; | ||
if (this.observed.accessibleRole === "form") | ||
type = "form"; | ||
else if (this.observed instanceof UICell) | ||
type = "cell"; | ||
else if (this.observed instanceof UIRow) | ||
type = "row"; | ||
else if (this.observed instanceof UIColumn) | ||
type = "column"; | ||
else | ||
type = "container"; | ||
let elt = new TestOutputElement(type); | ||
let output = new RenderContext.Output(this.observed, elt); | ||
elt.output = output; | ||
if (this.observed.allowFocus || this.observed.allowKeyboardFocus) | ||
elt.focusable = true; | ||
return output; | ||
@@ -72,4 +78,2 @@ } | ||
this.contentUpdater.update(container.content); | ||
if (container.allowFocus || container.allowKeyboardFocus) | ||
element.focusable = true; | ||
} | ||
@@ -148,4 +152,2 @@ contentUpdater; | ||
} | ||
// emit renderer event | ||
this._emitRendering(outputs); | ||
// unset parent reference for removed elements | ||
@@ -205,3 +207,2 @@ for (let old of this.element.content) { | ||
// no output... delete last element now | ||
this._emitRendering(); | ||
let content = this.element.content; | ||
@@ -221,3 +222,2 @@ if (lastElt) { | ||
// can replace... | ||
this._emitRendering(); | ||
if (lastElt !== output.element) { | ||
@@ -286,9 +286,2 @@ let content = this.element.content; | ||
} | ||
/** Emit ContentRendering event on container, when deleting or replacing an element */ | ||
_emitRendering(output) { | ||
let event = new RenderContext.RendererEvent("ContentRendering", this.container, { | ||
output: output || this.content.map((c) => this._output.get(c)), | ||
}); | ||
this.container.emit(event); | ||
} | ||
_stopped; | ||
@@ -295,0 +288,0 @@ _async; |
@@ -1,2 +0,2 @@ | ||
import { app } from "@desk-framework/frame-core"; | ||
import { GlobalContext } from "@desk-framework/frame-core"; | ||
import { testLogsToString } from "./log.js"; | ||
@@ -15,3 +15,3 @@ import { TestCase } from "./TestCase.js"; | ||
_handled = true; | ||
app.setErrorHandler((error) => { | ||
GlobalContext.setErrorHandler((error) => { | ||
if (runningTests.length) { | ||
@@ -18,0 +18,0 @@ for (let t of runningTests) |
{ | ||
"name": "@desk-framework/frame-test", | ||
"version": "4.0.0-dev.17", | ||
"version": "4.0.0-dev.18", | ||
"publishConfig": { | ||
@@ -32,3 +32,3 @@ "tag": "next" | ||
"peerDependencies": { | ||
"@desk-framework/frame-core": "4.0.0-dev.17" | ||
"@desk-framework/frame-core": "4.0.0-dev.18" | ||
}, | ||
@@ -35,0 +35,0 @@ "devDependencies": { |
@@ -68,3 +68,3 @@ import { | ||
if (options.captureLogs) { | ||
app.addLogHandler(0, (msg) => { | ||
app.log.addHandler(0, (msg) => { | ||
let tests = TestScope.getRunningTests(); | ||
@@ -71,0 +71,0 @@ for (let t of tests) { |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
Observer, | ||
@@ -92,5 +92,15 @@ RenderContext, | ||
override observe(observed: TUIComponent) { | ||
this._thisRenderedEvent = new ManagedEvent( | ||
"Rendered", | ||
observed, | ||
undefined, | ||
undefined, | ||
undefined, | ||
true, | ||
); | ||
return super.observe(observed).observePropertyAsync("hidden", "position"); | ||
} | ||
private _thisRenderedEvent?: ManagedEvent; | ||
/** Handler for base property changes; must be overridden to handle other UI component properties */ | ||
@@ -100,3 +110,3 @@ protected override async handlePropertyChange( | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -181,3 +191,11 @@ if (this.observed && this.element) { | ||
if (baseEvent && this.observed && !this.observed.isUnlinked()) { | ||
this.observed.emit(baseEvent, data); | ||
let event = new ManagedEvent( | ||
baseEvent, | ||
this.observed, | ||
data, | ||
undefined, | ||
undefined, | ||
baseEvent === "MouseEnter" || baseEvent === "MouseLeave", | ||
); | ||
this.observed.emit(event); | ||
} | ||
@@ -187,4 +205,9 @@ } | ||
/** Render event handler, calls encapsulated render callback with existing or new output */ | ||
onRender(event: RenderContext.RendererEvent) { | ||
if (event.render && event.source === this.observed) { | ||
onRender( | ||
event: ManagedEvent<UIComponent, { render: RenderContext.RenderCallback }>, | ||
) { | ||
if ( | ||
typeof event.data.render === "function" && | ||
event.source === this.observed | ||
) { | ||
if (!this.element) { | ||
@@ -205,3 +228,3 @@ // create output element if needed | ||
// call render callback with new element | ||
this.updateCallback = event.render.call( | ||
this.updateCallback = event.data.render.call( | ||
undefined, | ||
@@ -218,5 +241,3 @@ this._hidden ? undefined : this.output, | ||
if (this.observed && !this.observed.isUnlinked()) { | ||
this.observed.emit( | ||
new RenderContext.RendererEvent("Rendered", this.observed), | ||
); | ||
this.observed.emit(this._thisRenderedEvent); | ||
} | ||
@@ -231,3 +252,3 @@ }, | ||
/** Focus current element if possible */ | ||
onRequestFocus(event: RenderContext.RendererEvent) { | ||
onRequestFocus(event: ManagedEvent) { | ||
if (event.source === this.observed) { | ||
@@ -243,3 +264,3 @@ if (this.element) | ||
/** Focus next sibling element if possible */ | ||
onRequestFocusNext(event: RenderContext.RendererEvent) { | ||
onRequestFocusNext(event: ManagedEvent) { | ||
if (event.source === this.observed && this.element) { | ||
@@ -262,3 +283,3 @@ let current = this.element; | ||
/** Focus previous sibling element if possible */ | ||
onRequestFocusPrevious(event: RenderContext.RendererEvent) { | ||
onRequestFocusPrevious(event: ManagedEvent) { | ||
if (event.source === this.observed && this.element) { | ||
@@ -265,0 +286,0 @@ let current = this.element; |
@@ -161,4 +161,3 @@ import { | ||
remount() { | ||
this.emitChange(); | ||
return this; | ||
return this.emitChange("Remount"); | ||
} | ||
@@ -165,0 +164,0 @@ |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
RenderContext, | ||
@@ -33,3 +33,3 @@ UIButton, | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -36,0 +36,0 @@ if (this.observed && this.element) { |
@@ -1,7 +0,2 @@ | ||
import { | ||
ManagedChangeEvent, | ||
RenderContext, | ||
UICell, | ||
ui, | ||
} from "@desk-framework/frame-core"; | ||
import { ManagedEvent, UICell, ui } from "@desk-framework/frame-core"; | ||
import { TestOutputElement } from "../app/TestOutputElement.js"; | ||
@@ -29,3 +24,3 @@ import { getBaseStyleClass } from "./TestBaseObserver.js"; | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -50,10 +45,15 @@ if (this.observed && this.element) { | ||
if (!this.observed) throw ReferenceError(); | ||
let elt = new TestOutputElement("cell"); | ||
let output = new RenderContext.Output(this.observed, elt); | ||
elt.output = output; | ||
let output = super.getOutput(); | ||
if (this.observed.allowFocus || this.observed.allowKeyboardFocus) | ||
elt.focusable = true; | ||
output.element.focusable = true; | ||
return output; | ||
} | ||
override updateContent(element: TestOutputElement) { | ||
let cell = this.observed; | ||
if (!cell) return; | ||
super.updateContent(element); | ||
if (cell.allowFocus || cell.allowKeyboardFocus) element.focusable = true; | ||
} | ||
override updateStyle(element: TestOutputElement) { | ||
@@ -60,0 +60,0 @@ let cell = this.observed; |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
RenderContext, | ||
UICell, | ||
UIColumn, | ||
@@ -41,3 +42,3 @@ UIContainer, | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -61,12 +62,11 @@ if (this.observed && this.element) { | ||
if (!this.observed) throw ReferenceError(); | ||
let isRow = this.observed instanceof UIRow; | ||
let isColumn = this.observed instanceof UIColumn; | ||
let isForm = this.observed.accessibleRole === "form"; | ||
let elt = new TestOutputElement( | ||
isRow ? "row" : isColumn ? "column" : isForm ? "form" : "container", | ||
); | ||
let type: TestOutputElement.TypeString; | ||
if (this.observed.accessibleRole === "form") type = "form"; | ||
else if (this.observed instanceof UICell) type = "cell"; | ||
else if (this.observed instanceof UIRow) type = "row"; | ||
else if (this.observed instanceof UIColumn) type = "column"; | ||
else type = "container"; | ||
let elt = new TestOutputElement(type); | ||
let output = new RenderContext.Output(this.observed, elt); | ||
elt.output = output; | ||
if (this.observed.allowFocus || this.observed.allowKeyboardFocus) | ||
elt.focusable = true; | ||
return output; | ||
@@ -88,2 +88,3 @@ } | ||
if (!container) return; | ||
if (!this.contentUpdater) { | ||
@@ -99,5 +100,2 @@ this.contentUpdater = new ContentUpdater( | ||
this.contentUpdater.update(container.content); | ||
if (container.allowFocus || container.allowKeyboardFocus) | ||
element.focusable = true; | ||
} | ||
@@ -189,5 +187,2 @@ | ||
// emit renderer event | ||
this._emitRendering(outputs); | ||
// unset parent reference for removed elements | ||
@@ -254,3 +249,2 @@ for (let old of this.element.content) { | ||
// no output... delete last element now | ||
this._emitRendering(); | ||
let content = this.element.content; | ||
@@ -269,3 +263,2 @@ if (lastElt) { | ||
// can replace... | ||
this._emitRendering(); | ||
if (lastElt !== output.element) { | ||
@@ -335,14 +328,2 @@ let content = this.element.content; | ||
/** Emit ContentRendering event on container, when deleting or replacing an element */ | ||
private _emitRendering(output?: Array<RenderContext.Output | undefined>) { | ||
let event = new RenderContext.RendererEvent( | ||
"ContentRendering", | ||
this.container, | ||
{ | ||
output: output || this.content.map((c) => this._output.get(c)), | ||
}, | ||
); | ||
this.container.emit(event); | ||
} | ||
private _stopped?: boolean; | ||
@@ -349,0 +330,0 @@ private _async?: boolean; |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
RenderContext, | ||
@@ -23,3 +23,3 @@ UIImage, | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -26,0 +26,0 @@ if (this.observed && this.element) { |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
RenderContext, | ||
@@ -34,3 +34,3 @@ UILabel, | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -37,0 +37,0 @@ if (this.observed && this.element) { |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
RenderContext, | ||
@@ -20,3 +20,3 @@ UISeparator, | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -23,0 +23,0 @@ if (this.observed && this.element) { |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
RenderContext, | ||
@@ -20,3 +20,3 @@ UISpacer, | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -23,0 +23,0 @@ if (this.observed && this.element) { |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
RenderContext, | ||
@@ -32,3 +32,3 @@ UITextField, | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -35,0 +35,0 @@ if (this.observed && this.element) { |
import { | ||
ManagedChangeEvent, | ||
ManagedEvent, | ||
RenderContext, | ||
@@ -31,3 +31,3 @@ UIToggle, | ||
value: any, | ||
event?: ManagedChangeEvent, | ||
event?: ManagedEvent, | ||
) { | ||
@@ -34,0 +34,0 @@ if (this.observed && this.element) { |
@@ -1,2 +0,2 @@ | ||
import { app } from "@desk-framework/frame-core"; | ||
import { GlobalContext } from "@desk-framework/frame-core"; | ||
import { testLogsToString } from "./log.js"; | ||
@@ -19,3 +19,3 @@ import { TestCase } from "./TestCase.js"; | ||
_handled = true; | ||
app.setErrorHandler((error) => { | ||
GlobalContext.setErrorHandler((error) => { | ||
if (runningTests.length) { | ||
@@ -22,0 +22,0 @@ for (let t of runningTests) t.fail(error); |
9959
395343