Files
sternboard/e2e/tests/columns.spec.ts
Millaguie f11ea58c2c
CI/CD Pipeline / test (push) Successful in 26s
CI/CD Pipeline / build-and-push (push) Successful in 44s
Sternboard: free retro board, no signup (initial)
Servidor Fastify + Socket.IO + Drizzle/Postgres; front Vite+React (EN/ES, tema claro/oscuro).
Tableros por columnas con plantillas, notas privadas/públicas, agrupación, votos
configurables (multivoto), timer compartido con alarma, fases, action items,
export Markdown/JSON e import, autodestrucción, gestión de columnas.
Imagen única (front servido por el servidor) y CI que la construye y publica.
2026-06-16 10:27:33 +02:00

41 lines
1.5 KiB
TypeScript

import { test, expect, type Page } from "@playwright/test";
async function createBoard(page: Page, title: string) {
await page.goto("/");
await page.getByTestId("board-title").fill(title);
await page.getByTestId("template").selectOption("mad-sad-glad");
await page.getByTestId("create").click();
await page.waitForURL(/\/b\/.+/);
}
async function joinAs(page: Page, name: string) {
await page.getByTestId("name").fill(name);
await page.getByTestId("join").click();
await expect(page.getByTestId("column").first()).toBeVisible();
}
test("añadir y eliminar columnas", async ({ page }) => {
await createBoard(page, "Retro columnas");
await joinAs(page, "Ana");
await expect(page.getByTestId("column")).toHaveCount(3);
await page.getByTestId("add-column").click();
await expect(page.getByTestId("column")).toHaveCount(4);
// eliminar la última vía menú ⋯
await page.getByTestId("column").last().getByTestId("col-menu").click();
await page.getByTestId("col-delete").click();
await expect(page.getByTestId("column")).toHaveCount(3);
});
test("fases Lluvia/Votación/Discusión", async ({ page }) => {
await createBoard(page, "Retro fases");
await joinAs(page, "Ana");
// por defecto Lluvia (writing) activa
await expect(page.getByTestId("phase-writing")).toHaveClass(/on/);
await page.getByTestId("phase-voting").click();
await expect(page.getByTestId("phase-voting")).toHaveClass(/on/);
await expect(page.getByTestId("phase-writing")).not.toHaveClass(/on/);
});