fix(upgrade): make ngUpgrade work with testability API

Closes #7603
This commit is contained in:
Sammy Jelin
2016-03-14 14:36:41 -07:00
parent d272f96e23
commit 430f367c2f
4 changed files with 143 additions and 20 deletions

View File

@ -12,7 +12,16 @@ import {
} from 'angular2/testing_internal';
import {DOM} from 'angular2/src/platform/dom/dom_adapter';
import {Component, Class, Inject, EventEmitter, ApplicationRef, provide} from 'angular2/core';
import {global} from 'angular2/src/facade/lang';
import {
Component,
Class,
Inject,
EventEmitter,
ApplicationRef,
provide,
Testability,
} from 'angular2/core';
import {UpgradeAdapter} from 'angular2/upgrade';
import * as angular from 'angular2/src/upgrade/angular_js';
@ -559,6 +568,52 @@ export function main() {
}));
});
describe('testability', () => {
it('should handle deferred bootstrap', inject([AsyncTestCompleter], (async) => {
var adapter: UpgradeAdapter = new UpgradeAdapter();
var ng1Module = angular.module('ng1', []);
var bootstrapResumed: boolean = false;
var element = html("<div></div>");
window.name = 'NG_DEFER_BOOTSTRAP!' + window.name;
adapter.bootstrap(element, ['ng1'])
.ready((ref) => {
expect(bootstrapResumed).toEqual(true);
ref.dispose();
async.done();
});
setTimeout(() => {
bootstrapResumed = true;
(<any>global).angular.resumeBootstrap();
}, 100);
}));
it('should wait for ng2 testability', inject([AsyncTestCompleter], (async) => {
var adapter: UpgradeAdapter = new UpgradeAdapter();
var ng1Module = angular.module('ng1', []);
var element = html("<div></div>");
adapter.bootstrap(element, ['ng1'])
.ready((ref) => {
var ng2Testability: Testability = ref.ng2Injector.get(Testability);
ng2Testability.increasePendingRequestCount();
var ng2Stable = false;
angular.getTestability(element).whenStable(function() {
expect(ng2Stable).toEqual(true);
ref.dispose();
async.done();
});
setTimeout(() => {
ng2Stable = true;
ng2Testability.decreasePendingRequestCount();
}, 100);
});
}));
});
describe('examples', () => {
it('should verify UpgradeAdapter example', inject([AsyncTestCompleter], (async) => {
var adapter = new UpgradeAdapter();
@ -594,7 +649,6 @@ export function main() {
});
}));
});
});
}