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.
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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/);
|
||||
});
|
||||
Reference in New Issue
Block a user