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); }); }); });