Merge "Tabs may not appear in angular instance wizard"

This commit is contained in:
Zuul 2018-03-13 04:20:11 +00:00 committed by Gerrit Code Review
commit dc10dc6ab7
4 changed files with 32 additions and 10 deletions

View File

@ -208,8 +208,8 @@
if (step.checkReadiness) {
var promise = step.checkReadiness();
stepReadyPromises.push(promise);
promise.then(function() {
step.ready = true;
promise.then(function(isReady) {
step.ready = isReady;
});
}
});

View File

@ -225,9 +225,9 @@
expect(checkedStep.checkReadiness).toHaveBeenCalled();
});
it("should remove steps when readiness is false", function() {
it("should remove steps when readiness doesn't resolve with true parameter", function() {
var checkReadinessPromises = [$q.defer(), $q.defer(), $q.defer(), $q.defer()];
var checkReadinessPromises = [$q.defer(), $q.defer(), $q.defer(), $q.defer(), $q.defer()];
$scope.workflow = {
steps: [
@ -247,20 +247,25 @@
{
id: 'five',
checkReadiness: function() { return checkReadinessPromises[3].promise; }
},
{
id: 'six',
checkReadiness: function() { return checkReadinessPromises[4].promise; }
}
]
};
checkReadinessPromises[0].reject();
checkReadinessPromises[1].resolve();
checkReadinessPromises[1].resolve(true);
checkReadinessPromises[2].reject();
checkReadinessPromises[3].resolve();
checkReadinessPromises[3].resolve(false);
checkReadinessPromises[4].resolve(true);
$scope.$apply();
expect($scope.steps.length).toBe(3);
expect($scope.steps[0].id).toBe('one');
expect($scope.steps[1].id).toBe('three');
expect($scope.steps[2].id).toBe('five');
expect($scope.steps[2].id).toBe('six');
});
it('should pass result of submit function on to close function', function () {

View File

@ -87,7 +87,13 @@
}
if (promises.length > 0) {
step.checkReadiness = function () {
return $q.all(promises);
return $q.all(promises).then(function() {
// all promises have succeeded, return the readiness status to true
return true;
}, function() {
// at least one promise has failed, return the readiness status to false
return false;
});
};
}
}

View File

@ -67,7 +67,7 @@
expect(novaExtensionsService.ifNameEnabled).toHaveBeenCalledWith('foo-novaExtension');
});
it('step checkReadiness function returns correct results', function() {
it('step checkReadiness function returns true when promise is resolved', function() {
decoratorService(spec);
var readinessResult;
deferred.resolve('foo');
@ -75,7 +75,18 @@
readinessResult = result;
});
$scope.$apply();
expect(readinessResult).toEqual(['foo']);
expect(readinessResult).toEqual(true);
});
it('step checkReadiness function returns false when promise is rejected', function() {
decoratorService(spec);
var readinessResult;
deferred.reject();
steps[1].checkReadiness().then(function(result) {
readinessResult = result;
});
$scope.$apply();
expect(readinessResult).toEqual(false);
});
});