Make text download and load groups tests work

Currently "then" callback functions for these tests aren't called since
digest cycles were never triggered. Jasmine Spec Runner marks them 'passed'
only adding "SPEC HAS NO EXPECTATIONS" into their names.
This patch triggers a digest by calling a scope's $apply functions in a
correct place, deals with timeout properly and makes the tests work.

Closes-Bug: #1894127

Change-Id: I00acc4b13fa0cc05b8c6ccd2024084527562f001
This commit is contained in:
Tatiana Ovchinnikova 2020-09-22 14:11:12 -05:00
parent 110664b4be
commit 533892f080
2 changed files with 12 additions and 8 deletions

View File

@ -23,12 +23,14 @@
$scope = $injector.get('$rootScope');
}));
it('should return promise and it resolve filename after starting download file', function() {
it('should return a promise that resolves to a download file name', inject(function($timeout) {
var promise = textDownload.downloadTextFile('content', 'download_file_name.txt');
promise.then(verifyContents);
$scope.$apply();
promise.then(function(contents) {
$timeout.flush();
function verifyContents (contents) {
expect(contents).toEqual('download_file_name.txt');
});
});
}
}));
});
})();

View File

@ -50,10 +50,12 @@
});
it('should load groups', function () {
registry.getResourceType('OS::Keystone::Group').list().then(function(responses) {
$scope.$apply();
expect(responses).toEqual(groups);
});
var groupList = registry.getResourceType('OS::Keystone::Group').list();
groupList.then(verifyResult);
$scope.$apply();
function verifyResult (result) {
expect(result).toEqual(groups);
}
});
});
})();