Skip to content

Commit

Permalink
test: add test cases for login count incrementation
Browse files Browse the repository at this point in the history
  • Loading branch information
Bentroen committed Feb 18, 2025
1 parent 2a44fca commit 1a25ca5
Showing 1 changed file with 44 additions and 0 deletions.
44 changes: 44 additions & 0 deletions server/src/user/user.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,50 @@ describe('UserService', () => {
expect(result.loginStreak).toBe(1);
expect(userData.save).toHaveBeenCalled();
});

it('should increment loginCount if lastSeen is not today', async () => {
const user = { _id: 'test-id' } as UserDocument;
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
yesterday.setHours(0, 0, 0, 0);

const userData = {
...user,
lastSeen: yesterday,
loginCount: 5,
save: jest.fn().mockResolvedValue(true),
} as unknown as UserDocument;

jest.spyOn(service, 'findByID').mockResolvedValue(userData);

const result = await service.getSelfUserData(user);

expect(result.lastSeen).toBeInstanceOf(Date);
expect(result.loginCount).toBe(6);
expect(userData.save).toHaveBeenCalled();
});

it('should not increment loginCount if lastSeen is today', async () => {
const user = { _id: 'test-id' } as UserDocument;

const today = new Date();
today.setHours(0, 0, 0, 0);

const userData = {
...user,
lastSeen: today,
loginCount: 5,
save: jest.fn().mockResolvedValue(true),
} as unknown as UserDocument;

jest.spyOn(service, 'findByID').mockResolvedValue(userData);

const result = await service.getSelfUserData(user);

expect(result.lastSeen).toEqual(today);
expect(result.loginCount).toBe(5);
expect(userData.save).not.toHaveBeenCalled();
});
});

describe('usernameExists', () => {
Expand Down

0 comments on commit 1a25ca5

Please sign in to comment.