Home Manual Reference Source Test

tests/step.test.js

  1. import { describe, it, expect } from "vitest";
  2. import { Step, Solvable } from "../src/pipeline/step.js";
  3. /** @test {Step} */
  4. describe("Step", () => {
  5. /** @test {Step#schema} */
  6. it("derives index, id and name from the subclass name; schema throws Not implemented", () => {
  7. class Step7Foo extends Step {}
  8. const s = new Step7Foo();
  9. expect(s.index).toBe(7);
  10. expect(s.id).toBe("step7");
  11. expect(s.name).toBe("Step 7 (Foo)");
  12. expect(() => s.schema()).toThrow(/Not implemented/);
  13. });
  14. });
  15. /** @test {Solvable} */
  16. describe("Solvable", () => {
  17. /** @test {Solvable#solve} */
  18. it("exposes an abstract solve method that throws when not overridden", () => {
  19. class Step9Bar extends Solvable(Step) {}
  20. expect(() => new Step9Bar().solve({}, () => {})).toThrow(/Not implemented/);
  21. });
  22. });