ngx-testing-tools
Version:
Makes Angular testing easier
35 lines • 6.18 kB
JavaScript
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