UNPKG

ngx-testing-tools

Version:
45 lines 6.72 kB
import { buildJasmineCallback } from '../common/jasmine/jasmine-callback'; import { mergeRendererFactory } from '../common/test-beds/renderer/merge-renderer-factory'; import { ComponentTestBedFactory } from './component-test-bed-factory'; /** * Creates a new `ComponentTestBed` to configure the custom test bed and wrap the assertion test. * @param rootComponent - The described Component. * @param options */ export function componentTestBed(rootComponent, options = {}) { const factory = new ComponentTestBedFactory(rootComponent, options); const { httpTesting, verifyHttp: defaultVerifyHttp, } = factory['httpOptions']; const defaultStartDetectChanges = factory['startDetectChanges']; const noTemplate = factory['noTemplate']; const tb = ((assertion, opts = {}) => { const { startDetectChanges = defaultStartDetectChanges, verifyHttp = defaultVerifyHttp, } = opts; return buildJasmineCallback({ callback: assertion, deferredTools: factory['deferredTools'], preTest: (tools) => { if (!noTemplate && startDetectChanges) tools.fixture.detectChanges(); }, postTest: (tools) => { if (httpTesting && verifyHttp) tools.http.controller.verify(); tools.rx['cleanAll'](); }, }); }); return mergeRendererFactory(factory, tb); } /** * Only invokes the "should create" test. * * To be used when there are no noticeable or relevant tests to be performed on this component. * * The usage of this function and `componentTestBed` function must be mutually exclusive. * * @param rootComponent - The described Component. * @param options */ export function itShouldCreateComponent(rootComponent, options) { componentTestBed(rootComponent, options); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXRlc3QtYmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlc3RpbmctdG9vbHMvc3JjL2xpYi9jb21wb25lbnQtdGVzdC1iZWQvY29tcG9uZW50LXRlc3QtYmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzNGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBR3ZFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZ0JBQWdCLENBQUksYUFBc0IsRUFBRSxVQUFtQyxFQUFFO0lBQy9GLE1BQU0sT0FBTyxHQUFHLElBQUksdUJBQXVCLENBQUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRXBFLE1BQU0sRUFDSixXQUFXLEVBQ1gsVUFBVSxFQUFFLGlCQUFpQixHQUM5QixHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUUzQixNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUV6QyxNQUFNLEVBQUUsR0FBd0IsQ0FBQyxDQUFDLFNBQVMsRUFBRSxJQUFJLEdBQUcsRUFBRSxFQUFFLEVBQUU7UUFDeEQsTUFBTSxFQUNKLGtCQUFrQixHQUFHLHlCQUF5QixFQUM5QyxVQUFVLEdBQUcsaUJBQWlCLEdBQy9CLEdBQUcsSUFBSSxDQUFDO1FBRVQsT0FBTyxvQkFBb0IsQ0FBQztZQUMxQixRQUFRLEVBQUUsU0FBUztZQUNuQixhQUFhLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFVBQVUsSUFBSSxrQkFBa0I7b0JBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2RSxDQUFDO1lBQ0QsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksV0FBVyxJQUFJLFVBQVU7b0JBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQzlELEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN6QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUF3QixDQUFDO0lBRTFCLE9BQU8sb0JBQW9CLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLFVBQVUsdUJBQXVCLENBQUksYUFBc0IsRUFBRSxPQUF3QztJQUN6RyxnQkFBZ0IsQ0FBQyxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDM0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGJ1aWxkSmFzbWluZUNhbGxiYWNrIH0gZnJvbSAnLi4vY29tbW9uL2phc21pbmUvamFzbWluZS1jYWxsYmFjayc7XG5pbXBvcnQgeyBtZXJnZVJlbmRlcmVyRmFjdG9yeSB9IGZyb20gJy4uL2NvbW1vbi90ZXN0LWJlZHMvcmVuZGVyZXIvbWVyZ2UtcmVuZGVyZXItZmFjdG9yeSc7XG5pbXBvcnQgeyBDb21wb25lbnRUZXN0QmVkRmFjdG9yeSB9IGZyb20gJy4vY29tcG9uZW50LXRlc3QtYmVkLWZhY3RvcnknO1xuaW1wb3J0IHsgQ29tcG9uZW50VGVzdEJlZCwgQ29tcG9uZW50VGVzdEJlZE9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgQ29tcG9uZW50VGVzdEJlZGAgdG8gY29uZmlndXJlIHRoZSBjdXN0b20gdGVzdCBiZWQgYW5kIHdyYXAgdGhlIGFzc2VydGlvbiB0ZXN0LlxuICogQHBhcmFtIHJvb3RDb21wb25lbnQgLSBUaGUgZGVzY3JpYmVkIENvbXBvbmVudC5cbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb21wb25lbnRUZXN0QmVkPFQ+KHJvb3RDb21wb25lbnQ6IFR5cGU8VD4sIG9wdGlvbnM6IENvbXBvbmVudFRlc3RCZWRPcHRpb25zID0ge30pOiBDb21wb25lbnRUZXN0QmVkPFQ+IHtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBDb21wb25lbnRUZXN0QmVkRmFjdG9yeShyb290Q29tcG9uZW50LCBvcHRpb25zKTtcblxuICBjb25zdCB7XG4gICAgaHR0cFRlc3RpbmcsXG4gICAgdmVyaWZ5SHR0cDogZGVmYXVsdFZlcmlmeUh0dHAsXG4gIH0gPSBmYWN0b3J5WydodHRwT3B0aW9ucyddO1xuXG4gIGNvbnN0IGRlZmF1bHRTdGFydERldGVjdENoYW5nZXMgPSBmYWN0b3J5WydzdGFydERldGVjdENoYW5nZXMnXTtcbiAgY29uc3Qgbm9UZW1wbGF0ZSA9IGZhY3RvcnlbJ25vVGVtcGxhdGUnXTtcblxuICBjb25zdCB0YjogQ29tcG9uZW50VGVzdEJlZDxUPiA9ICgoYXNzZXJ0aW9uLCBvcHRzID0ge30pID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBzdGFydERldGVjdENoYW5nZXMgPSBkZWZhdWx0U3RhcnREZXRlY3RDaGFuZ2VzLFxuICAgICAgdmVyaWZ5SHR0cCA9IGRlZmF1bHRWZXJpZnlIdHRwLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgcmV0dXJuIGJ1aWxkSmFzbWluZUNhbGxiYWNrKHtcbiAgICAgIGNhbGxiYWNrOiBhc3NlcnRpb24sXG4gICAgICBkZWZlcnJlZFRvb2xzOiBmYWN0b3J5WydkZWZlcnJlZFRvb2xzJ10sXG4gICAgICBwcmVUZXN0OiAodG9vbHMpID0+IHtcbiAgICAgICAgaWYgKCFub1RlbXBsYXRlICYmIHN0YXJ0RGV0ZWN0Q2hhbmdlcykgdG9vbHMuZml4dHVyZS5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9LFxuICAgICAgcG9zdFRlc3Q6ICh0b29scykgPT4ge1xuICAgICAgICBpZiAoaHR0cFRlc3RpbmcgJiYgdmVyaWZ5SHR0cCkgdG9vbHMuaHR0cC5jb250cm9sbGVyLnZlcmlmeSgpO1xuICAgICAgICB0b29scy5yeFsnY2xlYW5BbGwnXSgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSkgYXMgQ29tcG9uZW50VGVzdEJlZDxUPjtcblxuICByZXR1cm4gbWVyZ2VSZW5kZXJlckZhY3RvcnkoZmFjdG9yeSwgdGIpO1xufVxuXG4vKipcbiAqIE9ubHkgaW52b2tlcyB0aGUgXCJzaG91bGQgY3JlYXRlXCIgdGVzdC5cbiAqXG4gKiBUbyBiZSB1c2VkIHdoZW4gdGhlcmUgYXJlIG5vIG5vdGljZWFibGUgb3IgcmVsZXZhbnQgdGVzdHMgdG8gYmUgcGVyZm9ybWVkIG9uIHRoaXMgY29tcG9uZW50LlxuICpcbiAqIFRoZSB1c2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGFuZCBgY29tcG9uZW50VGVzdEJlZGAgZnVuY3Rpb24gbXVzdCBiZSBtdXR1YWxseSBleGNsdXNpdmUuXG4gKlxuICogQHBhcmFtIHJvb3RDb21wb25lbnQgLSBUaGUgZGVzY3JpYmVkIENvbXBvbmVudC5cbiAqIEBwYXJhbSBvcHRpb25zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpdFNob3VsZENyZWF0ZUNvbXBvbmVudDxUPihyb290Q29tcG9uZW50OiBUeXBlPFQ+LCBvcHRpb25zPzogaXRTaG91bGRDcmVhdGVDb21wb25lbnRPcHRpb25zKTogdm9pZCB7XG4gIGNvbXBvbmVudFRlc3RCZWQocm9vdENvbXBvbmVudCwgb3B0aW9ucyk7XG59XG5cbnR5cGUgaXRTaG91bGRDcmVhdGVDb21wb25lbnRPcHRpb25zID0gUGljazxDb21wb25lbnRUZXN0QmVkT3B0aW9ucyxcbiAgfCAnaW1wb3J0cydcbiAgfCAncHJvdmlkZXJzJ1xuICB8ICdkZWNsYXJhdGlvbnMnXG4gIHwgJ3NjaGVtYXMnXG4+XG4iXX0=