From 25ac0db1cb0af0722cbbb8bdb365f67981706a2a Mon Sep 17 00:00:00 2001 From: Carlos Jimenez <=> Date: Fri, 31 Aug 2018 13:06:39 +0200 Subject: [PATCH] #497 module-loader.js Front unit test --- client/core/src/lib/module-loader.js | 3 +- .../core/src/lib/specs/module-loader.spec.js | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 client/core/src/lib/specs/module-loader.spec.js diff --git a/client/core/src/lib/module-loader.js b/client/core/src/lib/module-loader.js index 4ffada30c8..358d3863b8 100644 --- a/client/core/src/lib/module-loader.js +++ b/client/core/src/lib/module-loader.js @@ -15,8 +15,7 @@ export function factory($http, $window, $ocLazyLoad, $translatePartialLoader, $t if (loaded[moduleName] instanceof Promise) return loaded[moduleName]; if (loaded[moduleName] === false) - return $q.reject( - new Error(`Module dependency loop detected: ${moduleName}`)); + return $q.reject(new Error(`Module dependency loop detected: ${moduleName}`)); loaded[moduleName] = false; diff --git a/client/core/src/lib/specs/module-loader.spec.js b/client/core/src/lib/specs/module-loader.spec.js new file mode 100644 index 0000000000..f46850b98a --- /dev/null +++ b/client/core/src/lib/specs/module-loader.spec.js @@ -0,0 +1,48 @@ +describe('factory vnModuleLoader', () => { + let vnModuleLoader; + let $scope; + + beforeEach(() => { + angular.mock.module('vnCore'); + }); + + beforeEach(angular.mock.inject((_vnModuleLoader_, $rootScope, $httpBackend) => { + vnModuleLoader = _vnModuleLoader_; + $scope = $rootScope; + $httpBackend.when('GET', /\/locale\/\w+\/[a-z]{2}\.json/).respond({}); + })); + + 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(); + }); + }); +});