diff --git a/test/vitest/__tests__/pages/Customer/CustomerPayments.spec.js b/test/vitest/__tests__/pages/Customer/CustomerPayments.spec.js new file mode 100644 index 000000000..b56b29c20 --- /dev/null +++ b/test/vitest/__tests__/pages/Customer/CustomerPayments.spec.js @@ -0,0 +1,54 @@ +import { vi, describe, expect, it, beforeAll, afterEach } from 'vitest'; +import { createWrapper, axios } from 'app/test/vitest/helper'; +import CustomerPayments from 'pages/Customer/CustomerPayments.vue'; + +describe('CustomerPayments', () => { + let vm; + + + beforeAll(() => { + vm = createWrapper(CustomerPayments, { + global: { + stubs: ['Paginate'], + mocks: { + fetch: vi.fn(), + }, + } + }).vm; + }); + + afterEach(() => { + vi.clearAllMocks(); + }); + + describe('confirmTransaction()', () => { + it('should make a POST request and then call to quasar notify method', async () => { + vi.spyOn(axios, 'post').mockResolvedValue({ data: true }); + vi.spyOn(vm.quasar, 'notify'); + + await vm.confirmTransaction({ id: 1 }); + + + expect(vm.quasar.notify).toHaveBeenCalledWith( + expect.objectContaining({ + message: 'Payment confirmed', + type: 'positive' + }) + ); + }); + }); + + describe('stateColor()', () => { + it('should return "positive" when isConfirmed property is truthy', async () => { + const result = await vm.stateColor({ isConfirmed: true }); + + expect(result).toEqual('positive'); + }); + + it('should return "primary" when isConfirmed property is falsy', async () => { + const result = await vm.stateColor({ isConfirmed: false }); + + expect(result).toEqual('primary'); + }); + }); +});