Etapa 1 inteira (logica com 100% de cobertura, cena 3D, toque, sons, bancada de desempenho, e2e) e a base da etapa 2 (mapa novo no Tiled, texturas, imagens dos itens, sons conferidos, golpe recortado e medido). Pagina /jogo fora do menu e do sitemap ate a medicao no celular.
49 lines
1.5 KiB
TypeScript
49 lines
1.5 KiB
TypeScript
import { registrar, registrarEliminacao, registrarResolvido } from "./feed";
|
|
import type { Partida } from "./tipos";
|
|
|
|
const nova = (): Pick<Partida, "feed" | "passo"> => ({ 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");
|
|
});
|
|
});
|