← ソースコード説明書

tests/ - E2E テスト

概要

Playwright による E2E テスト群。48 テストファイル (約 9,500 行) で、エディタ、認証、プレビュー、バトル、タイムライン、アセット管理、ゲストモード、管理画面をカバーする。ローカル環境と Azure 環境の両方に対応。

ディレクトリ構成

tests/
├── fixtures/
│   └── urls.ts                     # 環境別 URL 定義 (URLS.NEXT, URLS.EDITOR, URLS.API, URLS.PREVIEW)
├── *.spec.ts                       # 48 テストファイル
e2e/
└── ksc-demo.spec.ts                # KSC デモ包括テスト (4,396行)

Playwright 設定ファイル

ファイルテスト対象baseURL用途
playwright.config.tse2e/localhost:5175KSC デモテスト
playwright.local.config.tstests/localhost:3000ローカル E2E
playwright.azure.config.tstests/Azure Next.js URLAzure E2E
playwright.azure-auth.config.tstests/Azure Next.js URLAzure 認証テスト
playwright.demo.config.tsデモモード
playwright.check.config.tsUI 検証

テスト一覧

認証テスト (3 ファイル)

ファイル行数内容
auth-flow.spec.ts105ログイン/ログアウトフロー
auth-redirect.spec.ts396OAuth フロー、リダイレクトチェーン、セッション持続
local-auth.spec.ts167ローカル dev server 認証

エディタテスト (8 ファイル)

ファイル行数内容
editor-blocks.spec.ts117ブロック CRUD
editor-mobile.spec.ts256モバイルビューポート (375x667)
asset-selection.spec.ts166キャラクター/背景選択モーダル
asset-management.spec.ts307キャラクター/BG 管理、ファンタジーアセット
comprehensive-nav.spec.ts125サイドバー、パンくずナビゲーション
ks-editor-sync.spec.ts248KS スクリプト ↔ ビジュアルエディタ双方向同期
ksc-block.spec.ts213KSC ブロックエディタ
screen-filter-block.spec.ts97スクリーンフィルターエフェクト

タイムラインテスト (5 ファイル)

ファイル行数内容
timeline-block.spec.ts333タイムラインブロック追加/削除/移動
timeline-block-real.spec.ts230実 API 接続タイムライン
timeline-panel.spec.ts225タイムラインパネル UI (再生/一時停止/シーク)
timeline-props-seek.spec.ts365プロパティ補間、キーフレームシーク
tl-kf-diamond.spec.ts277キーフレームドラッグ&ドロップ

バトルテスト (2 ファイル)

ファイル行数内容
battle-block.spec.ts212バトルブロックエディタ
battle-play.spec.ts186バトルシーン再生

ゲストモードテスト (6 ファイル)

ファイル行数内容
guest-fantasy-assets.spec.ts280ゲスト + ファンタジーアセット
guest-restore-priority.spec.ts215ゲストデータ復元優先順位
guest-direct-url.spec.tsダイレクト URL アクセス
guest-session.spec.tsセッション管理
guest-multi-session.spec.tsマルチセッション
guest-upgrade.spec.tsゲスト → 登録アップグレード

管理画面テスト (2 ファイル)

ファイル行数内容
admin-panel.spec.ts352公式アセット管理 CRUD、インポート
admin-official-assets.spec.ts271公式アセットカタログ

Azure テスト (4 ファイル)

ファイル行数内容
azure-full-flow.spec.ts891全フロー: サインアップ→ログイン→エディタ→プレビュー (serial)
azure-create-and-play.spec.ts435API 駆動プロジェクト作成、プレビュー検証
azure-ks-editor.spec.ts123Azure 上の KSC エディタ
check-azure-editor.spec.ts133Editor SPA fallback, CORS チェック

KSC エディタテスト (2 ファイル)

ファイル行数内容
ksc-editor.spec.ts217Monaco エディタ、ファイルツリー、プレビュー
ksc-inline-commands.spec.ts314インラインコマンド解析 (@l, @c, @r, @lc)

その他テスト

ファイル行数内容
full-flow.spec.ts75基本スモークテスト
mypage.spec.ts91マイプロジェクト一覧
ovl-preview.spec.ts136オーバーレイレンダリング
test-import.spec.ts87モジュールインポート検証
docs-verify.spec.ts68ドキュメントリンク有効性
verify-cookie.spec.ts35セッション/認証クッキー
visual-logic-verify.spec.ts25スクリーンショット比較スタブ
admin-official-assets-check.spec.ts85公式アセット API ヘルスチェック

KSC デモ包括テスト (e2e/)

ファイル行数内容
ksc-demo.spec.ts4,396KSC デモ全機能テスト: 背景、キャラ、選択肢、変数、デバッグモード

共通パターン

URL 定義

import { URLS } from './fixtures/urls';
// URLS.NEXT    = http://localhost:3000
// URLS.EDITOR  = http://localhost:5176
// URLS.API     = http://localhost:8080
// URLS.PREVIEW = http://localhost:5175

ログインヘルパー

async function login(page: Page) {
  const res = await page.request.post(`${URLS.API}/api/auth/login`, {
    data: { email: 'user@example.com', password: '********' },
  });
  const { token, user } = await res.json();
  await page.addInitScript(({ token, userId }) => {
    localStorage.setItem('authToken', token);
    localStorage.setItem('currentUserId', userId);
  }, { token, userId: user.id });
  return { token, userId: user.id };
}

スクリーンショットヘルパー

const SS_DIR = path.join('screenshots', 'YYYY-MM-DD-テスト名');
function ss(filename: string): string {
  if (!fs.existsSync(SS_DIR)) fs.mkdirSync(SS_DIR, { recursive: true });
  return path.join(SS_DIR, filename);
}

テストルール

  • expect で期待する状態を 1 つだけ明示する
  • ifexpect をスキップしない
  • waitForTimeout でごまかさない(正しいセレクタ/条件を待つ)
  • 失敗したら原因を調査してコードを修正する

テスト実行

# ローカル E2E
npx playwright test tests/editor-blocks.spec.ts

# Azure E2E
npx playwright test --config=playwright.azure.config.ts

# Azure 認証テスト
npx playwright test --config=playwright.azure-auth.config.ts

# KSC デモテスト
npx playwright test e2e/ksc-demo.spec.ts

テスト結果 (2026-03-05 安定確認済み)

Phaseテスト数所要時間
E2E (Azure full-flow)55~2分
Auth (Azure)34~55秒
KSC Demo (e2e/)多数~3分
合計100+~6分
Ad: stickyBottom (728x90)
kaedevn - ノベルゲームを作れるプラットフォーム