ngx-testing-tools
Version:
Makes Angular testing easier
34 lines • 6.03 kB
JavaScript
import { assertFn } from '../common/assertions/assert-fn';
import { assertResolverCtor } from '../common/assertions/assert-resolver-ctor';
import { BaseTestBedFactory } from '../common/test-beds/base/base-test-bed-factory';
import { HTTP_PROVIDERS } from '../common/tools/http/http-providers';
import { isConstructor } from '../common/utils/constructor.util';
import { RESOLVER_INFO } from './proxy/resolver-info.token';
import { ResolverProxy } from './proxy/resolver-proxy';
import { buildResolverTools } from './tools/resolver-tools';
export class ResolverTestBedFactory extends BaseTestBedFactory {
constructor(resolver, options) {
const isRootCtor = isConstructor(resolver);
if (isRootCtor)
assertResolverCtor(resolver);
else
assertFn(resolver);
super(ResolverProxy, options);
this.deferredTools = () => buildResolverTools(this, this.httpOptions);
const { httpTesting = false, verifyHttp = true, } = options;
this.provide([
ResolverProxy,
{ provide: RESOLVER_INFO, useValue: { rootResolver: resolver, isRootCtor } },
]);
if (isRootCtor)
this.provide(resolver);
if (httpTesting)
this.provide(HTTP_PROVIDERS);
this.httpOptions = { httpTesting, verifyHttp };
}
async compile() {
await super.compile();
this.injectDescribed();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzb2x2ZXItdGVzdC1iZWQtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZXN0aW5nLXRvb2xzL3NyYy9saWIvcmVzb2x2ZXItdGVzdC1iZWQvcmVzb2x2ZXItdGVzdC1iZWQtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBR3JFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUdqRSxPQUFPLEVBQUUsYUFBYSxFQUFnQixNQUFNLDZCQUE2QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sc0JBR1gsU0FBUSxrQkFJVDtJQUNDLFlBQ0UsUUFBcUMsRUFDckMsT0FBK0I7UUFFL0IsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzNDLElBQUksVUFBVTtZQUFFLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDOztZQUN4QyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFeEIsS0FBSyxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQztRQW9CYixrQkFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFsQmxGLE1BQU0sRUFDSixXQUFXLEdBQUcsS0FBSyxFQUNuQixVQUFVLEdBQUcsSUFBSSxHQUNsQixHQUFHLE9BQU8sQ0FBQztRQUVaLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDWCxhQUFhO1lBQ2IsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFrQixFQUFFO1NBQzdGLENBQUMsQ0FBQztRQUVILElBQUksVUFBVTtZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDdkMsSUFBSSxXQUFXO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFNZSxLQUFLLENBQUMsT0FBTztRQUMzQixNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0Rm4gfSBmcm9tICcuLi9jb21tb24vYXNzZXJ0aW9ucy9hc3NlcnQtZm4nO1xuaW1wb3J0IHsgYXNzZXJ0UmVzb2x2ZXJDdG9yIH0gZnJvbSAnLi4vY29tbW9uL2Fzc2VydGlvbnMvYXNzZXJ0LXJlc29sdmVyLWN0b3InO1xuaW1wb3J0IHsgQmFzZVRlc3RCZWRGYWN0b3J5IH0gZnJvbSAnLi4vY29tbW9uL3Rlc3QtYmVkcy9iYXNlL2Jhc2UtdGVzdC1iZWQtZmFjdG9yeSc7XG5pbXBvcnQgeyBIVFRQX1BST1ZJREVSUyB9IGZyb20gJy4uL2NvbW1vbi90b29scy9odHRwL2h0dHAtcHJvdmlkZXJzJztcbmltcG9ydCB7IEh0dHBPcHRpb25zIH0gZnJvbSAnLi4vY29tbW9uL3Rvb2xzL2h0dHAvbW9kZWxzL2h0dHAtb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQgeyBJbmplY3Rpb25TdG9yZSB9IGZyb20gJy4uL2NvbW1vbi90b29scy9zdG9yZS9tb2RlbHMvaW5qZWN0ZWQtc3RvcmUubW9kZWwnO1xuaW1wb3J0IHsgaXNDb25zdHJ1Y3RvciB9IGZyb20gJy4uL2NvbW1vbi91dGlscy9jb25zdHJ1Y3Rvci51dGlsJztcbmltcG9ydCB7IFJlc29sdmVyVGVzdEJlZE9wdGlvbnMgfSBmcm9tICcuL21vZGVscyc7XG5pbXBvcnQgeyBWYWxpZFJlc29sdmVyIH0gZnJvbSAnLi9tb2RlbHMvdmFsaWQtcmVzb2x2ZXIubW9kZWwnO1xuaW1wb3J0IHsgUkVTT0xWRVJfSU5GTywgUmVzb2x2ZXJJbmZvIH0gZnJvbSAnLi9wcm94eS9yZXNvbHZlci1pbmZvLnRva2VuJztcbmltcG9ydCB7IFJlc29sdmVyUHJveHkgfSBmcm9tICcuL3Byb3h5L3Jlc29sdmVyLXByb3h5JztcbmltcG9ydCB7IFJlc29sdmVyVG9vbHMgfSBmcm9tICcuL3Rvb2xzJztcbmltcG9ydCB7IGJ1aWxkUmVzb2x2ZXJUb29scyB9IGZyb20gJy4vdG9vbHMvcmVzb2x2ZXItdG9vbHMnO1xuXG5leHBvcnQgY2xhc3MgUmVzb2x2ZXJUZXN0QmVkRmFjdG9yeTxcbiAgUmVzb2x2ZXJUeXBlLFxuICBTdG9yZSBleHRlbmRzIEluamVjdGlvblN0b3JlID0gSW5qZWN0aW9uU3RvcmVcbj4gZXh0ZW5kcyBCYXNlVGVzdEJlZEZhY3Rvcnk8XG4gIFJlc29sdmVyUHJveHksXG4gIFN0b3JlLFxuICBSZXNvbHZlclRvb2xzPFJlc29sdmVyVHlwZSwgU3RvcmVbJ2luamVjdGVkJ10+XG4+IHtcbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHJlc29sdmVyOiBWYWxpZFJlc29sdmVyPFJlc29sdmVyVHlwZT4sXG4gICAgb3B0aW9uczogUmVzb2x2ZXJUZXN0QmVkT3B0aW9ucyxcbiAgKSB7XG4gICAgY29uc3QgaXNSb290Q3RvciA9IGlzQ29uc3RydWN0b3IocmVzb2x2ZXIpO1xuICAgIGlmIChpc1Jvb3RDdG9yKSBhc3NlcnRSZXNvbHZlckN0b3IocmVzb2x2ZXIpO1xuICAgIGVsc2UgYXNzZXJ0Rm4ocmVzb2x2ZXIpO1xuXG4gICAgc3VwZXIoUmVzb2x2ZXJQcm94eSwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCB7XG4gICAgICBodHRwVGVzdGluZyA9IGZhbHNlLFxuICAgICAgdmVyaWZ5SHR0cCA9IHRydWUsXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLnByb3ZpZGUoW1xuICAgICAgUmVzb2x2ZXJQcm94eSxcbiAgICAgIHsgcHJvdmlkZTogUkVTT0xWRVJfSU5GTywgdXNlVmFsdWU6IHsgcm9vdFJlc29sdmVyOiByZXNvbHZlciwgaXNSb290Q3RvciB9IGFzIFJlc29sdmVySW5mbyB9LFxuICAgIF0pO1xuXG4gICAgaWYgKGlzUm9vdEN0b3IpIHRoaXMucHJvdmlkZShyZXNvbHZlcik7XG4gICAgaWYgKGh0dHBUZXN0aW5nKSB0aGlzLnByb3ZpZGUoSFRUUF9QUk9WSURFUlMpO1xuXG4gICAgdGhpcy5odHRwT3B0aW9ucyA9IHsgaHR0cFRlc3RpbmcsIHZlcmlmeUh0dHAgfTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cE9wdGlvbnM6IFJlcXVpcmVkPEh0dHBPcHRpb25zPjtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGVmZXJyZWRUb29scyA9ICgpID0+IGJ1aWxkUmVzb2x2ZXJUb29scyh0aGlzLCB0aGlzLmh0dHBPcHRpb25zKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgY29tcGlsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5jb21waWxlKCk7XG4gICAgdGhpcy5pbmplY3REZXNjcmliZWQoKTtcbiAgfVxufVxuIl19