UNPKG

ngx-testing-tools

Version:
35 lines 6.18 kB
import { assertFn } from '../common/assertions/assert-fn'; import { assertGuardCto } from '../common/assertions/assert-guard-cto'; 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 { GUARD_INFO } from './proxy/guard-info.token'; import { GuardProxy } from './proxy/guard-proxy'; import { buildGuardTools } from './tools/guard-tools'; export class GuardTestBedFactory extends BaseTestBedFactory { constructor(rootGuard, options) { const isRootCtor = isConstructor(rootGuard); if (isRootCtor) assertGuardCto(rootGuard); else assertFn(rootGuard); super(GuardProxy, options); this.deferredTools = () => buildGuardTools(this, this.httpOptions); const { httpTesting = false, verifyHttp = true, type = 'ctor', } = options; this.type = type; this.provide([ GuardProxy, { provide: GUARD_INFO, useValue: { rootGuard, isRootCtor } }, ]); if (isRootCtor) this.provide(rootGuard); if (httpTesting) this.provide(HTTP_PROVIDERS); this.httpOptions = { httpTesting, verifyHttp }; } async compile() { await super.compile(); this.injectDescribed(); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VhcmQtdGVzdC1iZWQtZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC10ZXN0aW5nLXRvb2xzL3NyYy9saWIvZ3VhcmQtdGVzdC1iZWQvZ3VhcmQtdGVzdC1iZWQtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDMUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUdyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFJakUsT0FBTyxFQUFFLFVBQVUsRUFBYSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVqRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsTUFBTSxPQUFPLG1CQUdYLFNBQVEsa0JBSVQ7SUFDQyxZQUNFLFNBQWdDLEVBQ2hDLE9BQWtEO1FBRWxELE1BQU0sVUFBVSxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QyxJQUFJLFVBQVU7WUFBRSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7O1lBQ3JDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUV6QixLQUFLLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBd0JWLGtCQUFhLEdBQUcsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUF0Qi9FLE1BQU0sRUFDSixXQUFXLEdBQUcsS0FBSyxFQUNuQixVQUFVLEdBQUcsSUFBSSxFQUNqQixJQUFJLEdBQUcsTUFBTSxHQUNkLEdBQUcsT0FBTyxDQUFDO1FBRVosSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQztZQUNYLFVBQVU7WUFDVixFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBZSxFQUFFO1NBQzFFLENBQUMsQ0FBQztRQUVILElBQUksVUFBVTtZQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDeEMsSUFBSSxXQUFXO1lBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUU5QyxJQUFJLENBQUMsV0FBVyxHQUFHLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFPZSxLQUFLLENBQUMsT0FBTztRQUMzQixNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXNzZXJ0Rm4gfSBmcm9tICcuLi9jb21tb24vYXNzZXJ0aW9ucy9hc3NlcnQtZm4nO1xuaW1wb3J0IHsgYXNzZXJ0R3VhcmRDdG8gfSBmcm9tICcuLi9jb21tb24vYXNzZXJ0aW9ucy9hc3NlcnQtZ3VhcmQtY3RvJztcbmltcG9ydCB7IEJhc2VUZXN0QmVkRmFjdG9yeSB9IGZyb20gJy4uL2NvbW1vbi90ZXN0LWJlZHMvYmFzZS9iYXNlLXRlc3QtYmVkLWZhY3RvcnknO1xuaW1wb3J0IHsgSFRUUF9QUk9WSURFUlMgfSBmcm9tICcuLi9jb21tb24vdG9vbHMvaHR0cC9odHRwLXByb3ZpZGVycyc7XG5pbXBvcnQgeyBIdHRwT3B0aW9ucyB9IGZyb20gJy4uL2NvbW1vbi90b29scy9odHRwL21vZGVscy9odHRwLW9wdGlvbnMubW9kZWwnO1xuaW1wb3J0IHsgSW5qZWN0aW9uU3RvcmUgfSBmcm9tICcuLi9jb21tb24vdG9vbHMvc3RvcmUvbW9kZWxzL2luamVjdGVkLXN0b3JlLm1vZGVsJztcbmltcG9ydCB7IGlzQ29uc3RydWN0b3IgfSBmcm9tICcuLi9jb21tb24vdXRpbHMvY29uc3RydWN0b3IudXRpbCc7XG5pbXBvcnQgeyBHdWFyZFRlc3RCZWRPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgR3VhcmRDYW4sIEludGVybmFsR3VhcmRDYW4gfSBmcm9tICcuL21vZGVscy9ndWFyZC1jYW4ubW9kZWwnO1xuaW1wb3J0IHsgVmFsaWRHdWFyZCB9IGZyb20gJy4vbW9kZWxzL3ZhbGlkLWd1YXJkLm1vZGVsJztcbmltcG9ydCB7IEdVQVJEX0lORk8sIEd1YXJkSW5mbyB9IGZyb20gJy4vcHJveHkvZ3VhcmQtaW5mby50b2tlbic7XG5pbXBvcnQgeyBHdWFyZFByb3h5IH0gZnJvbSAnLi9wcm94eS9ndWFyZC1wcm94eSc7XG5pbXBvcnQgeyBHdWFyZFRvb2xzIH0gZnJvbSAnLi90b29scyc7XG5pbXBvcnQgeyBidWlsZEd1YXJkVG9vbHMgfSBmcm9tICcuL3Rvb2xzL2d1YXJkLXRvb2xzJztcblxuZXhwb3J0IGNsYXNzIEd1YXJkVGVzdEJlZEZhY3Rvcnk8XG4gIEd1YXJkVHlwZSxcbiAgU3RvcmUgZXh0ZW5kcyBJbmplY3Rpb25TdG9yZSA9IEluamVjdGlvblN0b3JlXG4+IGV4dGVuZHMgQmFzZVRlc3RCZWRGYWN0b3J5PFxuICBHdWFyZFByb3h5LFxuICBTdG9yZSxcbiAgR3VhcmRUb29sczxHdWFyZFR5cGUsIFN0b3JlWydpbmplY3RlZCddPlxuPiB7XG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICByb290R3VhcmQ6IFZhbGlkR3VhcmQ8R3VhcmRUeXBlPixcbiAgICBvcHRpb25zOiBHdWFyZFRlc3RCZWRPcHRpb25zICYgeyB0eXBlPzogR3VhcmRDYW4gfSxcbiAgKSB7XG4gICAgY29uc3QgaXNSb290Q3RvciA9IGlzQ29uc3RydWN0b3Iocm9vdEd1YXJkKTtcbiAgICBpZiAoaXNSb290Q3RvcikgYXNzZXJ0R3VhcmRDdG8ocm9vdEd1YXJkKTtcbiAgICBlbHNlIGFzc2VydEZuKHJvb3RHdWFyZCk7XG5cbiAgICBzdXBlcihHdWFyZFByb3h5LCBvcHRpb25zKTtcblxuICAgIGNvbnN0IHtcbiAgICAgIGh0dHBUZXN0aW5nID0gZmFsc2UsXG4gICAgICB2ZXJpZnlIdHRwID0gdHJ1ZSxcbiAgICAgIHR5cGUgPSAnY3RvcicsXG4gICAgfSA9IG9wdGlvbnM7XG5cbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuXG4gICAgdGhpcy5wcm92aWRlKFtcbiAgICAgIEd1YXJkUHJveHksXG4gICAgICB7IHByb3ZpZGU6IEdVQVJEX0lORk8sIHVzZVZhbHVlOiB7IHJvb3RHdWFyZCwgaXNSb290Q3RvciB9IGFzIEd1YXJkSW5mbyB9LFxuICAgIF0pO1xuXG4gICAgaWYgKGlzUm9vdEN0b3IpIHRoaXMucHJvdmlkZShyb290R3VhcmQpO1xuICAgIGlmIChodHRwVGVzdGluZykgdGhpcy5wcm92aWRlKEhUVFBfUFJPVklERVJTKTtcblxuICAgIHRoaXMuaHR0cE9wdGlvbnMgPSB7IGh0dHBUZXN0aW5nLCB2ZXJpZnlIdHRwIH07XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHR5cGU6IEludGVybmFsR3VhcmRDYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cE9wdGlvbnM6IFJlcXVpcmVkPEh0dHBPcHRpb25zPjtcblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZGVmZXJyZWRUb29scyA9ICgpID0+IGJ1aWxkR3VhcmRUb29scyh0aGlzLCB0aGlzLmh0dHBPcHRpb25zKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgY29tcGlsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5jb21waWxlKCk7XG4gICAgdGhpcy5pbmplY3REZXNjcmliZWQoKTtcbiAgfVxufVxuIl19