/** * Created by robin on 12/11/16. */ describe('lu-promise factory', function() { var luPromise; // Before each test load our api.users module beforeEach(angular.mock.module('luticate2Utils')); // Before each test set our injected Users factory (_Users_) to our local Users variable beforeEach(inject(function(_luPromise_) { luPromise = _luPromise_; })); it('should init a simple promise', function() { var p = luPromise.newPromise('my-id', 'all-groups', 'loader-groups', 'error-groups'); luPromise.initPromise(p); expect(Object.keys(luPromise.promises).length).toEqual(1); var d = luPromise.promises['my-id']; expect(d).not.toBe(null); expect(d).not.toBe(undefined); expect(d.loaders).toEqual(['all-groups', 'loader-groups']); expect(d.errors).toEqual(['all-groups', 'error-groups']); expect(d.status).toBe(luPromise.STATUS_RUNNING); expect(d.id).toBe('my-id'); expect(Object.keys(luPromise.errors).length).toEqual(2); expect(luPromise.errors['all-groups'].length).toEqual(1); expect(luPromise.errors['all-groups'][0]['id']).toEqual('my-id'); expect(luPromise.errors['error-groups'].length).toEqual(1); expect(luPromise.errors['error-groups'][0]['id']).toEqual('my-id'); expect(Object.keys(luPromise.loaders).length).toEqual(2); expect(luPromise.loaders['all-groups'].length).toEqual(1); expect(luPromise.loaders['all-groups'][0]['id']).toEqual('my-id'); expect(luPromise.loaders['loader-groups'].length).toEqual(1); expect(luPromise.loaders['loader-groups'][0]['id']).toEqual('my-id'); }); it('should init a more complex promise 1', function() { var p = luPromise.newPromise('my-id', ['all-groups', 'another-group'], 'loader-groups'); luPromise.initPromise(p); expect(Object.keys(luPromise.promises).length).toEqual(1); var d = luPromise.promises['my-id']; expect(d).not.toBe(null); expect(d).not.toBe(undefined); expect(d.loaders).toEqual(['all-groups', 'another-group', 'loader-groups']); expect(d.errors).toEqual(['all-groups', 'another-group']); expect(d.status).toBe(luPromise.STATUS_RUNNING); expect(d.id).toBe('my-id'); expect(Object.keys(luPromise.errors).length).toEqual(2); expect(luPromise.errors['all-groups'].length).toEqual(1); expect(luPromise.errors['all-groups'][0]['id']).toEqual('my-id'); expect(luPromise.errors['another-group'].length).toEqual(1); expect(luPromise.errors['another-group'][0]['id']).toEqual('my-id'); expect(Object.keys(luPromise.loaders).length).toEqual(3); expect(luPromise.loaders['all-groups'].length).toEqual(1); expect(luPromise.loaders['all-groups'][0]['id']).toEqual('my-id'); expect(luPromise.loaders['another-group'].length).toEqual(1); expect(luPromise.loaders['another-group'][0]['id']).toEqual('my-id'); expect(luPromise.loaders['loader-groups'].length).toEqual(1); expect(luPromise.loaders['loader-groups'][0]['id']).toEqual('my-id'); }); it('should init a more complex promise 2', function() { var p = luPromise.newPromise('my-id', null, 'loader-groups'); luPromise.initPromise(p); expect(Object.keys(luPromise.promises).length).toEqual(1); var d = luPromise.promises['my-id']; expect(d).not.toBe(null); expect(d).not.toBe(undefined); expect(d.loaders).toEqual(['loader-groups']); expect(d.errors).toEqual([]); expect(d.status).toBe(luPromise.STATUS_RUNNING); expect(d.id).toBe('my-id'); expect(Object.keys(luPromise.errors).length).toEqual(0); expect(Object.keys(luPromise.loaders).length).toEqual(1); expect(luPromise.loaders['loader-groups'].length).toEqual(1); expect(luPromise.loaders['loader-groups'][0]['id']).toEqual('my-id'); }); it('should init multiple more complex promise 1', function() { var p1 = luPromise.newPromise('my-id', ['all-groups', 'another-group'], 'loader-groups'); luPromise.initPromise(p1); var p2 = luPromise.newPromise('my-id2', ['all-groups', 'another-group'], null, 'an-error-group'); luPromise.initPromise(p2); expect(Object.keys(luPromise.promises).length).toEqual(2); var d = luPromise.promises['my-id']; expect(d).not.toBe(null); expect(d).not.toBe(undefined); expect(d.loaders).toEqual(['all-groups', 'another-group', 'loader-groups']); expect(d.errors).toEqual(['all-groups', 'another-group']); expect(d.status).toBe(luPromise.STATUS_RUNNING); expect(d.id).toBe('my-id'); d = luPromise.promises['my-id2']; expect(d).not.toBe(null); expect(d).not.toBe(undefined); expect(d.loaders).toEqual(['all-groups', 'another-group']); expect(d.errors).toEqual(['all-groups', 'another-group', 'an-error-group']); expect(d.status).toBe(luPromise.STATUS_RUNNING); expect(d.id).toBe('my-id2'); expect(Object.keys(luPromise.errors).length).toEqual(3); expect(luPromise.errors['all-groups'].length).toEqual(2); expect(luPromise.errors['all-groups'][0]['id']).toEqual('my-id'); expect(luPromise.errors['all-groups'][1]['id']).toEqual('my-id2'); expect(luPromise.errors['another-group'].length).toEqual(2); expect(luPromise.errors['another-group'][0]['id']).toEqual('my-id'); expect(luPromise.errors['another-group'][1]['id']).toEqual('my-id2'); expect(luPromise.errors['an-error-group'].length).toEqual(1); expect(luPromise.errors['an-error-group'][0]['id']).toEqual('my-id2'); expect(Object.keys(luPromise.loaders).length).toEqual(3); expect(luPromise.loaders['all-groups'].length).toEqual(2); expect(luPromise.loaders['all-groups'][0]['id']).toEqual('my-id'); expect(luPromise.loaders['all-groups'][1]['id']).toEqual('my-id2'); expect(luPromise.loaders['another-group'].length).toEqual(2); expect(luPromise.loaders['another-group'][0]['id']).toEqual('my-id'); expect(luPromise.loaders['another-group'][1]['id']).toEqual('my-id2'); expect(luPromise.loaders['loader-groups'].length).toEqual(1); expect(luPromise.loaders['loader-groups'][0]['id']).toEqual('my-id'); }); });