Update test specs to use Jasmine 3 (#2089)

* Updated Karma and Jasmine versions

* Added DOMObserver class. Supports promise-based testing of DOM changes

Update asynchronous test specs to use promises or done() instead of waitsFor/runs

* Modified ActionCapability to duplicate context object properties as own properties for better object equality comparisons

* Global find + replace to fix syntax issues

* Fixed various issues caused by non-deterministic runtime order of tests in Jasmine 3. Fixed issues caused by changes to determination of object equality

* Addressed review comments

* Resolved merge conflicts with master

* Fixed style errors

* Use spy.calls.count() instead of manually tracking
This commit is contained in:
Andrew Henry
2018-06-29 17:32:59 -07:00
committed by Pete Richards
parent 013eba744d
commit 433dee0314
305 changed files with 2866 additions and 3324 deletions

View File

@ -49,27 +49,19 @@ define(
mockScope.field = "file-input";
mockScope.ngModel = {"file-input" : undefined};
element.on.andCallFake(function (event, clickHandler) {
element.on.and.callFake(function (event, clickHandler) {
clickHandler();
});
mockFileInputService.getInput.andReturn(
mockFileInputService.getInput.and.returnValue(
Promise.resolve({name: "file-name", body: "file-body"})
);
mctFileInput = new MCTFileInput(mockFileInputService);
// Need to wait for mock promise
var init = false;
runs(function () {
return new Promise(function (resolve) {
mctFileInput.link(mockScope, element, attrs, control);
setTimeout(function () {
init = true;
}, 100);
setTimeout(resolve, 100);
});
waitsFor(function () {
return init;
}, "File selection should have beeen simulated");
});
it("is restricted to attributes", function () {
@ -85,11 +77,13 @@ define(
});
it("validates control on file selection", function () {
expect(control.$setValidity.callCount).toBe(2);
expect(control.$setValidity.argsForCall[0]).toEqual(
var calls = control.$setValidity.calls;
expect(calls.count()).toBe(2);
expect(calls.all()[0].args).toEqual(
['file-input', false]
);
expect(control.$setValidity.argsForCall[1]).toEqual(
expect(calls.all()[1].args).toEqual(
['file-input', true]
);
});