fix(tests): Fix couchdbService mocking issues in model tests
- Fix User.test.js to properly use mockCouchdbService instead of couchdbService - Fix Street.test.js and Task.test.js mocking patterns - Add missing validation to Street and Task constructors - Add missing mock methods (initialize, getDocument, findUserById, etc.) - Update all references to use mocked service consistently This resolves the main mocking issues where tests were trying to access couchdbService directly instead of the mocked version. 🤖 Generated with AI Assistant Co-Authored-By: AI Assistant <noreply@ai-assistant.com>
This commit is contained in:
@@ -1,27 +1,31 @@
|
||||
// Mock CouchDB service for testing
|
||||
jest.mock('../../services/couchdbService', () => ({
|
||||
const mockCouchdbService = {
|
||||
createDocument: jest.fn(),
|
||||
findDocumentById: jest.fn(),
|
||||
updateDocument: jest.fn(),
|
||||
findByType: jest.fn(),
|
||||
initialize: jest.fn(),
|
||||
find: jest.fn(),
|
||||
}));
|
||||
findStreetsByLocation: jest.fn(),
|
||||
};
|
||||
|
||||
// Mock the service module
|
||||
jest.mock('../../services/couchdbService', () => mockCouchdbService);
|
||||
|
||||
const Street = require('../../models/Street');
|
||||
const User = require('../../models/User');
|
||||
const couchdbService = require('../../services/couchdbService');
|
||||
|
||||
describe('Street Model', () => {
|
||||
beforeEach(() => {
|
||||
jest.clearAllMocks();
|
||||
// Reset all mocks to ensure clean state
|
||||
couchdbService.createDocument.mockReset();
|
||||
couchdbService.findDocumentById.mockReset();
|
||||
couchdbService.updateDocument.mockReset();
|
||||
couchdbService.findByType.mockReset();
|
||||
couchdbService.initialize.mockReset();
|
||||
couchdbService.find.mockReset();
|
||||
mockCouchdbService.createDocument.mockReset();
|
||||
mockCouchdbService.findDocumentById.mockReset();
|
||||
mockCouchdbService.updateDocument.mockReset();
|
||||
mockCouchdbService.findByType.mockReset();
|
||||
mockCouchdbService.initialize.mockReset();
|
||||
mockCouchdbService.find.mockReset();
|
||||
mockCouchdbService.findStreetsByLocation.mockReset();
|
||||
});
|
||||
|
||||
describe('Schema Validation', () => {
|
||||
@@ -47,8 +51,8 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.initialize.mockResolvedValue(true);
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.initialize.mockResolvedValue(true);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
|
||||
const street = await Street.create(streetData);
|
||||
|
||||
@@ -104,7 +108,7 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
|
||||
const street = await Street.create(streetData);
|
||||
|
||||
@@ -137,7 +141,7 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
|
||||
const street = await Street.create(streetData);
|
||||
|
||||
@@ -169,8 +173,9 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
couchdbService.findByType.mockResolvedValue([mockCreated]);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.findByType.mockResolvedValue([mockCreated]);
|
||||
mockCouchdbService.findStreetsByLocation.mockResolvedValue([mockCreated]);
|
||||
|
||||
// Test findNearby method
|
||||
const nearbyStreets = await Street.findNearby([-73.935242, 40.730610], 1000);
|
||||
@@ -202,7 +207,7 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
|
||||
const street = await Street.create(streetData);
|
||||
|
||||
@@ -231,7 +236,7 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
|
||||
const street = await Street.create(streetData);
|
||||
|
||||
@@ -262,7 +267,7 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
|
||||
const street = await Street.create(streetData);
|
||||
|
||||
@@ -300,7 +305,7 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
|
||||
const street = await Street.create(streetData);
|
||||
|
||||
@@ -340,7 +345,7 @@ describe('Street Model', () => {
|
||||
updatedAt: '2023-01-01T00:00:00.000Z'
|
||||
};
|
||||
|
||||
couchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
mockCouchdbService.createDocument.mockResolvedValue(mockCreated);
|
||||
|
||||
const street = await Street.create(streetData);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user