UNPKG

@ngbracket/ngx-layout

Version:
41 lines 5.44 kB
import { TestBed } from '@angular/core/testing'; import { By } from '@angular/platform-browser'; import { extendObject } from '@ngbracket/ngx-layout/_private-utils'; /** * Function generator that captures a Component Type accessor and enables * `createTestComponent()` to be reusable for *any* captured Component class. */ export function makeCreateTestComponent(getClass) { let componentAny; // Return actual `createTestComponent()` function return function createTestComponent(template, styles) { if (!componentAny) { // Defer access to Component class to enable metadata to be configured properly... componentAny = getClass(); } return TestBed.overrideComponent(componentAny, { set: { template: template, styles: styles || [], }, }).createComponent(componentAny); }; } /** * */ export function expectNativeEl(fixture, instanceOptions) { extendObject(fixture.componentInstance, instanceOptions || {}); fixture.detectChanges(); return expect(fixture.debugElement.children[0].nativeElement); } /** * */ export function expectEl(debugEl) { return expect(debugEl.nativeElement); } export function queryFor(fixture, selector) { return fixture.debugElement.queryAll(By.css(selector)); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xpYnMvZmxleC1sYXlvdXQvX3ByaXZhdGUtdXRpbHMvdGVzdGluZy9oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sRUFBb0IsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbEUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUlwRTs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUMsUUFBMEI7SUFDaEUsSUFBSSxZQUF1QixDQUFDO0lBRTVCLGlEQUFpRDtJQUNqRCxPQUFPLFNBQVMsbUJBQW1CLENBQ2pDLFFBQWdCLEVBQ2hCLE1BQVk7UUFFWixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsa0ZBQWtGO1lBQ2xGLFlBQVksR0FBRyxRQUFRLEVBQUUsQ0FBQztRQUM1QixDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFO1lBQzdDLEdBQUcsRUFBRTtnQkFDSCxRQUFRLEVBQUUsUUFBUTtnQkFDbEIsTUFBTSxFQUFFLE1BQU0sSUFBSSxFQUFFO2FBQ3JCO1NBQ0YsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuQyxDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFVBQVUsY0FBYyxDQUM1QixPQUE4QixFQUM5QixlQUFxQjtJQUVyQixZQUFZLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMvRCxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEIsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDaEUsQ0FBQztBQUVEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FBQyxPQUFxQjtJQUM1QyxPQUFPLE1BQU0sQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELE1BQU0sVUFBVSxRQUFRLENBQ3RCLE9BQThCLEVBQzlCLFFBQWdCO0lBRWhCLE9BQU8sT0FBTyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7IERlYnVnRWxlbWVudCwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50Rml4dHVyZSwgVGVzdEJlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQgeyBCeSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgZXh0ZW5kT2JqZWN0IH0gZnJvbSAnQG5nYnJhY2tldC9uZ3gtbGF5b3V0L19wcml2YXRlLXV0aWxzJztcblxuZXhwb3J0IHR5cGUgQ29tcG9uZW50Q2xhenpGbiA9ICgpID0+IFR5cGU8YW55PjtcblxuLyoqXG4gKiBGdW5jdGlvbiBnZW5lcmF0b3IgdGhhdCBjYXB0dXJlcyBhIENvbXBvbmVudCBUeXBlIGFjY2Vzc29yIGFuZCBlbmFibGVzXG4gKiBgY3JlYXRlVGVzdENvbXBvbmVudCgpYCB0byBiZSByZXVzYWJsZSBmb3IgKmFueSogY2FwdHVyZWQgQ29tcG9uZW50IGNsYXNzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWFrZUNyZWF0ZVRlc3RDb21wb25lbnQoZ2V0Q2xhc3M6IENvbXBvbmVudENsYXp6Rm4pIHtcbiAgbGV0IGNvbXBvbmVudEFueTogVHlwZTxhbnk+O1xuXG4gIC8vIFJldHVybiBhY3R1YWwgYGNyZWF0ZVRlc3RDb21wb25lbnQoKWAgZnVuY3Rpb25cbiAgcmV0dXJuIGZ1bmN0aW9uIGNyZWF0ZVRlc3RDb21wb25lbnQoXG4gICAgdGVtcGxhdGU6IHN0cmluZyxcbiAgICBzdHlsZXM/OiBhbnlcbiAgKTogQ29tcG9uZW50Rml4dHVyZTxUeXBlPGFueT4+IHtcbiAgICBpZiAoIWNvbXBvbmVudEFueSkge1xuICAgICAgLy8gRGVmZXIgYWNjZXNzIHRvIENvbXBvbmVudCBjbGFzcyB0byBlbmFibGUgbWV0YWRhdGEgdG8gYmUgY29uZmlndXJlZCBwcm9wZXJseS4uLlxuICAgICAgY29tcG9uZW50QW55ID0gZ2V0Q2xhc3MoKTtcbiAgICB9XG4gICAgcmV0dXJuIFRlc3RCZWQub3ZlcnJpZGVDb21wb25lbnQoY29tcG9uZW50QW55LCB7XG4gICAgICBzZXQ6IHtcbiAgICAgICAgdGVtcGxhdGU6IHRlbXBsYXRlLFxuICAgICAgICBzdHlsZXM6IHN0eWxlcyB8fCBbXSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEFueSk7XG4gIH07XG59XG5cbi8qKlxuICpcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4cGVjdE5hdGl2ZUVsKFxuICBmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPGFueT4sXG4gIGluc3RhbmNlT3B0aW9ucz86IGFueVxuKTogYW55IHtcbiAgZXh0ZW5kT2JqZWN0KGZpeHR1cmUuY29tcG9uZW50SW5zdGFuY2UsIGluc3RhbmNlT3B0aW9ucyB8fCB7fSk7XG4gIGZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICByZXR1cm4gZXhwZWN0KGZpeHR1cmUuZGVidWdFbGVtZW50LmNoaWxkcmVuWzBdLm5hdGl2ZUVsZW1lbnQpO1xufVxuXG4vKipcbiAqXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleHBlY3RFbChkZWJ1Z0VsOiBEZWJ1Z0VsZW1lbnQpOiBhbnkge1xuICByZXR1cm4gZXhwZWN0KGRlYnVnRWwubmF0aXZlRWxlbWVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBxdWVyeUZvcihcbiAgZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxhbnk+LFxuICBzZWxlY3Rvcjogc3RyaW5nXG4pOiBEZWJ1Z0VsZW1lbnRbXSB7XG4gIHJldHVybiBmaXh0dXJlLmRlYnVnRWxlbWVudC5xdWVyeUFsbChCeS5jc3Moc2VsZWN0b3IpKTtcbn1cbiJdfQ==