-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #25 from fga-eps-mds/feat#74/estudio-de-criacao
feat(#74): testando o service studio maker
- Loading branch information
Showing
1 changed file
with
249 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,249 @@ | ||
import { | ||
getJourneys, | ||
getJourneysByUser, | ||
createJourney, | ||
updateJourneyById, | ||
deleteJourney, | ||
getTrails, | ||
updateTrailById, | ||
createTrail, | ||
deleteTrail, | ||
getJourney | ||
} from '@/services/studioMaker.service'; | ||
import { studioMakerApi } from '@/services/apis.service'; | ||
|
||
jest.mock('@/services/apis.service'); | ||
|
||
describe('Serviço de Jornadas e Trilhas', () => { | ||
|
||
afterEach(() => { | ||
jest.clearAllMocks(); | ||
}); | ||
|
||
test('Deve retornar todas as jornadas com sucesso', async () => { | ||
const mockData = [{ id: '1', name: 'Jornada Teste' }]; | ||
(studioMakerApi.get as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const journeys = await getJourneys(); | ||
expect(journeys).toEqual(mockData); | ||
expect(studioMakerApi.get).toHaveBeenCalledWith('/journeys', {}); | ||
}); | ||
|
||
test('Deve falhar ao buscar jornadas', async () => { | ||
(studioMakerApi.get as jest.Mock).mockRejectedValue(new Error('Falha ao buscar jornadas')); | ||
|
||
await expect(getJourneys()).rejects.toThrow('Falha ao buscar jornadas'); | ||
}); | ||
|
||
test('Deve retornar jornadas do usuário com sucesso', async () => { | ||
const mockData = [{ id: '1', name: 'Jornada do Usuário' }]; | ||
const userId = '123'; | ||
(studioMakerApi.get as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const journeys = await getJourneysByUser(userId); | ||
expect(journeys).toEqual(mockData); | ||
expect(studioMakerApi.get).toHaveBeenCalledWith(`/journeys/user/${userId}`, {}); | ||
}); | ||
|
||
test('Deve falhar ao buscar jornadas do usuário', async () => { | ||
const userId = '123'; | ||
(studioMakerApi.get as jest.Mock).mockRejectedValue(new Error('Falha ao buscar jornadas do usuário')); | ||
|
||
await expect(getJourneysByUser(userId)).rejects.toThrow('Falha ao buscar jornadas do usuário'); | ||
}); | ||
|
||
test('Deve criar uma nova jornada com sucesso', async () => { | ||
const mockData = { id: '1', name: 'Nova Jornada' }; | ||
const token = 'fake-token'; | ||
(studioMakerApi.post as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const result = await createJourney({ data: mockData, token }); | ||
expect(result.data).toEqual(mockData); | ||
expect(studioMakerApi.post).toHaveBeenCalledWith('/journeys', mockData, { | ||
headers: { Authorization: `Bearer ${token}` }, | ||
}); | ||
}); | ||
|
||
test('Deve falhar ao criar uma nova jornada', async () => { | ||
const token = 'fake-token'; | ||
(studioMakerApi.post as jest.Mock).mockRejectedValue(new Error('Falha ao criar jornada')); | ||
|
||
const result = await createJourney({ data: {}, token }); | ||
|
||
if (result.error instanceof Error) { | ||
expect(result.error.message).toBe('Falha ao criar jornada'); | ||
} else { | ||
throw new Error('Erro esperado não é uma instância de Error'); | ||
} | ||
}); | ||
|
||
test('Deve atualizar uma jornada por ID com sucesso', async () => { | ||
const mockData = { id: '1', name: 'Jornada Atualizada' }; | ||
const id = '1'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.put as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const result = await updateJourneyById({ id, data: mockData, token }); | ||
expect(result.data).toEqual(mockData); | ||
expect(studioMakerApi.put).toHaveBeenCalledWith(`/journeys/${id}`, mockData, { | ||
headers: { Authorization: `Bearer ${token}` }, | ||
}); | ||
}); | ||
|
||
test('Deve falhar ao atualizar uma jornada', async () => { | ||
const id = '1'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.put as jest.Mock).mockRejectedValue(new Error('Falha ao atualizar jornada')); | ||
|
||
const result = await updateJourneyById({ id, data: {}, token }); | ||
if (result.error instanceof Error) { | ||
expect(result.error.message).toBe('Falha ao atualizar jornada'); | ||
} else { | ||
throw new Error('Erro esperado não é uma instância de Error'); | ||
} | ||
}); | ||
|
||
test('Deve deletar uma jornada por ID com sucesso', async () => { | ||
const mockData = { success: true }; | ||
const id = '1'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.delete as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const result = await deleteJourney({ id, token }); | ||
expect(result.data).toEqual(mockData); | ||
expect(studioMakerApi.delete).toHaveBeenCalledWith(`/journeys/${id}`, { | ||
headers: { Authorization: `Bearer ${token}` }, | ||
}); | ||
}); | ||
|
||
test('Deve falhar ao atualizar uma jornada', async () => { | ||
const id = '1'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.put as jest.Mock).mockRejectedValue(new Error('Falha ao atualizar jornada')); | ||
|
||
const result = await updateJourneyById({ id, data: {}, token }); | ||
|
||
if (result.error instanceof Error) { | ||
expect(result.error.message).toBe('Falha ao atualizar jornada'); | ||
} else { | ||
throw new Error('Erro esperado não é uma instância de Error'); | ||
} | ||
}); | ||
|
||
|
||
test('Deve retornar todas as trilhas de uma jornada com sucesso', async () => { | ||
const mockData = [{ id: '1', name: 'Trilha Teste' }]; | ||
const journeyId = '123'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.get as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const trails = await getTrails({ id: journeyId, token }); | ||
expect(trails).toEqual(mockData); | ||
expect(studioMakerApi.get).toHaveBeenCalledWith(`/trails/journey/${journeyId}`, { | ||
headers: { Authorization: `Bearer ${token}` }, | ||
}); | ||
}); | ||
|
||
test('Deve falhar ao buscar trilhas de uma jornada', async () => { | ||
const journeyId = '123'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.get as jest.Mock).mockRejectedValue(new Error('Falha ao buscar trilhas')); | ||
|
||
await expect(getTrails({ id: journeyId, token })).rejects.toThrow('Falha ao buscar trilhas'); | ||
}); | ||
|
||
test('Deve criar uma nova trilha com sucesso', async () => { | ||
const mockData = { id: '1', name: 'Nova Trilha' }; | ||
const token = 'fake-token'; | ||
(studioMakerApi.post as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const result = await createTrail({ data: mockData, token }); | ||
expect(result.data).toEqual(mockData); | ||
expect(studioMakerApi.post).toHaveBeenCalledWith('/trails', mockData, { | ||
headers: { Authorization: `Bearer ${token}` }, | ||
}); | ||
}); | ||
|
||
test('Deve falhar ao criar uma nova trilha', async () => { | ||
const token = 'fake-token'; | ||
(studioMakerApi.post as jest.Mock).mockRejectedValue(new Error('Falha ao criar trilha')); | ||
|
||
const result = await createTrail({ data: {}, token }); | ||
|
||
if (result.error instanceof Error) { | ||
expect(result.error.message).toBe('Falha ao criar trilha'); | ||
} else { | ||
throw new Error('Erro esperado não é uma instância de Error'); | ||
} | ||
}); | ||
|
||
|
||
test('Deve atualizar uma trilha por ID com sucesso', async () => { | ||
const mockData = { id: '1', name: 'Trilha Atualizada' }; | ||
const id = '1'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.put as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const result = await updateTrailById({ id, data: mockData, token }); | ||
expect(result.data).toEqual(mockData); | ||
expect(studioMakerApi.put).toHaveBeenCalledWith(`/trails/${id}`, mockData, { | ||
headers: { Authorization: `Bearer ${token}` }, | ||
}); | ||
}); | ||
|
||
test('Deve falhar ao atualizar uma trilha', async () => { | ||
const id = '1'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.put as jest.Mock).mockRejectedValue(new Error('Falha ao atualizar trilha')); | ||
|
||
const result = await updateTrailById({ id, data: {}, token }); | ||
if (result.error instanceof Error) { | ||
expect(result.error.message).toBe('Falha ao atualizar trilha'); | ||
} else { | ||
throw new Error('Erro esperado não é uma instância de Error'); | ||
} | ||
}); | ||
|
||
test('Deve deletar uma trilha por ID com sucesso', async () => { | ||
const mockData = { success: true }; | ||
const id = '1'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.delete as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const result = await deleteTrail({ id, token }); | ||
expect(result.data).toEqual(mockData); | ||
expect(studioMakerApi.delete).toHaveBeenCalledWith(`/trails/${id}`, { | ||
headers: { Authorization: `Bearer ${token}` }, | ||
}); | ||
}); | ||
|
||
test('Deve falhar ao deletar uma trilha', async () => { | ||
const id = '1'; | ||
const token = 'fake-token'; | ||
(studioMakerApi.delete as jest.Mock).mockRejectedValue(new Error('Falha ao deletar trilha')); | ||
|
||
const result = await deleteTrail({ id, token }); | ||
if (result.error instanceof Error) { | ||
expect(result.error.message).toBe('Falha ao deletar trilha'); | ||
} else { | ||
throw new Error('Erro esperado não é uma instância de Error'); | ||
} | ||
}); | ||
|
||
test('Deve retornar uma jornada específica pelo ID', async () => { | ||
const mockData = { id: '1', name: 'Jornada Teste' }; | ||
const id = '1'; | ||
(studioMakerApi.get as jest.Mock).mockResolvedValue({ data: mockData }); | ||
|
||
const journey = await getJourney(id); | ||
expect(journey).toEqual(mockData); | ||
expect(studioMakerApi.get).toHaveBeenCalledWith(`/journeys/${id}`); | ||
}); | ||
|
||
test('Deve falhar ao buscar uma jornada pelo ID', async () => { | ||
const id = '1'; | ||
(studioMakerApi.get as jest.Mock).mockRejectedValue(new Error('Falha ao buscar jornada')); | ||
|
||
await expect(getJourney(id)).rejects.toThrow('Falha ao buscar jornada'); | ||
}); | ||
}); |