← ALL TAGS

Tag: testing

7 articles tagged “testing” on Oak Oliver Engineering, newest first. The latest is “Getting Started with teatest in TypeScript: Test Your Terminal Apps, Keys, Waits and Golden Files”.

Runtime

Getting Started with teatest in TypeScript: Test Your Terminal Apps, Keys, Waits and Golden Files

A from-zero guide to @oakoliver/teatest, the TypeScript port of Charm's testing library for Bubble Tea. Run a program headless, press keys, wait for output, check the final model, compare the whole output with a golden file, take the clock out of a test, and use it from bun test, node:test or Vitest. Every program runs.

November 1, 2026 13 min read
Read Story →
Runtime

Porting Go's teatest to TypeScript: Golden-File Tests for Bubble Tea Programs

Charm's teatest runs a Bubble Tea program headless, sends it keys, waits for its output and compares everything it wrote with a golden file. It is now a TypeScript package that works with bun test, node:test and Vitest. 137 tests, escaping and diffs checked against real Go, and a failure message made to be read.

November 1, 2026 13 min read
Read Story →
Testing

Porting Go's ntcharts to TypeScript: Terminal Charts That Match Go to the Last Bit

NimbleMarkets' ntcharts, the charting library for Bubble Tea, is now a TypeScript package: canvas, bar, line, streaming, time series, wave, sparkline and heatmap charts, candlesticks and JSON chart specs. Its output is compared byte for byte with the Go library on 342 scenarios, which meant reproducing Go's fused multiply-add and its own math functions.

November 1, 2026 12 min read
Read Story →
Runtime

Finishing Rise: The TUI Framework That Said It Was Done, and the App That Proved It Wasn't

Rise is our Bun-native terminal UI framework: typed-array screen buffer, zero dependencies. Its reports said complete. The type checker had 71 errors, four widgets drew garbage behind tests that asserted true === true, and the App class gave every widget the same hard-coded 10×3 layout constraints. This is how we finished it, and Rise Studio, the six-screen app we built on it to prove it.

September 25, 2026 10 min read
Read Story →
Real-time

Porting Go-Rod to TypeScript: Browser Automation from Scratch

Go-rod — the DevTools Protocol automation library used by Charmbracelet for VHS — is being ported to TypeScript as a multi-package monorepo. Three packages complete: cdp-input (keyboard/mouse encoding), cdp (WebSocket client), and browser-launcher (process management). 107 tests, 179 expects. Zero dependencies.

March 21, 2026 7 min read
Read Story →
Testing

BDD Is Not Dead: How Gherkin Scenarios Turned My Micro-SaaS Test Suite Into a Living Contract

How Vibe uses Cucumber.js with Gherkin scenarios and Playwright to describe and execute full user journeys — create a vibe, purchase credits, approve payments — with tests that non-developers can read.

February 13, 2026 14 min read
Read Story →
Runtime

14 Test Files, Zero Flaky Tests: How I Test Every API Domain in Elysia.js Without Jest or Vitest

Why Bun's native test runner replaced my entire testing stack — and how 14 integration test files with real databases, mock modules, and Faker-powered factories give me the confidence to deploy solo.

February 12, 2026 10 min read
Read Story →