47 lines
1.5 KiB
JavaScript
47 lines
1.5 KiB
JavaScript
describe('factory vnModuleLoader', () => {
|
|
let vnModuleLoader;
|
|
let $scope;
|
|
|
|
beforeEach(ngModule('vnCore'));
|
|
|
|
beforeEach(angular.mock.inject((_vnModuleLoader_, $rootScope, $window) => {
|
|
vnModuleLoader = _vnModuleLoader_;
|
|
$scope = $rootScope;
|
|
$window.routes = [{module: 'myModule'}];
|
|
}));
|
|
|
|
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();
|
|
});
|
|
$scope.$apply();
|
|
});
|
|
});
|
|
});
|