UNPKG

@ngneat/spectator

Version:

A powerful tool to simplify your Angular tests

43 lines 5.43 kB
import { ActivatedRoute, Router } from '@angular/router'; import { RouterTestingModule } from '@angular/router/testing'; import { Subject } from 'rxjs'; import { initialSpectatorModule } from '../spectator/initial-module'; import { ActivatedRouteStub } from './activated-route-stub'; import { RouterStub } from './router-stub'; /** * @internal */ export function initialRoutingModule(options) { const moduleMetadata = initialSpectatorModule(options); if (options.stubsEnabled) { moduleMetadata.imports.push(RouterTestingModule); moduleMetadata.providers.push(options.mockProvider(RouterStub, { events: new Subject(), emitRouterEvent(event) { this.events.next(event); }, serializeUrl() { return '/'; }, }), { provide: Router, useExisting: RouterStub, }); moduleMetadata.providers.push({ provide: ActivatedRouteStub, useValue: new ActivatedRouteStub({ params: options.params, queryParams: options.queryParams, data: options.data, }), }, { provide: ActivatedRoute, useExisting: ActivatedRouteStub, }); } else { moduleMetadata.imports.push(RouterTestingModule.withRoutes(options.routes)); } return moduleMetadata; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zcGVjdGF0b3Ivc3JjL2xpYi9zcGVjdGF0b3Itcm91dGluZy9pbml0aWFsLW1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFTLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQzs7R0FFRztBQUNILE1BQU0sVUFBVSxvQkFBb0IsQ0FBSSxPQUE2QztJQUNuRixNQUFNLGNBQWMsR0FBRyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV2RCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUN6QixjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2pELGNBQWMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUMzQixPQUFPLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTtZQUMvQixNQUFNLEVBQUUsSUFBSSxPQUFPLEVBQVM7WUFDNUIsZUFBZSxDQUFDLEtBQVk7Z0JBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFCLENBQUM7WUFDRCxZQUFZO2dCQUNWLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztTQUNGLENBQUMsRUFDRjtZQUNFLE9BQU8sRUFBRSxNQUFNO1lBQ2YsV0FBVyxFQUFFLFVBQVU7U0FDeEIsQ0FDRixDQUFDO1FBRUYsY0FBYyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQzNCO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixRQUFRLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQztnQkFDL0IsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixXQUFXLEVBQUUsT0FBTyxDQUFDLFdBQVc7Z0JBQ2hDLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTthQUNuQixDQUFDO1NBQ0gsRUFDRDtZQUNFLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFdBQVcsRUFBRSxrQkFBa0I7U0FDaEMsQ0FDRixDQUFDO0lBQ0osQ0FBQztTQUFNLENBQUM7UUFDTixjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELE9BQU8sY0FBYyxDQUFDO0FBQ3hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgRXZlbnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBSb3V0ZXJUZXN0aW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3Rlc3RpbmcnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNb2R1bGVNZXRhZGF0YSB9IGZyb20gJy4uL2Jhc2UvaW5pdGlhbC1tb2R1bGUnO1xuaW1wb3J0IHsgaW5pdGlhbFNwZWN0YXRvck1vZHVsZSB9IGZyb20gJy4uL3NwZWN0YXRvci9pbml0aWFsLW1vZHVsZSc7XG5cbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU3R1YiB9IGZyb20gJy4vYWN0aXZhdGVkLXJvdXRlLXN0dWInO1xuaW1wb3J0IHsgU3BlY3RhdG9yUm91dGluZ09wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgUm91dGVyU3R1YiB9IGZyb20gJy4vcm91dGVyLXN0dWInO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbFJvdXRpbmdNb2R1bGU8Uz4ob3B0aW9uczogUmVxdWlyZWQ8U3BlY3RhdG9yUm91dGluZ09wdGlvbnM8Uz4+KTogTW9kdWxlTWV0YWRhdGEge1xuICBjb25zdCBtb2R1bGVNZXRhZGF0YSA9IGluaXRpYWxTcGVjdGF0b3JNb2R1bGUob3B0aW9ucyk7XG5cbiAgaWYgKG9wdGlvbnMuc3R1YnNFbmFibGVkKSB7XG4gICAgbW9kdWxlTWV0YWRhdGEuaW1wb3J0cy5wdXNoKFJvdXRlclRlc3RpbmdNb2R1bGUpO1xuICAgIG1vZHVsZU1ldGFkYXRhLnByb3ZpZGVycy5wdXNoKFxuICAgICAgb3B0aW9ucy5tb2NrUHJvdmlkZXIoUm91dGVyU3R1Yiwge1xuICAgICAgICBldmVudHM6IG5ldyBTdWJqZWN0PEV2ZW50PigpLFxuICAgICAgICBlbWl0Um91dGVyRXZlbnQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgICAgICAgdGhpcy5ldmVudHMubmV4dChldmVudCk7XG4gICAgICAgIH0sXG4gICAgICAgIHNlcmlhbGl6ZVVybCgpOiBzdHJpbmcge1xuICAgICAgICAgIHJldHVybiAnLyc7XG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHtcbiAgICAgICAgcHJvdmlkZTogUm91dGVyLFxuICAgICAgICB1c2VFeGlzdGluZzogUm91dGVyU3R1YixcbiAgICAgIH0sXG4gICAgKTtcblxuICAgIG1vZHVsZU1ldGFkYXRhLnByb3ZpZGVycy5wdXNoKFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBBY3RpdmF0ZWRSb3V0ZVN0dWIsXG4gICAgICAgIHVzZVZhbHVlOiBuZXcgQWN0aXZhdGVkUm91dGVTdHViKHtcbiAgICAgICAgICBwYXJhbXM6IG9wdGlvbnMucGFyYW1zLFxuICAgICAgICAgIHF1ZXJ5UGFyYW1zOiBvcHRpb25zLnF1ZXJ5UGFyYW1zLFxuICAgICAgICAgIGRhdGE6IG9wdGlvbnMuZGF0YSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBwcm92aWRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgdXNlRXhpc3Rpbmc6IEFjdGl2YXRlZFJvdXRlU3R1YixcbiAgICAgIH0sXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBtb2R1bGVNZXRhZGF0YS5pbXBvcnRzLnB1c2goUm91dGVyVGVzdGluZ01vZHVsZS53aXRoUm91dGVzKG9wdGlvbnMucm91dGVzKSk7XG4gIH1cblxuICByZXR1cm4gbW9kdWxlTWV0YWRhdGE7XG59XG4iXX0=