Skip to content

v5.0.0

Choose a tag to compare

@jterrazz jterrazz released this 28 Mar 19:11
· 74 commits to main since this release
2ce6ac4

Breaking: vitest-native assertions

Result exposes raw values for vitest expect() instead of custom assertion methods.

// Values — vitest native
expect(result.exitCode).toBe(0)
expect(result.status).toBe(201)
expect(result.stdout).toContain("Build completed")
expect(result.stderr).not.toContain("error")

// Files — accessor with {exists, content}
expect(result.file("dist/index.js").exists).toBe(true)
expect(result.file("dist/index.js").content).toContain("Hello")

// Grep — block-based scoped matching
import { grep } from "@jterrazz/test"
expect(grep(result.stdout, "unused-var.ts")).toContain("no-unused-vars")

// Response + Tables — kept custom (disk/DB access)
result.response.toMatchFile("expected.json")
await result.table("users").toMatch({ columns, rows })

Migration from 4.x

  • result.exitCode.toBe(0)expect(result.exitCode).toBe(0)
  • result.stdout.toContain("x")expect(result.stdout).toContain("x")
  • result.file("p").toExist()expect(result.file("p").exists).toBe(true)
  • result.file("p").not.toExist()expect(result.file("p").exists).toBe(false)
  • result.file("p").toContain("x")expect(result.file("p").content).toContain("x")
  • Custom assertion engine removed (BaseAssertion, ValueAssertion, etc.)