salix-front/test/vitest/__tests__/components/common/VnSmsDialog.spec.js

59 lines
1.7 KiB
JavaScript

import { createWrapper } from 'app/test/vitest/helper';
import VnSmsDialog from 'components/common/VnSmsDialog.vue';
import { vi, afterEach, beforeAll, describe, expect, it } from 'vitest';
describe('VnSmsDialog', () => {
let vm;
const orderId = 1;
const shipped = new Date();
const phone = '012345678';
const promise = (response) => {return response;};
const template = 'minAmount';
const locale = 'en';
beforeAll(() => {
vm = createWrapper(VnSmsDialog, {
propsData: {
data: {
orderId,
shipped
},
template,
locale,
phone,
promise
}
}).vm;
});
afterEach(() => {
vi.clearAllMocks();
});
describe('updateMessage()', () => {
it('should update the message value with the correct template and parameters', () => {
vm.updateMessage();
expect(vm.message).toEqual(`A minimum amount of 50€ (VAT excluded) is required for your order ${orderId} of ${shipped} to receive it without additional shipping costs.`);
});
});
describe('send()', async () => {
it('should send the message', async () => {
vi.spyOn(vm.props, 'promise');
vm.message = 'Example message';
const response = {
orderId,
shipped,
destination: phone,
message: vm.message
};
await vm.send();
expect(vm.isLoading).toEqual(false);
expect(vm.props.promise).toHaveBeenCalledWith(response);
});
});
});