UNPKG

shallow-render

Version:

Shallow rendering test utility for Angular

72 lines 3.26 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); 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; return c > 3 && r && Object.defineProperty(target, key, r), r; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.InvalidModuleError = void 0; exports.mockModule = mockModule; const core_1 = require("@angular/core"); const get_ng_module_annotations_1 = require("./get-ng-module-annotations"); const mock_provider_1 = require("./mock-provider"); const ng_mock_1 = require("./ng-mock"); const type_checkers_1 = require("./type-checkers"); const custom_error_1 = require("../models/custom-error"); const mock_of_directive_1 = require("./mock-of.directive"); class InvalidModuleError extends custom_error_1.CustomError { constructor(mod) { super(`Don't know how to mock module: ${mod}`); } } exports.InvalidModuleError = InvalidModuleError; const collapseModuleWithProviders = (mod) => { if (Array.isArray(mod)) { return mod.map(collapseModuleWithProviders); } else if ((0, type_checkers_1.isModuleWithProviders)(mod)) { return collapseModuleWithProviders(mod.ngModule); } return mod; }; function mockModule(mod, setup) { const cached = setup.mockCache.find(mod); if (cached) { return cached; } const replacementModule = setup.moduleReplacements.get(mod) || setup.moduleReplacements.get(mod.ngModule); if (replacementModule) { return setup.mockCache.add(mod, replacementModule); } if (Array.isArray(mod)) { return setup.mockCache.add(mod, mod.map(i => mockModule(i, setup))); // Recursion } else if ((0, type_checkers_1.isModuleWithProviders)(mod)) { // If we have a moduleWithProviders, make sure we return the same return { ngModule: mockModule(mod.ngModule, setup), // Recursion providers: mod.providers && mod.providers.map(p => (0, mock_provider_1.mockProvider)(p, setup)), }; } else if (typeof mod !== 'function') { throw new InvalidModuleError(mod); } const modClass = mod; const { imports, declarations, exports, providers, schemas } = (0, get_ng_module_annotations_1.getNgModuleAnnotations)(modClass); const mockedModule = { imports: (0, ng_mock_1.ngMock)(imports, setup), declarations: (0, ng_mock_1.ngMock)(declarations, setup), exports: collapseModuleWithProviders((0, ng_mock_1.ngMock)(exports, setup)), providers: providers.map(p => (0, mock_provider_1.mockProvider)(p, setup)), schemas, }; let MockModule = class MockModule { }; MockModule = __decorate([ (0, mock_of_directive_1.MockOf)(modClass), (0, core_1.NgModule)(mockedModule) ], MockModule); return setup.mockCache.add(mod, MockModule); } //# sourceMappingURL=mock-module.js.map