first commit
This commit is contained in:
34
tests/unit/transaction.service.test.js
Normal file
34
tests/unit/transaction.service.test.js
Normal file
@@ -0,0 +1,34 @@
|
||||
const mockStatus = jest.fn();
|
||||
const mockRefund = jest.fn();
|
||||
jest.mock('../../app/core/midtrans.service', () => ({
|
||||
getCoreApi: jest.fn().mockReturnValue({
|
||||
transaction: { status: mockStatus, refund: mockRefund, cancel: jest.fn() }
|
||||
}),
|
||||
getSnap: jest.fn()
|
||||
}));
|
||||
|
||||
jest.mock('../../models/migration', () => ({
|
||||
Order: { findByPk: jest.fn(), findOne: jest.fn(), update: jest.fn() },
|
||||
Payment: { findOne: jest.fn(), create: jest.fn(), update: jest.fn() }
|
||||
}));
|
||||
|
||||
const transactionService = require('../../app/modules/transaction/services/transaction.service');
|
||||
|
||||
describe('TransactionService', () => {
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
});
|
||||
|
||||
it('should get transaction status successfully', async () => {
|
||||
mockStatus.mockResolvedValue({ transaction_status: 'settlement' });
|
||||
const result = await transactionService.getStatus('INV-123');
|
||||
expect(mockStatus).toHaveBeenCalledWith('INV-123');
|
||||
expect(result.transaction_status).toBe('settlement');
|
||||
});
|
||||
|
||||
it('should process refund successfully', async () => {
|
||||
mockRefund.mockResolvedValue({ status_code: '200' });
|
||||
const result = await transactionService.refund({ order_id: 'INV-123', external_id: 'INV-123', amount: 5000 });
|
||||
expect(mockRefund).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user