@ngneat/spectator
Version:
A powerful tool to simplify your Angular tests
43 lines • 5.43 kB
JavaScript
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=