test(frontend): add failing tests for step 11 — pages, components, and API modules
This commit is contained in:
40
frontend/src/__tests__/api/authApi.test.ts
Normal file
40
frontend/src/__tests__/api/authApi.test.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
||||
import apiClient from '@/api/apiClient'
|
||||
import { login, logout, getMe } from '@/api/authApi'
|
||||
|
||||
vi.mock('@/api/apiClient', () => ({
|
||||
default: {
|
||||
post: vi.fn(),
|
||||
get: vi.fn(),
|
||||
},
|
||||
}))
|
||||
|
||||
const mockedApiClient = apiClient as {
|
||||
post: ReturnType<typeof vi.fn>
|
||||
get: ReturnType<typeof vi.fn>
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
})
|
||||
|
||||
describe('authApi', () => {
|
||||
it('should_callLoginEndpoint_when_loginCalled', async () => {
|
||||
mockedApiClient.post.mockResolvedValue({ data: {} })
|
||||
await login({ password: 'secret' })
|
||||
expect(mockedApiClient.post).toHaveBeenCalledWith('/auth/login', { password: 'secret' })
|
||||
})
|
||||
|
||||
it('should_callLogoutEndpoint_when_logoutCalled', async () => {
|
||||
mockedApiClient.post.mockResolvedValue({ data: {} })
|
||||
await logout()
|
||||
expect(mockedApiClient.post).toHaveBeenCalledWith('/auth/logout')
|
||||
})
|
||||
|
||||
it('should_callMeEndpoint_when_getMeCalled', async () => {
|
||||
mockedApiClient.get.mockResolvedValue({ data: { message: 'Authenticated' } })
|
||||
const result = await getMe()
|
||||
expect(mockedApiClient.get).toHaveBeenCalledWith('/auth/me')
|
||||
expect(result).toEqual({ message: 'Authenticated' })
|
||||
})
|
||||
})
|
||||
62
frontend/src/__tests__/api/entitiesApi.test.ts
Normal file
62
frontend/src/__tests__/api/entitiesApi.test.ts
Normal file
@@ -0,0 +1,62 @@
|
||||
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
||||
import apiClient from '@/api/apiClient'
|
||||
import {
|
||||
getEntities,
|
||||
createEntity,
|
||||
updateEntity,
|
||||
deleteEntity,
|
||||
triggerEntity,
|
||||
} from '@/api/entitiesApi'
|
||||
|
||||
vi.mock('@/api/apiClient', () => ({
|
||||
default: {
|
||||
get: vi.fn(),
|
||||
post: vi.fn(),
|
||||
put: vi.fn(),
|
||||
delete: vi.fn(),
|
||||
},
|
||||
}))
|
||||
|
||||
const mockedApiClient = apiClient as {
|
||||
get: ReturnType<typeof vi.fn>
|
||||
post: ReturnType<typeof vi.fn>
|
||||
put: ReturnType<typeof vi.fn>
|
||||
delete: ReturnType<typeof vi.fn>
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
})
|
||||
|
||||
describe('entitiesApi', () => {
|
||||
it('should_callGetEndpoint_when_getAllEntitiesCalled', async () => {
|
||||
mockedApiClient.get.mockResolvedValue({ data: [] })
|
||||
await getEntities()
|
||||
expect(mockedApiClient.get).toHaveBeenCalledWith('/v1/virtual-entities')
|
||||
})
|
||||
|
||||
it('should_callPostEndpoint_when_createEntityCalled', async () => {
|
||||
const dto = { name: 'Test', email: 'test@test.com', jobTitle: 'Tester', personality: '', scheduleCron: '', contextWindowDays: 3 }
|
||||
mockedApiClient.post.mockResolvedValue({ data: dto })
|
||||
await createEntity(dto)
|
||||
expect(mockedApiClient.post).toHaveBeenCalledWith('/v1/virtual-entities', dto)
|
||||
})
|
||||
|
||||
it('should_callPutEndpoint_when_updateEntityCalled', async () => {
|
||||
mockedApiClient.put.mockResolvedValue({ data: {} })
|
||||
await updateEntity('123', { name: 'Updated' })
|
||||
expect(mockedApiClient.put).toHaveBeenCalledWith('/v1/virtual-entities/123', { name: 'Updated' })
|
||||
})
|
||||
|
||||
it('should_callDeleteEndpoint_when_deleteEntityCalled', async () => {
|
||||
mockedApiClient.delete.mockResolvedValue({ data: {} })
|
||||
await deleteEntity('123')
|
||||
expect(mockedApiClient.delete).toHaveBeenCalledWith('/v1/virtual-entities/123')
|
||||
})
|
||||
|
||||
it('should_callTriggerEndpoint_when_triggerEntityCalled', async () => {
|
||||
mockedApiClient.post.mockResolvedValue({ data: {} })
|
||||
await triggerEntity('123')
|
||||
expect(mockedApiClient.post).toHaveBeenCalledWith('/v1/virtual-entities/123/trigger')
|
||||
})
|
||||
})
|
||||
31
frontend/src/__tests__/api/logsApi.test.ts
Normal file
31
frontend/src/__tests__/api/logsApi.test.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { describe, it, expect, vi, beforeEach } from 'vitest'
|
||||
import apiClient from '@/api/apiClient'
|
||||
import { getLogs, getLogsByEntity } from '@/api/logsApi'
|
||||
|
||||
vi.mock('@/api/apiClient', () => ({
|
||||
default: {
|
||||
get: vi.fn(),
|
||||
},
|
||||
}))
|
||||
|
||||
const mockedApiClient = apiClient as {
|
||||
get: ReturnType<typeof vi.fn>
|
||||
}
|
||||
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
})
|
||||
|
||||
describe('logsApi', () => {
|
||||
it('should_callGetAllLogsEndpoint_when_getAllLogsCalled', async () => {
|
||||
mockedApiClient.get.mockResolvedValue({ data: [] })
|
||||
await getLogs()
|
||||
expect(mockedApiClient.get).toHaveBeenCalledWith('/v1/dispatch-logs')
|
||||
})
|
||||
|
||||
it('should_callGetByEntityEndpoint_when_getLogsByEntityCalled', async () => {
|
||||
mockedApiClient.get.mockResolvedValue({ data: [] })
|
||||
await getLogsByEntity('entity-123')
|
||||
expect(mockedApiClient.get).toHaveBeenCalledWith('/v1/dispatch-logs/entity/entity-123')
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user