adding the featureConfig promise to the feature directive

to prevent any race conditions
This commit is contained in:
jaredevantabor
2016-12-19 15:59:09 -08:00
parent 75545ef5f9
commit 8e71705c39
2 changed files with 14 additions and 8 deletions

View File

@@ -23,15 +23,17 @@
*/
import featureController from './features.controller';
export default [ function() {
export default [ '$rootScope', function($rootScope) {
return {
restrict: 'A',
controller: featureController,
link: function (scope, element, attrs, controller){
if(attrs.awFeature.length > 0){
if(!controller.isFeatureEnabled(attrs.awFeature)){
element.remove();
}
$rootScope.featuresConfigured.promise.then(function() {
if(!controller.isFeatureEnabled(attrs.awFeature)){
element.remove();
}
});
}
}

View File

@@ -2,13 +2,17 @@
describe('Directive: Features enabled/disabled', () => {
let $compile,
$scope;
$scope,
q;
beforeEach(angular.mock.module('features'));
beforeEach(angular.mock.inject((_$compile_, _$rootScope_) => {
$compile = _$compile_;
$scope = _$rootScope_;
beforeEach(angular.mock.inject((_$compile_, _$rootScope_, $q) => {
$compile = _$compile_;
$scope = _$rootScope_;
q = $q;
$scope.featuresConfigured = q.defer();
}));
it('Removes the element if feature is disabled', () => {