ngx-testing-tools
Version:
Makes Angular testing easier
31 lines • 5.18 kB
JavaScript
import { provideLocationMocks } from '@angular/common/testing';
import { provideRouter, Router } from '@angular/router';
import { RouterTestingHarness } from '@angular/router/testing';
import { BaseTestBedFactory } from '../common/test-beds/base/base-test-bed-factory';
import { buildRouterTools } from './tools/router-tools';
export class RouterTestBedFactory extends BaseTestBedFactory {
constructor(routes, options) {
super(Router, options);
this._harness = null;
this.deferredTools = () => buildRouterTools(this);
const { initialUrl = '', startDetectChanges = true, } = options;
this._routes = routes;
this.initialUrl = initialUrl;
this.startDetectChanges = startDetectChanges;
this.provide([
provideRouter(routes),
provideLocationMocks(),
]);
this.createHarnessBeforeEachTest();
}
async compile() {
await super.compile();
this.injectDescribed();
}
createHarnessBeforeEachTest() {
globalThis.beforeEach(async () => {
this._harness = await RouterTestingHarness.create(this.initialUrl);
});
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLXRlc3QtYmVkLWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdGVzdGluZy10b29scy9zcmMvbGliL3JvdXRlci10ZXN0LWJlZC9yb3V0ZXItdGVzdC1iZWQtZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBVSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBSXBGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXhELE1BQU0sT0FBTyxvQkFHWCxTQUFRLGtCQUlUO0lBRUMsWUFDRSxNQUFtQixFQUNuQixPQUE2QjtRQUU3QixLQUFLLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBeUJqQixhQUFRLEdBQXlCLElBQUssQ0FBQztRQUU1QixrQkFBYSxHQUFHLEdBQUcsRUFBRSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBekI5RCxNQUFNLEVBQ0osVUFBVSxHQUFHLEVBQUUsRUFDZixrQkFBa0IsR0FBRyxJQUFJLEdBQzFCLEdBQUcsT0FBTyxDQUFDO1FBRVosSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUM7UUFFdEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBRTdDLElBQUksQ0FBQyxPQUFPLENBQUM7WUFDWCxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ3JCLG9CQUFvQixFQUFFO1NBQ3ZCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFXZSxLQUFLLENBQUMsT0FBTztRQUMzQixNQUFNLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVPLDJCQUEyQjtRQUNqQyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcHJvdmlkZUxvY2F0aW9uTW9ja3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24vdGVzdGluZyc7XG5pbXBvcnQgeyBwcm92aWRlUm91dGVyLCBSb3V0ZXIsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSb3V0ZXJUZXN0aW5nSGFybmVzcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlci90ZXN0aW5nJztcbmltcG9ydCB7IEJhc2VUZXN0QmVkRmFjdG9yeSB9IGZyb20gJy4uL2NvbW1vbi90ZXN0LWJlZHMvYmFzZS9iYXNlLXRlc3QtYmVkLWZhY3RvcnknO1xuaW1wb3J0IHsgSW5qZWN0aW9uU3RvcmUgfSBmcm9tICcuLi9jb21tb24vdG9vbHMvc3RvcmUvbW9kZWxzL2luamVjdGVkLXN0b3JlLm1vZGVsJztcbmltcG9ydCB7IFJvdXRlclRlc3RCZWRPcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMnO1xuaW1wb3J0IHsgUm91dGVyVG9vbHMgfSBmcm9tICcuL3Rvb2xzJztcbmltcG9ydCB7IGJ1aWxkUm91dGVyVG9vbHMgfSBmcm9tICcuL3Rvb2xzL3JvdXRlci10b29scyc7XG5cbmV4cG9ydCBjbGFzcyBSb3V0ZXJUZXN0QmVkRmFjdG9yeTxcbiAgUm91dGVzQ29uc3QgZXh0ZW5kcyBSb3V0ZXMsXG4gIFN0b3JlIGV4dGVuZHMgSW5qZWN0aW9uU3RvcmUgPSBJbmplY3Rpb25TdG9yZVxuPiBleHRlbmRzIEJhc2VUZXN0QmVkRmFjdG9yeTxcbiAgUm91dGVyLFxuICBTdG9yZSxcbiAgUm91dGVyVG9vbHM8Um91dGVzQ29uc3QsIFN0b3JlWydpbmplY3RlZCddPlxuPiB7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgIHJvdXRlczogUm91dGVzQ29uc3QsXG4gICAgb3B0aW9uczogUm91dGVyVGVzdEJlZE9wdGlvbnMsXG4gICkge1xuICAgIHN1cGVyKFJvdXRlciwgb3B0aW9ucyk7XG5cbiAgICBjb25zdCB7XG4gICAgICBpbml0aWFsVXJsID0gJycsXG4gICAgICBzdGFydERldGVjdENoYW5nZXMgPSB0cnVlLFxuICAgIH0gPSBvcHRpb25zO1xuXG4gICAgdGhpcy5fcm91dGVzID0gcm91dGVzO1xuXG4gICAgdGhpcy5pbml0aWFsVXJsID0gaW5pdGlhbFVybDtcbiAgICB0aGlzLnN0YXJ0RGV0ZWN0Q2hhbmdlcyA9IHN0YXJ0RGV0ZWN0Q2hhbmdlcztcblxuICAgIHRoaXMucHJvdmlkZShbXG4gICAgICBwcm92aWRlUm91dGVyKHJvdXRlcyksXG4gICAgICBwcm92aWRlTG9jYXRpb25Nb2NrcygpLFxuICAgIF0pO1xuXG4gICAgdGhpcy5jcmVhdGVIYXJuZXNzQmVmb3JlRWFjaFRlc3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBzdGFydERldGVjdENoYW5nZXM6IGJvb2xlYW47XG5cbiAgcHJvdGVjdGVkIGluaXRpYWxVcmw6IHN0cmluZztcblxuICBwcml2YXRlIF9yb3V0ZXM6IFJvdXRlc0NvbnN0O1xuICBwcml2YXRlIF9oYXJuZXNzOiBSb3V0ZXJUZXN0aW5nSGFybmVzcyA9IG51bGwhO1xuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBkZWZlcnJlZFRvb2xzID0gKCkgPT4gYnVpbGRSb3V0ZXJUb29scyh0aGlzKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgYXN5bmMgY29tcGlsZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCBzdXBlci5jb21waWxlKCk7XG4gICAgdGhpcy5pbmplY3REZXNjcmliZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSGFybmVzc0JlZm9yZUVhY2hUZXN0KCk6IHZvaWQge1xuICAgIGdsb2JhbFRoaXMuYmVmb3JlRWFjaChhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLl9oYXJuZXNzID0gYXdhaXQgUm91dGVyVGVzdGluZ0hhcm5lc3MuY3JlYXRlKHRoaXMuaW5pdGlhbFVybCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==