unit tests
This commit is contained in:
@@ -1,19 +1,15 @@
|
||||
// Mock dependencies
|
||||
const mockRentalFindAll = jest.fn();
|
||||
const mockRentalUpdate = jest.fn();
|
||||
const mockUserModel = jest.fn();
|
||||
const mockCreateTransfer = jest.fn();
|
||||
|
||||
// Mock dependencies - define mocks inline to avoid hoisting issues
|
||||
jest.mock('../../../models', () => ({
|
||||
Rental: {
|
||||
findAll: mockRentalFindAll,
|
||||
update: mockRentalUpdate
|
||||
findAll: jest.fn(),
|
||||
update: jest.fn()
|
||||
},
|
||||
User: mockUserModel
|
||||
User: jest.fn(),
|
||||
Item: jest.fn()
|
||||
}));
|
||||
|
||||
jest.mock('../../../services/stripeService', () => ({
|
||||
createTransfer: mockCreateTransfer
|
||||
createTransfer: jest.fn()
|
||||
}));
|
||||
|
||||
jest.mock('sequelize', () => ({
|
||||
@@ -23,6 +19,15 @@ jest.mock('sequelize', () => ({
|
||||
}));
|
||||
|
||||
const PayoutService = require('../../../services/payoutService');
|
||||
const { Rental, User, Item } = require('../../../models');
|
||||
const StripeService = require('../../../services/stripeService');
|
||||
|
||||
// Get references to mocks after importing
|
||||
const mockRentalFindAll = Rental.findAll;
|
||||
const mockRentalUpdate = Rental.update;
|
||||
const mockUserModel = User;
|
||||
const mockItemModel = Item;
|
||||
const mockCreateTransfer = StripeService.createTransfer;
|
||||
|
||||
describe('PayoutService', () => {
|
||||
let consoleSpy, consoleErrorSpy;
|
||||
@@ -84,6 +89,10 @@ describe('PayoutService', () => {
|
||||
'not': null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
model: mockItemModel,
|
||||
as: 'item'
|
||||
}
|
||||
]
|
||||
});
|
||||
@@ -267,6 +276,11 @@ describe('PayoutService', () => {
|
||||
});
|
||||
|
||||
it('should handle database update errors during processing', async () => {
|
||||
// Stripe succeeds but database update fails
|
||||
mockCreateTransfer.mockResolvedValue({
|
||||
id: 'tr_123456789',
|
||||
amount: 9500
|
||||
});
|
||||
const dbError = new Error('Database update failed');
|
||||
mockRental.update.mockRejectedValueOnce(dbError);
|
||||
|
||||
@@ -508,6 +522,10 @@ describe('PayoutService', () => {
|
||||
'not': null
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
model: mockItemModel,
|
||||
as: 'item'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user