ngx-testing-tools
Version:
Makes Angular testing easier
29 lines • 6.17 kB
JavaScript
import { buildJasmineCallback } from '../common/jasmine/jasmine-callback';
import { mergeBaseFactory } from '../common/test-beds/base/merge-base-factory';
import { ResolverTestBedFactory } from './resolver-test-bed-factory';
/**
* Creates a new `ResolverTestBed` to configure the custom test bed and wrap the assertion test.
* @param resolver - the described resolver
* @param options - check `ResolverTestBedOptions`
*/
export function resolverTestBed(resolver, options = {}) {
const factory = new ResolverTestBedFactory(resolver, options);
const { httpTesting, verifyHttp: defaultVerifyHttp, } = factory['httpOptions'];
const tb = ((assertion, opts = {}) => {
const { verifyHttp = defaultVerifyHttp, } = opts;
return buildJasmineCallback({
callback: assertion,
deferredTools: factory['deferredTools'],
postTest: (tools) => {
if (httpTesting && verifyHttp)
tools.http.controller.verify();
tools.rx['cleanAll']();
},
});
});
return mergeBaseFactory(factory, tb);
}
export function itShouldCreateResolver(resolver, options) {
resolverTestBed(resolver, options);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXItdGVzdC1iZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVzdGluZy10b29scy9zcmMvbGliL3Jlc29sdmVyLXRlc3QtYmVkL3Jlc29sdmVyLXRlc3QtYmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRy9FLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsZUFBZSxDQUFJLFFBQTBCLEVBQUUsVUFBa0MsRUFBRTtJQUNqRyxNQUFNLE9BQU8sR0FBRyxJQUFJLHNCQUFzQixDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUU5RCxNQUFNLEVBQ0osV0FBVyxFQUNYLFVBQVUsRUFBRSxpQkFBaUIsR0FDOUIsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7SUFFM0IsTUFBTSxFQUFFLEdBQXVCLENBQUMsQ0FBQyxTQUFTLEVBQUUsSUFBSSxHQUFHLEVBQUUsRUFBRSxFQUFFO1FBQ3ZELE1BQU0sRUFDSixVQUFVLEdBQUcsaUJBQWlCLEdBQy9CLEdBQUcsSUFBSSxDQUFDO1FBRVQsT0FBTyxvQkFBb0IsQ0FBQztZQUMxQixRQUFRLEVBQUUsU0FBUztZQUNuQixhQUFhLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUN2QyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDbEIsSUFBSSxXQUFXLElBQUksVUFBVTtvQkFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDOUQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDLENBQXVCLENBQUM7SUFFekIsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQXdCRCxNQUFNLFVBQVUsc0JBQXNCLENBQUksUUFBMEIsRUFBRSxPQUFvQztJQUN4RyxlQUFlLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNvbHZlLCBSZXNvbHZlRm4gfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgYnVpbGRKYXNtaW5lQ2FsbGJhY2sgfSBmcm9tICcuLi9jb21tb24vamFzbWluZS9qYXNtaW5lLWNhbGxiYWNrJztcbmltcG9ydCB7IG1lcmdlQmFzZUZhY3RvcnkgfSBmcm9tICcuLi9jb21tb24vdGVzdC1iZWRzL2Jhc2UvbWVyZ2UtYmFzZS1mYWN0b3J5JztcbmltcG9ydCB7IFJlc29sdmVyVGVzdEJlZCwgUmVzb2x2ZXJUZXN0QmVkT3B0aW9ucyB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IFZhbGlkUmVzb2x2ZXIgfSBmcm9tICcuL21vZGVscy92YWxpZC1yZXNvbHZlci5tb2RlbCc7XG5pbXBvcnQgeyBSZXNvbHZlclRlc3RCZWRGYWN0b3J5IH0gZnJvbSAnLi9yZXNvbHZlci10ZXN0LWJlZC1mYWN0b3J5Jztcbi8qKlxuICogQ3JlYXRlcyBhIG5ldyBgUmVzb2x2ZXJUZXN0QmVkYCB0byBjb25maWd1cmUgdGhlIGN1c3RvbSB0ZXN0IGJlZCBhbmQgd3JhcCB0aGUgYXNzZXJ0aW9uIHRlc3QuXG4gKiBAcGFyYW0gcmVzb2x2ZXIgLSB0aGUgZGVzY3JpYmVkIHJlc29sdmVyXG4gKiBAcGFyYW0gb3B0aW9ucyAtIGNoZWNrIGBSZXNvbHZlclRlc3RCZWRPcHRpb25zYFxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZXJUZXN0QmVkPFQ+KHJlc29sdmVyOiBWYWxpZFJlc29sdmVyPFQ+LCBvcHRpb25zOiBSZXNvbHZlclRlc3RCZWRPcHRpb25zID0ge30pOiBSZXNvbHZlclRlc3RCZWQ8VD4ge1xuICBjb25zdCBmYWN0b3J5ID0gbmV3IFJlc29sdmVyVGVzdEJlZEZhY3RvcnkocmVzb2x2ZXIsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IHtcbiAgICBodHRwVGVzdGluZyxcbiAgICB2ZXJpZnlIdHRwOiBkZWZhdWx0VmVyaWZ5SHR0cCxcbiAgfSA9IGZhY3RvcnlbJ2h0dHBPcHRpb25zJ107XG5cbiAgY29uc3QgdGI6IFJlc29sdmVyVGVzdEJlZDxUPiA9ICgoYXNzZXJ0aW9uLCBvcHRzID0ge30pID0+IHtcbiAgICBjb25zdCB7XG4gICAgICB2ZXJpZnlIdHRwID0gZGVmYXVsdFZlcmlmeUh0dHAsXG4gICAgfSA9IG9wdHM7XG5cbiAgICByZXR1cm4gYnVpbGRKYXNtaW5lQ2FsbGJhY2soe1xuICAgICAgY2FsbGJhY2s6IGFzc2VydGlvbixcbiAgICAgIGRlZmVycmVkVG9vbHM6IGZhY3RvcnlbJ2RlZmVycmVkVG9vbHMnXSxcbiAgICAgIHBvc3RUZXN0OiAodG9vbHMpID0+IHtcbiAgICAgICAgaWYgKGh0dHBUZXN0aW5nICYmIHZlcmlmeUh0dHApIHRvb2xzLmh0dHAuY29udHJvbGxlci52ZXJpZnkoKTtcbiAgICAgICAgdG9vbHMucnhbJ2NsZWFuQWxsJ10oKTtcbiAgICAgIH0sXG4gICAgfSk7XG4gIH0pIGFzIFJlc29sdmVyVGVzdEJlZDxUPjtcblxuICByZXR1cm4gbWVyZ2VCYXNlRmFjdG9yeShmYWN0b3J5LCB0Yik7XG59XG5cbi8qKlxuICogT25seSBpbnZva2VzIHRoZSBcInNob3VsZCBjcmVhdGVcIiB0ZXN0LlxuICpcbiAqIFRvIGJlIHVzZWQgd2hlbiB0aGVyZSBhcmUgbm8gbm90aWNlYWJsZSBvciByZWxldmFudCB0ZXN0cyB0byBiZSBwZXJmb3JtZWQgb24gdGhpcyByZXNvbHZlci5cbiAqXG4gKiBUaGUgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBhbmQgYHJlc29sdmVyVGVzdEJlZGAgZnVuY3Rpb24gbXVzdCBiZSBtdXR1YWxseSBleGNsdXNpdmUuXG4gKlxuICogQHBhcmFtIHJlc29sdmVyIC0gdGhlIGRlc2NyaWJlZCByZXNvbHZlclxuICogQHBhcmFtIG9wdGlvbnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGl0U2hvdWxkQ3JlYXRlUmVzb2x2ZXI8VCBleHRlbmRzIFJlc29sdmU8YW55Pj4ocmVzb2x2ZXI6IFR5cGU8VD4sIG9wdGlvbnM/OiBJdFNob3VsZENyZWF0ZUd1YXJkT3B0aW9ucyk6IHZvaWRcbi8qKlxuICogT25seSBpbnZva2VzIHRoZSBcInNob3VsZCBjcmVhdGVcIiB0ZXN0LlxuICpcbiAqIFRvIGJlIHVzZWQgd2hlbiB0aGVyZSBhcmUgbm8gbm90aWNlYWJsZSBvciByZWxldmFudCB0ZXN0cyB0byBiZSBwZXJmb3JtZWQgb24gdGhpcyByZXNvbHZlci5cbiAqXG4gKiBUaGUgdXNhZ2Ugb2YgdGhpcyBmdW5jdGlvbiBhbmQgYHJlc29sdmVyVGVzdEJlZGAgZnVuY3Rpb24gbXVzdCBiZSBtdXR1YWxseSBleGNsdXNpdmUuXG4gKlxuICogQHBhcmFtIHJlc29sdmVyRm4gLSB0aGUgZGVzY3JpYmVkIHJlc29sdmVyXG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gaXRTaG91bGRDcmVhdGVSZXNvbHZlcjxUIGV4dGVuZHMgUmVzb2x2ZUZuPGFueT4+KHJlc29sdmVyRm46IFQsIG9wdGlvbnM/OiBJdFNob3VsZENyZWF0ZUd1YXJkT3B0aW9ucyk6IHZvaWRcbmV4cG9ydCBmdW5jdGlvbiBpdFNob3VsZENyZWF0ZVJlc29sdmVyPFQ+KHJlc29sdmVyOiBWYWxpZFJlc29sdmVyPFQ+LCBvcHRpb25zPzogSXRTaG91bGRDcmVhdGVHdWFyZE9wdGlvbnMpOiB2b2lkIHtcbiAgcmVzb2x2ZXJUZXN0QmVkKHJlc29sdmVyLCBvcHRpb25zKTtcbn1cblxudHlwZSBJdFNob3VsZENyZWF0ZUd1YXJkT3B0aW9ucyA9IFBpY2s8UmVzb2x2ZXJUZXN0QmVkT3B0aW9ucyxcbiAgfCAncHJvdmlkZXJzJ1xuICB8ICdpbXBvcnRzJ1xuPlxuIl19