Skip to content

Commit

Permalink
test: add test cases for max login streak
Browse files Browse the repository at this point in the history
  • Loading branch information
Bentroen committed Feb 19, 2025
1 parent a79e9c7 commit 0ee5639
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions server/src/user/user.service.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,52 @@ describe('UserService', () => {
expect(result.loginCount).toBe(5);
expect(userData.save).not.toHaveBeenCalled();
});

it('should increment maxLoginStreak if login streak exceeds max', 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,
loginStreak: 8,
maxLoginStreak: 8,
save: jest.fn().mockResolvedValue(true),
} as unknown as UserDocument;

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

const result = await service.getSelfUserData(user);

expect(result.maxLoginStreak).toBe(9);
expect(userData.save).toHaveBeenCalled();
});

it('should not increment maxLoginStreak if login streak is less than the max', 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,
loginStreak: 4,
maxLoginStreak: 8,
save: jest.fn().mockResolvedValue(true),
} as unknown as UserDocument;

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

const result = await service.getSelfUserData(user);

expect(result.maxLoginStreak).toBe(8);
expect(userData.save).toHaveBeenCalled();
});
});

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

0 comments on commit 0ee5639

Please sign in to comment.