describe('Component vnRating', () => { let $element; let $ctrl; beforeEach(ngModule('vnCore')); beforeEach(inject(($compile, $rootScope) => { $element = $compile(``)($rootScope); $ctrl = $element.controller('vnRating'); })); afterEach(() => { $element.remove(); }); describe('field() setter', () => { it(`should change field value and then call the populateStars() method`, () => { jest.spyOn($ctrl, 'populateStars'); $ctrl.field = 5; expect($ctrl.populateStars).toHaveBeenCalledWith(); expect($ctrl.stars.length).toEqual(5); }); }); describe('populateStars()', () => { it(`should populate the stars array and mark four of them as active`, () => { jest.spyOn($ctrl, 'populateStars'); $ctrl.field = 4; const activeStars = $ctrl.stars.filter(star => star.isActive); expect(activeStars.length).toEqual(4); }); }); });