134 lines
4.0 KiB
JavaScript
134 lines
4.0 KiB
JavaScript
import './index.js';
|
|
describe('Component vnMonitorSalesTickets', () => {
|
|
let controller;
|
|
let $window;
|
|
let tickets = [{
|
|
id: 1,
|
|
clientFk: 1,
|
|
checked: false,
|
|
totalWithVat: 10.5
|
|
}, {
|
|
id: 2,
|
|
clientFk: 1,
|
|
checked: true,
|
|
totalWithVat: 20.5
|
|
}, {
|
|
id: 3,
|
|
clientFk: 1,
|
|
checked: true,
|
|
totalWithVat: 30
|
|
}];
|
|
|
|
beforeEach(ngModule('monitor'));
|
|
|
|
beforeEach(inject(($componentController, _$window_) => {
|
|
$window = _$window_;
|
|
const $element = angular.element('<vn-monitor-sales-tickets></vn-monitor-sales-tickets>');
|
|
controller = $componentController('vnMonitorSalesTickets', {$element});
|
|
}));
|
|
|
|
describe('fetchParams()', () => {
|
|
it('should return a range of dates with passed scope days', () => {
|
|
let params = controller.fetchParams({
|
|
scopeDays: 2
|
|
});
|
|
const from = Date.vnNew();
|
|
from.setHours(0, 0, 0, 0);
|
|
const to = new Date(from.getTime());
|
|
to.setDate(to.getDate() + params.scopeDays);
|
|
to.setHours(23, 59, 59, 999);
|
|
|
|
const expectedParams = {
|
|
from,
|
|
scopeDays: params.scopeDays,
|
|
to
|
|
};
|
|
|
|
expect(params).toEqual(expectedParams);
|
|
});
|
|
|
|
it('should return default value for scope days', () => {
|
|
let params = controller.fetchParams({
|
|
scopeDays: 1
|
|
});
|
|
|
|
expect(params.scopeDays).toEqual(1);
|
|
});
|
|
|
|
it('should return the given scope days', () => {
|
|
let params = controller.fetchParams({
|
|
scopeDays: 2
|
|
});
|
|
|
|
expect(params.scopeDays).toEqual(2);
|
|
});
|
|
});
|
|
|
|
describe('compareDate()', () => {
|
|
it('should return warning when the date is the present', () => {
|
|
let today = Date.vnNew();
|
|
let result = controller.compareDate(today);
|
|
|
|
expect(result).toEqual('warning');
|
|
});
|
|
|
|
it('should return sucess when the date is in the future', () => {
|
|
let futureDate = Date.vnNew();
|
|
futureDate = futureDate.setDate(futureDate.getDate() + 10);
|
|
let result = controller.compareDate(futureDate);
|
|
|
|
expect(result).toEqual('success');
|
|
});
|
|
|
|
it('should return undefined when the date is in the past', () => {
|
|
let pastDate = Date.vnNew();
|
|
pastDate = pastDate.setDate(pastDate.getDate() - 10);
|
|
let result = controller.compareDate(pastDate);
|
|
|
|
expect(result).toEqual(undefined);
|
|
});
|
|
});
|
|
|
|
describe('totalPriceColor()', () => {
|
|
it('should return "warning" when the ticket amount is less than 50€', () => {
|
|
const result = controller.totalPriceColor({totalWithVat: '8.50'});
|
|
|
|
expect(result).toEqual('warning');
|
|
});
|
|
});
|
|
|
|
describe('dateRange()', () => {
|
|
it('should return two dates with the hours at the start and end of the given date', () => {
|
|
const now = Date.vnNew();
|
|
|
|
const today = now.getDate();
|
|
|
|
const dateRange = controller.dateRange(now);
|
|
const start = dateRange[0].toString();
|
|
const end = dateRange[1].toString();
|
|
|
|
expect(start).toContain(today);
|
|
expect(start).toContain('00:00:00');
|
|
|
|
expect(end).toContain(today);
|
|
expect(end).toContain('23:59:59');
|
|
});
|
|
});
|
|
|
|
describe('preview()', () => {
|
|
it('should show the dialog summary', () => {
|
|
controller.$.summary = {show: () => {}};
|
|
jest.spyOn(controller.$.summary, 'show');
|
|
|
|
let event = new MouseEvent('click', {
|
|
view: $window,
|
|
bubbles: true,
|
|
cancelable: true
|
|
});
|
|
controller.preview(event, tickets[0]);
|
|
|
|
expect(controller.$.summary.show).toHaveBeenCalledWith();
|
|
});
|
|
});
|
|
});
|