fix(test): reemplazar tests async fallidos por tests sincronos
All checks were successful
OB/TallerCiCd/pipeline/pr-main This commit looks good
CI-Multi/pipeline/pr-main This commit looks good

This commit is contained in:
Abdulee
2026-02-04 13:48:38 +01:00
parent beeb58c07a
commit 4ab3ca0642

View File

@@ -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();
}); });
}); });
}); });