import './index.js'; describe('Item', () => { describe('Component vnItemDescriptorPopover', () => { let $componentController; let $scope; let controller; let $httpBackend; let $element; beforeEach(() => { angular.mock.module('item'); }); beforeEach(angular.mock.inject((_$componentController_, $rootScope, _$httpBackend_) => { $componentController = _$componentController_; $element = angular.element(''); $httpBackend = _$httpBackend_; $httpBackend.when('GET', /\/locale\/\w+\/[a-z]{2}\.json/).respond({}); $scope = $rootScope.$new(); controller = $componentController('vnItemDescriptorPopover', {$scope, $element, $httpBackend}); controller.itemFk = 1; controller.parent = 'mariano'; controller.$.popover = {show: () => {}}; })); describe('itemFk setter', () => { it(`shoud set _itemFk to a given value and call _getItem if the given value is not null`, () => { spyOn(controller, '_getItem'); controller.itemFk = 5; expect(controller._getItem).toHaveBeenCalledWith(); expect(controller._itemFk).toEqual(5); }); it(`shoud call clear if the given values is null`, () => { spyOn(controller, 'clear'); controller.itemFk = null; expect(controller.clear).toHaveBeenCalledWith(); expect(controller._itemFk).toEqual(null); }); }); describe('quicklinks setter', () => { it(`shoud set _quicklinks to a given value`, () => { controller.quicklinks = 3; expect(controller._quicklinks).toEqual(3); }); }); describe('clear()', () => { it(`should set item and itemTags null, and tags {}`, () => { controller.item = '1'; controller.itemTags = '1'; controller.tags = '1'; controller.clear(); expect(controller.item).toEqual(null); expect(controller.itemTags).toEqual(null); expect(controller.tags).toEqual({}); }); }); describe('show()', () => { it(`should set $.popover.parent and call $.popover.show`, () => { spyOn(controller.$.popover, 'show'); controller.show(); expect(controller.$.popover.show).toHaveBeenCalledWith(); expect(controller.$.popover.parent).toEqual('mariano'); }); }); describe('_getItem()', () => { it(`should make a query and set this.item`, () => { $httpBackend.whenGET(`/item/api/Items/1/getCard`).respond(true); $httpBackend.expectGET(`/item/api/Items/1/getCard`); controller._getItem(); $httpBackend.flush(); expect(controller.item).toEqual(true); }); }); }); });