test(frontend): add failing tests for step 11 — pages, components, and API modules

This commit is contained in:
2026-03-26 19:14:03 -03:00
parent 031ad3d4b2
commit 45fc176f32
8 changed files with 381 additions and 5 deletions

View 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' })
})
})

View 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')
})
})

View 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')
})
})