syntaxai/tdd.md · main · content / games / fizzbuzz / spec.ts

spec.ts 31 lines · 915 bytes raw
import type { Game } from "../../../src/c31_games.ts";

export const spec: Game = {
  id: "fizzbuzz",
  description: "FizzBuzz, judged. Build say(n) in four steps: number, Fizz, Buzz, FizzBuzz.",
  signature: "say(n: number): string",
  importPath: "./fizzbuzz",
  steps: [
    {
      id: "number",
      requirement: "say(n) returns the number as a string for inputs that are neither divisible by 3 nor 5",
      hiddenTestFile: "hidden/number.ts",
    },
    {
      id: "fizz",
      requirement: "say(n) returns 'Fizz' for multiples of 3 (but not 5)",
      hiddenTestFile: "hidden/fizz.ts",
    },
    {
      id: "buzz",
      requirement: "say(n) returns 'Buzz' for multiples of 5 (but not 3)",
      hiddenTestFile: "hidden/buzz.ts",
    },
    {
      id: "fizzbuzz",
      requirement: "say(n) returns 'FizzBuzz' for multiples of both 3 and 5",
      hiddenTestFile: "hidden/fizzbuzz.ts",
    },
  ],
};