import './index'; describe('Component vnJsonValue', () => { let controller; let $scope; let $element; let el; beforeEach(ngModule('vnCore')); beforeEach(inject(($componentController, $rootScope) => { $scope = $rootScope.$new(); $element = angular.element(''); controller = $componentController('vnJsonValue', {$element, $scope}); el = controller.element; })); describe('set value()', () => { it('should display null symbol when value is null equivalent', () => { controller.value = null; expect(el.textContent).toEqual('∅'); expect(el.className).toContain('json-null'); }); it('should display ballot when value is false', () => { controller.value = false; expect(el.textContent).toEqual('✗'); expect(el.className).toContain('json-false'); }); it('should display check when value is true', () => { controller.value = true; expect(el.textContent).toEqual('✓'); expect(el.className).toContain('json-true'); }); it('should display string when value is an string', () => { controller.value = 'Foo'; expect(el.textContent).toEqual('Foo'); expect(el.className).toContain('json-string'); }); it('should display only date when value is date with time set to zero', () => { const date = Date.vnNew(); date.setHours(0, 0, 0, 0); controller.value = date; expect(el.textContent).toEqual('01/01/2001'); expect(el.className).toContain('json-object'); }); it('should display full date without time when value is date with time', () => { const date = Date.vnNew(); date.setHours(15, 45); controller.value = date; expect(el.textContent).toEqual('01/01/2001 15:45:00'); expect(el.className).toContain('json-object'); }); it('should display object when value is an object', () => { controller.value = {foo: 'bar'}; expect(el.textContent).toEqual('[object Object]'); expect(el.className).toContain('json-object'); }); it('should display number when value is a number', () => { controller.value = 2050; expect(el.textContent).toEqual('2050'); expect(el.className).toContain('json-number'); }); it('should display number when value is decimal', () => { controller.value = 10.1; expect(el.textContent).toEqual('10.1'); expect(el.className).toContain('json-number'); }); it('should display rounded number when value is decimal with lot of decimals', () => { controller.value = 10.124323234; expect(el.textContent).toEqual('10.124'); expect(el.className).toContain('json-number'); }); }); });