UNPKG

@flowjs/ng-flow

Version:

Flow.js html5 file upload extension on angular.js framework

92 lines (77 loc) 3.25 kB
describe('init', function() { var $compile; var $rootScope; var element; var elementScope; var flowFactory; beforeEach(module('flow')); beforeEach(inject(function(_$compile_, _$rootScope_, _flowFactory_){ $compile = _$compile_; $rootScope = _$rootScope_; flowFactory = _flowFactory_; element = $compile('<div flow-init></div>')($rootScope); $rootScope.$digest(); elementScope = element.scope(); })); it('should assign $flow to element scope', function() { expect(elementScope.$flow).toBeDefined(); expect($rootScope.$flow).toBeUndefined(); }); describe('flow-name', function () { beforeEach(function () { $rootScope.obj = {flow:''}; element = $compile('<div flow-init flow-name="obj.flow"></div>')($rootScope); $rootScope.$digest(); elementScope = element.scope(); }); it('should assign $flow reference to element scope', function () { expect(elementScope.$flow).toBeDefined(); expect($rootScope.$flow).toBeUndefined(); }); it('should assign $flow to given scope', function() { expect(elementScope.obj.flow).toBeDefined(); expect(elementScope.obj.flow instanceof Flow).toBeTruthy(); expect($rootScope.obj.flow).toBeDefined(); expect($rootScope.obj.flow instanceof Flow).toBeTruthy(); expect($rootScope.obj.flow).toBe(elementScope.obj.flow); }); it('should destroy $flow', function() { expect($rootScope.obj.flow).toBeDefined(); expect($rootScope.obj.flow instanceof Flow).toBeTruthy(); elementScope.$destroy(); expect($rootScope.obj.flow).toBeUndefined(); }); }); describe('flow-object', function () { it('should create a new flow object', function () { spyOn(flowFactory, 'create').and.callThrough(); $compile('<div flow-init></div>')($rootScope); $rootScope.$digest(); expect(flowFactory.create).toHaveBeenCalled(); }); it('should init with the existing flow object', function () { $rootScope.existingFlow = flowFactory.create(); spyOn(flowFactory, 'create').and.callThrough(); element = $compile('<div flow-init flow-object="existingFlow"></div>')($rootScope); elementScope = element.scope(); $rootScope.$digest(); expect(flowFactory.create).not.toHaveBeenCalled(); expect($rootScope.existingFlow).toBe(elementScope.$flow); }); it('should remove event handlers from flow when the scope is destroyed', function () { $rootScope.existingFlow = flowFactory.create(); element = $compile('<div flow-init flow-object="existingFlow"></div>')($rootScope); elementScope = element.scope(); $compile('<div flow-init flow-object="existingFlow"></div>')($rootScope); $rootScope.$digest(); var scopePrototype = Object.getPrototypeOf(elementScope); spyOn(scopePrototype, '$broadcast').and.callThrough(); $rootScope.existingFlow.fire('fileProgress', 'file'); expect(elementScope.$broadcast.calls.count()).toEqual(2); elementScope.$destroy(); elementScope.$broadcast.calls.reset(); $rootScope.existingFlow.fire('fileProgress', 'file'); expect(elementScope.$broadcast.calls.count()).toEqual(1); }); }); });