59 lines
1.7 KiB
JavaScript
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);
|
|
});
|
|
});
|
|
});
|