UNPKG

19.9 kBJavaScriptView Raw
1/**
2 * @license Angular v10.0.3
3 * (c) 2010-2020 Google LLC. https://angular.io/
4 * License: MIT
5 */
6
7(function (global, factory) {
8 typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/common'), require('@angular/common/testing'), require('@angular/core'), require('@angular/router')) :
9 typeof define === 'function' && define.amd ? define('@angular/router/testing', ['exports', '@angular/common', '@angular/common/testing', '@angular/core', '@angular/router'], factory) :
10 (global = global || self, factory((global.ng = global.ng || {}, global.ng.router = global.ng.router || {}, global.ng.router.testing = {}), global.ng.common, global.ng.common.testing, global.ng.core, global.ng.router));
11}(this, (function (exports, common, testing, core, router) { 'use strict';
12
13 /*! *****************************************************************************
14 Copyright (c) Microsoft Corporation.
15
16 Permission to use, copy, modify, and/or distribute this software for any
17 purpose with or without fee is hereby granted.
18
19 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
20 REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
21 AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
22 INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
23 LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
24 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
25 PERFORMANCE OF THIS SOFTWARE.
26 ***************************************************************************** */
27 /* global Reflect, Promise */
28
29 var extendStatics = function(d, b) {
30 extendStatics = Object.setPrototypeOf ||
31 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
32 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
33 return extendStatics(d, b);
34 };
35
36 function __extends(d, b) {
37 extendStatics(d, b);
38 function __() { this.constructor = d; }
39 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
40 }
41
42 var __assign = function() {
43 __assign = Object.assign || function __assign(t) {
44 for (var s, i = 1, n = arguments.length; i < n; i++) {
45 s = arguments[i];
46 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
47 }
48 return t;
49 };
50 return __assign.apply(this, arguments);
51 };
52
53 function __rest(s, e) {
54 var t = {};
55 for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
56 t[p] = s[p];
57 if (s != null && typeof Object.getOwnPropertySymbols === "function")
58 for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
59 if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
60 t[p[i]] = s[p[i]];
61 }
62 return t;
63 }
64
65 function __decorate(decorators, target, key, desc) {
66 var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
67 if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
68 else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
69 return c > 3 && r && Object.defineProperty(target, key, r), r;
70 }
71
72 function __param(paramIndex, decorator) {
73 return function (target, key) { decorator(target, key, paramIndex); }
74 }
75
76 function __metadata(metadataKey, metadataValue) {
77 if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(metadataKey, metadataValue);
78 }
79
80 function __awaiter(thisArg, _arguments, P, generator) {
81 function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
82 return new (P || (P = Promise))(function (resolve, reject) {
83 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
84 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
85 function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
86 step((generator = generator.apply(thisArg, _arguments || [])).next());
87 });
88 }
89
90 function __generator(thisArg, body) {
91 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
92 return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
93 function verb(n) { return function (v) { return step([n, v]); }; }
94 function step(op) {
95 if (f) throw new TypeError("Generator is already executing.");
96 while (_) try {
97 if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
98 if (y = 0, t) op = [op[0] & 2, t.value];
99 switch (op[0]) {
100 case 0: case 1: t = op; break;
101 case 4: _.label++; return { value: op[1], done: false };
102 case 5: _.label++; y = op[1]; op = [0]; continue;
103 case 7: op = _.ops.pop(); _.trys.pop(); continue;
104 default:
105 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
106 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
107 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
108 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
109 if (t[2]) _.ops.pop();
110 _.trys.pop(); continue;
111 }
112 op = body.call(thisArg, _);
113 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
114 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
115 }
116 }
117
118 var __createBinding = Object.create ? (function(o, m, k, k2) {
119 if (k2 === undefined) k2 = k;
120 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
121 }) : (function(o, m, k, k2) {
122 if (k2 === undefined) k2 = k;
123 o[k2] = m[k];
124 });
125
126 function __exportStar(m, exports) {
127 for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
128 }
129
130 function __values(o) {
131 var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
132 if (m) return m.call(o);
133 if (o && typeof o.length === "number") return {
134 next: function () {
135 if (o && i >= o.length) o = void 0;
136 return { value: o && o[i++], done: !o };
137 }
138 };
139 throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
140 }
141
142 function __read(o, n) {
143 var m = typeof Symbol === "function" && o[Symbol.iterator];
144 if (!m) return o;
145 var i = m.call(o), r, ar = [], e;
146 try {
147 while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
148 }
149 catch (error) { e = { error: error }; }
150 finally {
151 try {
152 if (r && !r.done && (m = i["return"])) m.call(i);
153 }
154 finally { if (e) throw e.error; }
155 }
156 return ar;
157 }
158
159 function __spread() {
160 for (var ar = [], i = 0; i < arguments.length; i++)
161 ar = ar.concat(__read(arguments[i]));
162 return ar;
163 }
164
165 function __spreadArrays() {
166 for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;
167 for (var r = Array(s), k = 0, i = 0; i < il; i++)
168 for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)
169 r[k] = a[j];
170 return r;
171 };
172
173 function __await(v) {
174 return this instanceof __await ? (this.v = v, this) : new __await(v);
175 }
176
177 function __asyncGenerator(thisArg, _arguments, generator) {
178 if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
179 var g = generator.apply(thisArg, _arguments || []), i, q = [];
180 return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
181 function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
182 function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
183 function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
184 function fulfill(value) { resume("next", value); }
185 function reject(value) { resume("throw", value); }
186 function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
187 }
188
189 function __asyncDelegator(o) {
190 var i, p;
191 return i = {}, verb("next"), verb("throw", function (e) { throw e; }), verb("return"), i[Symbol.iterator] = function () { return this; }, i;
192 function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === "return" } : f ? f(v) : v; } : f; }
193 }
194
195 function __asyncValues(o) {
196 if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
197 var m = o[Symbol.asyncIterator], i;
198 return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
199 function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
200 function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
201 }
202
203 function __makeTemplateObject(cooked, raw) {
204 if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
205 return cooked;
206 };
207
208 var __setModuleDefault = Object.create ? (function(o, v) {
209 Object.defineProperty(o, "default", { enumerable: true, value: v });
210 }) : function(o, v) {
211 o["default"] = v;
212 };
213
214 function __importStar(mod) {
215 if (mod && mod.__esModule) return mod;
216 var result = {};
217 if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
218 __setModuleDefault(result, mod);
219 return result;
220 }
221
222 function __importDefault(mod) {
223 return (mod && mod.__esModule) ? mod : { default: mod };
224 }
225
226 function __classPrivateFieldGet(receiver, privateMap) {
227 if (!privateMap.has(receiver)) {
228 throw new TypeError("attempted to get private field on non-instance");
229 }
230 return privateMap.get(receiver);
231 }
232
233 function __classPrivateFieldSet(receiver, privateMap, value) {
234 if (!privateMap.has(receiver)) {
235 throw new TypeError("attempted to set private field on non-instance");
236 }
237 privateMap.set(receiver, value);
238 return value;
239 }
240
241 /**
242 * @license
243 * Copyright Google LLC All Rights Reserved.
244 *
245 * Use of this source code is governed by an MIT-style license that can be
246 * found in the LICENSE file at https://angular.io/license
247 */
248 /**
249 * @description
250 *
251 * Allows to simulate the loading of ng modules in tests.
252 *
253 * ```
254 * const loader = TestBed.inject(NgModuleFactoryLoader);
255 *
256 * @Component({template: 'lazy-loaded'})
257 * class LazyLoadedComponent {}
258 * @NgModule({
259 * declarations: [LazyLoadedComponent],
260 * imports: [RouterModule.forChild([{path: 'loaded', component: LazyLoadedComponent}])]
261 * })
262 *
263 * class LoadedModule {}
264 *
265 * // sets up stubbedModules
266 * loader.stubbedModules = {lazyModule: LoadedModule};
267 *
268 * router.resetConfig([
269 * {path: 'lazy', loadChildren: 'lazyModule'},
270 * ]);
271 *
272 * router.navigateByUrl('/lazy/loaded');
273 * ```
274 *
275 * @publicApi
276 */
277 var SpyNgModuleFactoryLoader = /** @class */ (function () {
278 function SpyNgModuleFactoryLoader(compiler) {
279 this.compiler = compiler;
280 /**
281 * @docsNotRequired
282 */
283 this._stubbedModules = {};
284 }
285 Object.defineProperty(SpyNgModuleFactoryLoader.prototype, "stubbedModules", {
286 /**
287 * @docsNotRequired
288 */
289 get: function () {
290 return this._stubbedModules;
291 },
292 /**
293 * @docsNotRequired
294 */
295 set: function (modules) {
296 var e_1, _a;
297 var res = {};
298 try {
299 for (var _b = __values(Object.keys(modules)), _c = _b.next(); !_c.done; _c = _b.next()) {
300 var t = _c.value;
301 res[t] = this.compiler.compileModuleAsync(modules[t]);
302 }
303 }
304 catch (e_1_1) { e_1 = { error: e_1_1 }; }
305 finally {
306 try {
307 if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
308 }
309 finally { if (e_1) throw e_1.error; }
310 }
311 this._stubbedModules = res;
312 },
313 enumerable: false,
314 configurable: true
315 });
316 SpyNgModuleFactoryLoader.prototype.load = function (path) {
317 if (this._stubbedModules[path]) {
318 return this._stubbedModules[path];
319 }
320 else {
321 return Promise.reject(new Error("Cannot find module " + path));
322 }
323 };
324 SpyNgModuleFactoryLoader.decorators = [
325 { type: core.Injectable }
326 ];
327 SpyNgModuleFactoryLoader.ctorParameters = function () { return [
328 { type: core.Compiler }
329 ]; };
330 return SpyNgModuleFactoryLoader;
331 }());
332 function isUrlHandlingStrategy(opts) {
333 // This property check is needed because UrlHandlingStrategy is an interface and doesn't exist at
334 // runtime.
335 return 'shouldProcessUrl' in opts;
336 }
337 /**
338 * Router setup factory function used for testing.
339 *
340 * @publicApi
341 */
342 function setupTestingRouter(urlSerializer, contexts, location, loader, compiler, injector, routes, opts, urlHandlingStrategy) {
343 var router$1 = new router.Router(null, urlSerializer, contexts, location, injector, loader, compiler, router.ɵflatten(routes));
344 if (opts) {
345 // Handle deprecated argument ordering.
346 if (isUrlHandlingStrategy(opts)) {
347 router$1.urlHandlingStrategy = opts;
348 }
349 else {
350 // Handle ExtraOptions
351 if (opts.malformedUriErrorHandler) {
352 router$1.malformedUriErrorHandler = opts.malformedUriErrorHandler;
353 }
354 if (opts.paramsInheritanceStrategy) {
355 router$1.paramsInheritanceStrategy = opts.paramsInheritanceStrategy;
356 }
357 }
358 }
359 if (urlHandlingStrategy) {
360 router$1.urlHandlingStrategy = urlHandlingStrategy;
361 }
362 return router$1;
363 }
364 /**
365 * @description
366 *
367 * Sets up the router to be used for testing.
368 *
369 * The modules sets up the router to be used for testing.
370 * It provides spy implementations of `Location`, `LocationStrategy`, and {@link
371 * NgModuleFactoryLoader}.
372 *
373 * @usageNotes
374 * ### Example
375 *
376 * ```
377 * beforeEach(() => {
378 * TestBed.configureTestingModule({
379 * imports: [
380 * RouterTestingModule.withRoutes(
381 * [{path: '', component: BlankCmp}, {path: 'simple', component: SimpleCmp}]
382 * )
383 * ]
384 * });
385 * });
386 * ```
387 *
388 * @publicApi
389 */
390 var RouterTestingModule = /** @class */ (function () {
391 function RouterTestingModule() {
392 }
393 RouterTestingModule.withRoutes = function (routes, config) {
394 return {
395 ngModule: RouterTestingModule,
396 providers: [
397 router.provideRoutes(routes),
398 { provide: router.ROUTER_CONFIGURATION, useValue: config ? config : {} },
399 ]
400 };
401 };
402 RouterTestingModule.decorators = [
403 { type: core.NgModule, args: [{
404 exports: [router.RouterModule],
405 providers: [
406 router.ɵROUTER_PROVIDERS, { provide: common.Location, useClass: testing.SpyLocation },
407 { provide: common.LocationStrategy, useClass: testing.MockLocationStrategy },
408 { provide: core.NgModuleFactoryLoader, useClass: SpyNgModuleFactoryLoader }, {
409 provide: router.Router,
410 useFactory: setupTestingRouter,
411 deps: [
412 router.UrlSerializer, router.ChildrenOutletContexts, common.Location, core.NgModuleFactoryLoader, core.Compiler, core.Injector,
413 router.ROUTES, router.ROUTER_CONFIGURATION, [router.UrlHandlingStrategy, new core.Optional()]
414 ]
415 },
416 { provide: router.PreloadingStrategy, useExisting: router.NoPreloading }, router.provideRoutes([])
417 ]
418 },] }
419 ];
420 return RouterTestingModule;
421 }());
422
423 /**
424 * @license
425 * Copyright Google LLC All Rights Reserved.
426 *
427 * Use of this source code is governed by an MIT-style license that can be
428 * found in the LICENSE file at https://angular.io/license
429 */
430
431 /**
432 * @license
433 * Copyright Google LLC All Rights Reserved.
434 *
435 * Use of this source code is governed by an MIT-style license that can be
436 * found in the LICENSE file at https://angular.io/license
437 */
438 // This file only reexports content of the `src` folder. Keep it that way.
439
440 /**
441 * @license
442 * Copyright Google LLC All Rights Reserved.
443 *
444 * Use of this source code is governed by an MIT-style license that can be
445 * found in the LICENSE file at https://angular.io/license
446 */
447
448 /**
449 * Generated bundle index. Do not edit.
450 */
451
452 exports.RouterTestingModule = RouterTestingModule;
453 exports.SpyNgModuleFactoryLoader = SpyNgModuleFactoryLoader;
454 exports.setupTestingRouter = setupTestingRouter;
455
456 Object.defineProperty(exports, '__esModule', { value: true });
457
458})));
459//# sourceMappingURL=router-testing.umd.js.map