salix/front/core/lib/specs/module-loader.spec.js

47 lines
1.5 KiB
JavaScript
Raw Normal View History

2018-08-31 11:06:39 +00:00
describe('factory vnModuleLoader', () => {
let vnModuleLoader;
let $scope;
beforeEach(ngModule('vnCore'));
2018-08-31 11:06:39 +00:00
beforeEach(angular.mock.inject((_vnModuleLoader_, $rootScope, $window) => {
2018-08-31 11:06:39 +00:00
vnModuleLoader = _vnModuleLoader_;
$scope = $rootScope;
$window.routes = [{module: 'myModule'}];
2018-08-31 11:06:39 +00:00
}));
describe('load()', () => {
it('should return truthy promise if the module was loaded', async() => {
vnModuleLoader._loaded.myModule = true;
let result = await vnModuleLoader.load('myModule', {myValidations: () => {}});
expect(result).toEqual(true);
});
it('should return a promise if the module was still a promise', () => {
vnModuleLoader._loaded.myModule = new Promise(() => {
return 'I promise you a module!';
});
let result = vnModuleLoader.load('myModule', {myValidations: () => {}});
expect(result).toEqual(jasmine.any(Promise));
});
it('should return an error if the module wasnt loaded', done => {
vnModuleLoader._loaded.myModule = false;
vnModuleLoader.load('myModule', {myValidations: () => {}})
.then(() => {
done.fail('this must fail');
})
.catch(error => {
expect(error.toString()).toEqual(`Error: Module dependency loop detected: myModule`);
done();
});
2018-08-31 11:06:39 +00:00
$scope.$apply();
});
});
});