UNPKG

jw-ng-forward

Version:

Temporary package. The default solution for those that want to write Angular 2.x style code in Angular 1.x

96 lines (95 loc) 4.44 kB
"use strict"; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); var angular = __importStar(require("angular")); var bundle_1 = require("../bundle"); var component_1 = require("../decorators/component"); var writers_1 = require("../writers"); var providers_1 = require("./providers"); var TestComponentBuilder = (function () { function TestComponentBuilder() { } TestComponentBuilder.prototype.create = function (rootComponent) { var decoratedModule = bundle_1.bundle('test.module', rootComponent); angular.mock.module(decoratedModule.name); angular.mock.module(function ($provide) { return providers_1.allProviders().forEach(function (_a) { var token = _a.token, useValue = _a.useValue; return $provide.value(token, useValue); }); }); var fixture = compileComponent(rootComponent); providers_1.clearProviders(); return fixture; }; TestComponentBuilder.prototype.createAsync = function (rootComponent) { var fixture = this.create(rootComponent); return Promise.resolve(fixture); }; TestComponentBuilder.prototype.overrideTemplate = function (component, template) { writers_1.componentStore.set('template', template, component); return this; }; TestComponentBuilder.prototype.overrideProviders = function (component, providers) { writers_1.bundleStore.set('providers', providers, component); return this; }; TestComponentBuilder.prototype.overrideView = function (component, config) { component_1.View(config)(component); return this; }; TestComponentBuilder.prototype.overrideDirective = function () { throw new Error('Method not supported in ng-forward.'); }; TestComponentBuilder.prototype.overrideViewBindings = function () { throw new Error('Method not supported in ng-forward.'); }; return TestComponentBuilder; }()); exports.TestComponentBuilder = TestComponentBuilder; var ComponentFixture = (function () { function ComponentFixture(_a) { var debugElement = _a.debugElement, rootTestScope = _a.rootTestScope, $injector = _a.$injector; this.debugElement = debugElement; this.debugElement.data('$injector', $injector); this.componentInstance = debugElement.componentInstance; this.nativeElement = debugElement.nativeElement; this.rootTestScope = rootTestScope; } ComponentFixture.prototype.detectChanges = function () { this.rootTestScope.$digest(); }; return ComponentFixture; }()); exports.ComponentFixture = ComponentFixture; function compileComponent(ComponentClass) { var selector = writers_1.bundleStore.get('selector', ComponentClass), rootTestScope, debugElement, componentInstance, $injector; inject(function ($compile, $rootScope, _$injector_) { var controllerAs = writers_1.componentStore.get('controllerAs', ComponentClass); componentInstance = new ComponentClass(); rootTestScope = $rootScope.$new(); debugElement = angular.element("<" + selector + "></" + selector + ">"); debugElement = $compile(debugElement)(rootTestScope); rootTestScope.$digest(); $injector = _$injector_; }); return new ComponentFixture({ debugElement: debugElement, rootTestScope: rootTestScope, $injector: $injector }); } exports.compileComponent = compileComponent; function compileHtmlAndScope(_a) { var html = _a.html, initialScope = _a.initialScope, selector = _a.selector; var parentScope, element, controller, isolateScope; inject(function ($compile, $rootScope) { parentScope = $rootScope.$new(); Object.assign(parentScope, initialScope); element = angular.element(html); element = $compile(element)(parentScope); parentScope.$digest(); isolateScope = element.isolateScope(); controller = element.controller("" + selector); }); return { parentScope: parentScope, element: element, controller: controller, isolateScope: isolateScope }; } exports.compileHtmlAndScope = compileHtmlAndScope;