import { registrar, registrarEliminacao, registrarResolvido } from "./feed"; import type { Partida } from "./tipos"; const nova = (): Pick => ({ feed: [], passo: 42 }); describe("registrar", () => { it("acrescenta a linha com o passo atual", () => { const p = nova(); registrar(p, "olá"); expect(p.feed).toEqual([{ passo: 42, texto: "olá" }]); }); it("mantém cinco linhas e corta na sexta", () => { const p = nova(); for (let i = 1; i <= 5; i++) registrar(p, `l${i}`); expect(p.feed).toHaveLength(5); registrar(p, "l6"); expect(p.feed.map((l) => l.texto)).toEqual(["l2", "l3", "l4", "l5", "l6"]); }); }); describe("registrarEliminacao", () => { it("usa a solução do drone e o nome do zumbi", () => { const p = nova(); registrarEliminacao(p, "site-lento", "site-lento"); expect(p.feed[0].texto).toBe("Site rápido eliminou Site lento"); }); it("usa o próprio id quando desconhecido", () => { const p = nova(); registrarEliminacao(p, "a", "b"); expect(p.feed[0].texto).toBe("a eliminou b"); }); }); describe("registrarResolvido", () => { it("registra o nome do problema", () => { const p = nova(); registrarResolvido(p, "site-lento"); expect(p.feed[0].texto).toBe("Resolvido: Site lento"); }); it("usa o próprio id quando desconhecido", () => { const p = nova(); registrarResolvido(p, "zzz"); expect(p.feed[0].texto).toBe("Resolvido: zzz"); }); });