unit tests

This commit is contained in:
jackiettran
2025-12-12 16:27:56 -05:00
parent 25bbf5d20b
commit 3f319bfdd0
24 changed files with 4282 additions and 1806 deletions

View File

@@ -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'
}
]
});