Refactored user model mock in app password tests to utilize a lean query for improved consistency in test behavior. Updated related test cases to reflect this change, ensuring accurate user data retrieval during authentication tests.
Some checks failed
farmcontrol/farmcontrol-api/pipeline/head There was a failure building this commit

This commit is contained in:
Tom Butcher 2026-07-20 02:18:36 +01:00
parent cb16385b33
commit 491900bdaf

View File

@ -1,7 +1,10 @@
import { jest } from '@jest/globals'; import { jest } from '@jest/globals';
const userQueryMock = {
lean: jest.fn(),
};
const userModelMock = { const userModelMock = {
findOne: jest.fn(), findOne: jest.fn(() => userQueryMock),
}; };
const appPasswordQueryMock = { const appPasswordQueryMock = {
select: jest.fn(), select: jest.fn(),
@ -90,7 +93,7 @@ describe('app-password authentication', () => {
it('accepts a valid username and app password', async () => { it('accepts a valid username and app password', async () => {
const user = { _id: 'user-1', username: 'slicer-user' }; const user = { _id: 'user-1', username: 'slicer-user' };
userModelMock.findOne.mockResolvedValue(user); userQueryMock.lean.mockResolvedValue(user);
appPasswordQueryMock.lean.mockResolvedValue([{ secret: 'stored-hash' }]); appPasswordQueryMock.lean.mockResolvedValue([{ secret: 'stored-hash' }]);
bcryptCompareMock.mockResolvedValue(true); bcryptCompareMock.mockResolvedValue(true);
@ -105,7 +108,7 @@ describe('app-password authentication', () => {
const user = { _id: 'user-1', username: 'slicer-user' }; const user = { _id: 'user-1', username: 'slicer-user' };
req.headers = {}; req.headers = {};
req.params.password = 'app-secret'; req.params.password = 'app-secret';
userModelMock.findOne.mockResolvedValue(user); userQueryMock.lean.mockResolvedValue(user);
appPasswordQueryMock.lean.mockResolvedValue([{ secret: 'stored-hash' }]); appPasswordQueryMock.lean.mockResolvedValue([{ secret: 'stored-hash' }]);
bcryptCompareMock.mockResolvedValue(true); bcryptCompareMock.mockResolvedValue(true);
@ -117,7 +120,7 @@ describe('app-password authentication', () => {
}); });
it('rejects an invalid app password', async () => { it('rejects an invalid app password', async () => {
userModelMock.findOne.mockResolvedValue({ _id: 'user-1', username: 'slicer-user' }); userQueryMock.lean.mockResolvedValue({ _id: 'user-1', username: 'slicer-user' });
appPasswordQueryMock.lean.mockResolvedValue([{ secret: 'stored-hash' }]); appPasswordQueryMock.lean.mockResolvedValue([{ secret: 'stored-hash' }]);
bcryptCompareMock.mockResolvedValue(false); bcryptCompareMock.mockResolvedValue(false);