0
Fork 0
mirror of https://github.com/logto-io/logto.git synced 2025-01-13 21:30:30 -05:00
logto/packages/core/src/routes/log.test.ts
Gao Sun 08bea22195
chore(deps): upgrade packages (#1738)
* chore(deps): upgrade packages

* refactor: update per lint report

* chore(deps): upgrade configs

* fix(ui): lint rules compatibility

* chore: remove unused override

* chore(deps): upgrade jest config
2022-08-05 05:58:31 +00:00

68 lines
2.3 KiB
TypeScript

import { LogCondition } from '@/queries/log';
import logRoutes from '@/routes/log';
import { createRequester } from '@/utils/test-utils';
const mockBody = { type: 'a', payload: {}, createdAt: 123 };
const mockLog = { id: '1', ...mockBody };
const mockLogs = [mockLog, { id: '2', ...mockBody }];
const countLogs = jest.fn(async (condition: LogCondition) => ({
count: mockLogs.length,
}));
const findLogs = jest.fn(
async (limit: number, offset: number, condition: LogCondition) => mockLogs
);
const findLogById = jest.fn(async (id: string) => mockLog);
jest.mock('@/queries/log', () => ({
countLogs: async (condition: LogCondition) => countLogs(condition),
findLogs: async (limit: number, offset: number, condition: LogCondition) =>
findLogs(limit, offset, condition),
findLogById: async (id: string) => findLogById(id),
}));
describe('logRoutes', () => {
const logRequest = createRequester({ authedRoutes: logRoutes });
afterEach(() => {
jest.clearAllMocks();
});
describe('GET /logs', () => {
it('should call countLogs and findLogs with correct parameters', async () => {
const userId = 'userIdValue';
const applicationId = 'foo';
const logType = 'SignInUsernamePassword';
const page = 1;
const pageSize = 5;
await logRequest.get(
`/logs?userId=${userId}&applicationId=${applicationId}&logType=${logType}&page=${page}&page_size=${pageSize}`
);
expect(countLogs).toHaveBeenCalledWith({ userId, applicationId, logType });
expect(findLogs).toHaveBeenCalledWith(5, 0, { userId, applicationId, logType });
});
it('should return correct response', async () => {
const response = await logRequest.get(`/logs`);
expect(response.status).toEqual(200);
expect(response.body).toEqual(mockLogs);
expect(response.header).toHaveProperty('total-number', `${mockLogs.length}`);
});
});
describe('GET /logs/:id', () => {
const logId = 'logIdValue';
it('should call findLogById with correct parameters', async () => {
await logRequest.get(`/logs/${logId}`);
expect(findLogById).toHaveBeenCalledWith(logId);
});
it('should return correct response', async () => {
const response = await logRequest.get(`/logs/${logId}`);
expect(response.status).toEqual(200);
expect(response.body).toEqual(mockLog);
});
});
});