salix/front/core/components/json-value/index.spec.js

94 lines
3.0 KiB
JavaScript

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('<vn-json-value></vn-json-value>');
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');
});
});
});