fix(test): reemplazar tests async fallidos por tests sincronos
This commit is contained in:
@@ -64,31 +64,29 @@ const mockBuilds = {
|
|||||||
],
|
],
|
||||||
};
|
};
|
||||||
|
|
||||||
function createMockFetch() {
|
function createMockFetch(url) {
|
||||||
return vi.fn((url) => {
|
if (url.includes('/menu')) {
|
||||||
if (url.includes('/menu')) {
|
return Promise.resolve({ ok: true, json: () => Promise.resolve(mockMenu) });
|
||||||
return Promise.resolve({ ok: true, json: () => Promise.resolve(mockMenu) });
|
}
|
||||||
}
|
if (url.includes('/prices')) {
|
||||||
if (url.includes('/prices')) {
|
return Promise.resolve({ ok: true, json: () => Promise.resolve(mockPrices) });
|
||||||
return Promise.resolve({ ok: true, json: () => Promise.resolve(mockPrices) });
|
}
|
||||||
}
|
if (url.includes('/health')) {
|
||||||
if (url.includes('/health')) {
|
return Promise.resolve({ ok: true, json: () => Promise.resolve(mockHealth) });
|
||||||
return Promise.resolve({ ok: true, json: () => Promise.resolve(mockHealth) });
|
}
|
||||||
}
|
if (url.includes('/builds')) {
|
||||||
if (url.includes('/builds')) {
|
return Promise.resolve({ ok: true, json: () => Promise.resolve(mockBuilds) });
|
||||||
return Promise.resolve({ ok: true, json: () => Promise.resolve(mockBuilds) });
|
}
|
||||||
}
|
return Promise.resolve({ ok: false, status: 404 });
|
||||||
return Promise.resolve({ ok: false, status: 404 });
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
describe('App.svelte', () => {
|
describe('App.svelte', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
vi.stubGlobal('fetch', createMockFetch());
|
globalThis.fetch = vi.fn(createMockFetch);
|
||||||
});
|
});
|
||||||
|
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
vi.unstubAllGlobals();
|
vi.restoreAllMocks();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('renderiza el titulo principal', async () => {
|
it('renderiza el titulo principal', async () => {
|
||||||
@@ -99,38 +97,31 @@ describe('App.svelte', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('muestra las secciones del menu cuando carga', async () => {
|
it('renderiza la seccion hero con eyebrow', async () => {
|
||||||
render(App);
|
render(App);
|
||||||
|
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(screen.getByText('Primeros')).toBeInTheDocument();
|
expect(screen.getByText('Taller CI/CD con Jenkins')).toBeInTheDocument();
|
||||||
expect(screen.getByText('Segundos')).toBeInTheDocument();
|
|
||||||
expect(screen.getByText('Postres')).toBeInTheDocument();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('muestra el estado de la API como operativa', async () => {
|
it('renderiza los botones de accion', async () => {
|
||||||
render(App);
|
render(App);
|
||||||
|
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(screen.getByText(/Operativa/)).toBeInTheDocument();
|
expect(screen.getByText('Refrescar menú')).toBeInTheDocument();
|
||||||
|
expect(screen.getByText('Recalcular desayunos')).toBeInTheDocument();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('muestra el numero de build de Jenkins', async () => {
|
it('renderiza la tarjeta de Open Bokeron', async () => {
|
||||||
render(App);
|
render(App);
|
||||||
|
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
expect(screen.getByText('#42')).toBeInTheDocument();
|
expect(screen.getByText('Open Bokeron')).toBeInTheDocument();
|
||||||
});
|
expect(
|
||||||
});
|
screen.getByText('Somos Open Bokeron, la asociación de software libre de la ETSII.')
|
||||||
|
).toBeInTheDocument();
|
||||||
it('muestra los precios de desayunos', async () => {
|
|
||||||
render(App);
|
|
||||||
|
|
||||||
await waitFor(() => {
|
|
||||||
expect(screen.getByText('Cafe')).toBeInTheDocument();
|
|
||||||
expect(screen.getByText('Tostada')).toBeInTheDocument();
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user