2023-04-20 17:46:57 +00:00
|
|
|
import './index';
|
|
|
|
|
2023-05-03 09:57:13 +00:00
|
|
|
describe('Component vnJsonValue', () => {
|
2023-04-20 17:46:57 +00:00
|
|
|
let controller;
|
|
|
|
let $scope;
|
|
|
|
let $element;
|
|
|
|
let el;
|
|
|
|
|
|
|
|
beforeEach(ngModule('vnCore'));
|
|
|
|
|
|
|
|
beforeEach(inject(($componentController, $rootScope) => {
|
|
|
|
$scope = $rootScope.$new();
|
2023-05-03 09:57:13 +00:00
|
|
|
$element = angular.element('<vn-json-value></vn-json-value>');
|
2023-04-20 17:46:57 +00:00
|
|
|
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');
|
|
|
|
});
|
2023-05-17 11:02:51 +00:00
|
|
|
|
|
|
|
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');
|
|
|
|
});
|
2023-04-20 17:46:57 +00:00
|
|
|
});
|
|
|
|
});
|