自動テスト・品質保証全般に関する記事。E2Eテスト、単体テスト、テストカバレッジ、ベストプラクティスなど、品質の高いソフトウェア開発を支える技術を紹介します。
ローカルE2Eを65s→15-18sに短縮した話:Supabase migrationの環境差吸収とハッシュキャッシュ
Supabase CLIのバンドルDockerと本番の storage.prefixes 差でマイグレーションが壊れた問題を to_regclass() で吸収し、さらに マイグレーションハッシュキャッシュ + DBリセットとauthモックの並列化で npm run e2e を 65s → 15-18s(-72%)に短縮した実装記録。
feat(feature-flags): 機能フラグと PostHog 計測基盤を追加
Cloudflare Workers と D1(SQLite)を組み合わせた、deploy 不要の機能フラグ基盤の構築事例です。FNV-1a ハッシュで variant を決定的に割り当て、PostHog は露出イベント記録のみに特化した設計を採用。外部障害耐性・SSR 対応・E2E テストのモック不要を同時に実現する方法を解説します。
「npm run e2e」一発で完結するローカル E2E 環境を構築する
npm run e2e 一発でローカルE2E環境を完結させる構築方法を解説します。Cloudflare Workers + Supabase + Playwright構成で、Auth認証モック・環境ファイルの安全なクリーンアップ・状態解決フォールバックを自己完結スクリプトにまとめる実装パターンです。
複数イベントが同時発火する通知/マイルストーンを優先度+排他で統合する設計
学習アプリやSaaSで複数の通知・マイルストーンが同時発火するケースに対し、優先度ソート・排他ルール・上限件数の3軸で統合する設計パターンを解説します。TypeScript実装例とPlaywrightでのrace-free E2Eテスト手法、prefers-reduced-motion対応まで網羅。
「not a constructor」エラー解決 - Vitestでクラスベースライブラリをモックする方法
Vitestで「not a constructor」エラーが出た時の解決方法を解説。JSZipなどクラスベースライブラリを`new`キーワードで正しくモックする方法をコード例と共に紹介。テストが失敗する原因と修正方法がわかります。
Playwright toHaveScreenshotの.png拡張子問題を解決
PlaywrightでVRT導入時に遭遇する`toHaveScreenshot`のエラー原因と解決方法を解説。`.png`拡張子の指定方法や`snapshotPathTemplate`の設定例を紹介します。
Vitest fake timersとReact Testing Library waitForの相性問題と解決策
Vitestでfake timers使用時、waitForがタイムアウトする問題の解決方法を解説。モック関数の正しい設定、スプレッド演算子の注意点など実践的な解決策を具体例と共に紹介。同じ問題で躓いている開発者必見のトラブルシューティングガイドです。







