ngx-testing-tools
Version:
Makes Angular testing easier
28 lines • 4.26 kB
JavaScript
import { buildJasmineCallback } from '../common/jasmine/jasmine-callback';
import { mergeBaseFactory } from '../common/test-beds/base/merge-base-factory';
import { RouterTestBedFactory } from './router-test-bed-factory';
/**
* Creates a new `RouterTestBed` to configure the custom test bed and wrap the assertion test.
* @param routes - the routes to be tested
* @param options - check `RouterTestBedOptions`
*/
export function routerTestBed(routes, options = {}) {
const factory = new RouterTestBedFactory(routes, options);
const defaultStartDetectChanges = factory['startDetectChanges'];
const tb = ((assertion, opts = {}) => {
const { startDetectChanges = defaultStartDetectChanges, } = opts;
return buildJasmineCallback({
callback: assertion,
deferredTools: factory['deferredTools'],
preTest: (tools) => {
if (startDetectChanges)
tools.harness.detectChanges();
},
postTest: (tools) => {
tools.rx['cleanAll']();
},
});
});
return mergeBaseFactory(factory, tb);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXRlc3QtYmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRlc3RpbmctdG9vbHMvc3JjL2xpYi9yb3V0ZXItdGVzdC1iZWQvcm91dGVyLXRlc3QtYmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRS9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRWpFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUFtQixNQUFTLEVBQUUsVUFBZ0MsRUFBRTtJQUMzRixNQUFNLE9BQU8sR0FBRyxJQUFJLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUxRCxNQUFNLHlCQUF5QixHQUFHLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBRWhFLE1BQU0sRUFBRSxHQUFxQixDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsRUFBRTtRQUNyRCxNQUFNLEVBQ0osa0JBQWtCLEdBQUcseUJBQXlCLEdBQy9DLEdBQUcsSUFBSSxDQUFDO1FBRVQsT0FBTyxvQkFBb0IsQ0FBQztZQUMxQixRQUFRLEVBQUUsU0FBUztZQUNuQixhQUFhLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUN2QyxPQUFPLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxrQkFBa0I7b0JBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN4RCxDQUFDO1lBQ0QsUUFBUSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2xCLEtBQUssQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN6QixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFxQixDQUFDO0lBRXZCLE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ3ZDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYnVpbGRKYXNtaW5lQ2FsbGJhY2sgfSBmcm9tICcuLi9jb21tb24vamFzbWluZS9qYXNtaW5lLWNhbGxiYWNrJztcbmltcG9ydCB7IG1lcmdlQmFzZUZhY3RvcnkgfSBmcm9tICcuLi9jb21tb24vdGVzdC1iZWRzL2Jhc2UvbWVyZ2UtYmFzZS1mYWN0b3J5JztcbmltcG9ydCB7IFJvdXRlclRlc3RCZWQsIFJvdXRlclRlc3RCZWRPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgUm91dGVyVGVzdEJlZEZhY3RvcnkgfSBmcm9tICcuL3JvdXRlci10ZXN0LWJlZC1mYWN0b3J5JztcblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGBSb3V0ZXJUZXN0QmVkYCB0byBjb25maWd1cmUgdGhlIGN1c3RvbSB0ZXN0IGJlZCBhbmQgd3JhcCB0aGUgYXNzZXJ0aW9uIHRlc3QuXG4gKiBAcGFyYW0gcm91dGVzIC0gdGhlIHJvdXRlcyB0byBiZSB0ZXN0ZWRcbiAqIEBwYXJhbSBvcHRpb25zIC0gY2hlY2sgYFJvdXRlclRlc3RCZWRPcHRpb25zYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcm91dGVyVGVzdEJlZDxUIGV4dGVuZHMgUm91dGVzPihyb3V0ZXM6IFQsIG9wdGlvbnM6IFJvdXRlclRlc3RCZWRPcHRpb25zID0ge30pOiBSb3V0ZXJUZXN0QmVkPFQ+IHtcbiAgY29uc3QgZmFjdG9yeSA9IG5ldyBSb3V0ZXJUZXN0QmVkRmFjdG9yeShyb3V0ZXMsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IGRlZmF1bHRTdGFydERldGVjdENoYW5nZXMgPSBmYWN0b3J5WydzdGFydERldGVjdENoYW5nZXMnXTtcblxuICBjb25zdCB0YjogUm91dGVyVGVzdEJlZDxUPiA9ICgoYXNzZXJ0aW9uLCBvcHRzID0ge30pID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBzdGFydERldGVjdENoYW5nZXMgPSBkZWZhdWx0U3RhcnREZXRlY3RDaGFuZ2VzLFxuICAgIH0gPSBvcHRzO1xuXG4gICAgcmV0dXJuIGJ1aWxkSmFzbWluZUNhbGxiYWNrKHtcbiAgICAgIGNhbGxiYWNrOiBhc3NlcnRpb24sXG4gICAgICBkZWZlcnJlZFRvb2xzOiBmYWN0b3J5WydkZWZlcnJlZFRvb2xzJ10sXG4gICAgICBwcmVUZXN0OiAodG9vbHMpID0+IHtcbiAgICAgICAgaWYgKHN0YXJ0RGV0ZWN0Q2hhbmdlcykgdG9vbHMuaGFybmVzcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICB9LFxuICAgICAgcG9zdFRlc3Q6ICh0b29scykgPT4ge1xuICAgICAgICB0b29scy5yeFsnY2xlYW5BbGwnXSgpO1xuICAgICAgfSxcbiAgICB9KTtcbiAgfSkgYXMgUm91dGVyVGVzdEJlZDxUPjtcblxuICByZXR1cm4gbWVyZ2VCYXNlRmFjdG9yeShmYWN0b3J5LCB0Yik7XG59XG4iXX0=