commit 533892f080ebdf29173d11db4d12f92809d39b36 Author: Tatiana Ovchinnikova Date: Tue Sep 22 14:11:12 2020 -0500 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 diff --git a/horizon/static/framework/util/file/text-download.service.spec.js b/horizon/static/framework/util/file/text-download.service.spec.js index 796dc8b..971d3db 100644 --- a/horizon/static/framework/util/file/text-download.service.spec.js +++ b/horizon/static/framework/util/file/text-download.service.spec.js @@ -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'); - }); - }); + } + })); }); })(); diff --git a/openstack_dashboard/dashboards/identity/static/dashboard/identity/groups/groups.module.spec.js b/openstack_dashboard/dashboards/identity/static/dashboard/identity/groups/groups.module.spec.js index fc64fc3..bb90af5 100644 --- a/openstack_dashboard/dashboards/identity/static/dashboard/identity/groups/groups.module.spec.js +++ b/openstack_dashboard/dashboards/identity/static/dashboard/identity/groups/groups.module.spec.js @@ -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); + } }); }); })();