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'; import featureController from './features.controller';
export default [ function() { export default [ '$rootScope', function($rootScope) {
return { return {
restrict: 'A', restrict: 'A',
controller: featureController, controller: featureController,
link: function (scope, element, attrs, controller){ link: function (scope, element, attrs, controller){
if(attrs.awFeature.length > 0){ if(attrs.awFeature.length > 0){
$rootScope.featuresConfigured.promise.then(function() {
if(!controller.isFeatureEnabled(attrs.awFeature)){ if(!controller.isFeatureEnabled(attrs.awFeature)){
element.remove(); element.remove();
} }
});
} }
} }

View File

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