name: e2e-test-by-browser-use description: ブラウザ操作機能を使用してアプリケーションの基本的な機能をclineがテストできる。
e2e-test-by-browser-use
このスキルは、ワリカンさん(Split Bill Calculator on Nostr)のスタンドアロンモードの基本機能をブラウザ操作でE2Eテストするための手順を提供します。
Usage
スタンドアロンモードの割り勘計算機能が正しく動作することを確認したい場合に使用します。以下のシナリオをテストします:
- 複数メンバーの登録
- 複数の支出記録
- 精算結果の計算が正しいこと
- 通貨切り替え機能
- データのリセット機能
Prerequisites
- アプリケーションが
http://localhost:3000で起動していること - ブラウザ操作ツール(browser-use等)が利用可能であること
Important Notes
問題発生時の対応
テスト中に問題が発生した場合は、以下を実施してください:
スクリーンショットを取得する
- ブラウザの現在の状態を確認するため、スクリーンショットを保存
- 問題の原因を特定するのに役立ちます
コンソールログを確認する
- ブラウザのコンソールにエラーメッセージが表示されていないか確認
- エラーメッセージは問題の原因を特定する重要な手がかりです
期待される動作と実際の動作を比較する
- 各ステップの「検証ポイント」と実際の表示を照らし合わせる
- 差異がある場合は、その内容を記録する
Test Scenario
シナリオ概要
3人のメンバー(Alice、Bob、Carol)で旅行に行き、以下の支出を記録して精算する:
- Alice が宿泊費 30,000円を支払い
- Bob が食事代 9,000円を支払い
- Carol が交通費 6,000円を支払い
期待される精算結果:
- 合計金額: 45,000円
- 1人あたり: 15,000円
- 精算内容:
- Bob → Alice: 6,000円
- Carol → Alice: 9,000円
Steps
1. アプリケーションの起動
開発サーバーを起動します:
起動スクリプトを使用することができます(ポートチェックと依存関係インストールを自動化):
.cline/skills/e2e-test-by-browser-use/start-app.sh
注意: スクリプトを使用する場合は、バックグラウンドで実行するか、別のターミナルで実行してください。
開発サーバーが起動したら、ブラウザで http://localhost:3000 にアクセスし、アプリケーションが表示されることを確認します。
問題が発生した場合:
- スクリーンショットを取得して現在の状態を確認
- ブラウザのコンソールログをチェック
- ポートが既に使用されている場合は、実行中のプロセスを停止してください
2. スタンドアロンモードの選択
- ページ上部の「スタンドアロン」ボタンが選択されていることを確認
- 「ワリカンさん」というタイトルが表示されていることを確認
- 「グループでの支払いを簡単に精算」というサブタイトルが表示されていることを確認
3. メンバーの追加(3人)
3.1 Alice を追加
- 「メンバー」セクションの「メンバーを追加」ボタンをクリック
- 名前入力フィールドに「Alice」と入力
- 「追加」ボタンをクリック
- メンバーリストに「Alice」が表示されることを確認
3.2 Bob を追加
- 「メンバーを追加」ボタンをクリック
- 名前入力フィールドに「Bob」と入力
- 「追加」ボタンをクリック
- メンバーリストに「Bob」が表示されることを確認
3.3 Carol を追加
- 「メンバーを追加」ボタンをクリック
- 名前入力フィールドに「Carol」と入力
- 「追加」ボタンをクリック
- メンバーリストに「Carol」が表示されることを確認
検証ポイント:
- メンバーリストに3人(Alice、Bob、Carol)が表示されている
- 各メンバーの支払い合計が「¥0」と表示されている
4. 支出の記録(3件)
4.1 Alice の宿泊費を記録
- 「支出を追加」セクションで、支払者ドロップダウンから「Alice」を選択
- 金額フィールドに「30000」と入力
- メモフィールドに「宿泊費」と入力(オプション)
- 「追加」ボタンをクリック
- 支出リストに「Alice - ¥30,000 (宿泊費)」が表示されることを確認
4.2 Bob の食事代を記録
- 支払者ドロップダウンから「Bob」を選択
- 金額フィールドに「9000」と入力
- メモフィールドに「食事代」と入力(オプション)
- 「追加」ボタンをクリック
- 支出リストに「Bob - ¥9,000 (食事代)」が表示されることを確認
4.3 Carol の交通費を記録
- 支払者ドロップダウンから「Carol」を選択
- 金額フィールドに「6000」と入力
- メモフィールドに「交通費」と入力(オプション)
- 「追加」ボタンをクリック
- 支出リストに「Carol - ¥6,000 (交通費)」が表示されることを確認
検証ポイント:
- 支出リストに3件の支出が表示されている
- メンバーリストの各メンバーの支払い合計が更新されている
- Alice: ¥30,000
- Bob: ¥9,000
- Carol: ¥6,000
5. 精算結果の確認
5.1 合計金額と1人あたりの確認
- 「合計金額」が「¥45,000」と表示されていることを確認
- 「1人あたり」が「¥15,000」と表示されていることを確認
5.2 精算内容の確認
「精算」セクションで以下の精算内容が表示されていることを確認:
Bob → Alice: ¥6,000
- Bob が Alice に 6,000円 支払う
- 理由: Bob は 9,000円支払ったが、負担額は15,000円なので 6,000円不足
Carol → Alice: ¥9,000
- Carol が Alice に 9,000円 支払う
- 理由: Carol は 6,000円支払ったが、負担額は15,000円なので 9,000円不足
検証ポイント:
- 精算リストに2件の精算が表示されている
- 各精算の金額が正しい
- Alice は受け取る側(30,000円支払い、15,000円負担なので15,000円多く支払っている)
- Bob と Carol は支払う側
6. 通貨切り替え機能のテスト
6.1 USD に切り替え
- ページ下部の通貨切り替えボタン(「JPY」と表示)をクリック
- 「USD」を選択
- すべての金額表示が USD に変換されることを確認
- 合計金額、1人あたり、精算額がドル表示になる
- Bitcoin価格が表示されている場合、USD価格が表示される
6.2 JPY に戻す
- 通貨切り替えボタン(「USD」と表示)をクリック
- 「JPY」を選択
- すべての金額表示が JPY に戻ることを確認
検証ポイント:
- 通貨切り替えが正しく動作する
- 金額の計算結果は変わらない(表示形式のみ変更)
7. 精算の支払い済みマーク機能のテスト
- 精算リスト内の「Bob → Alice: ¥6,000」の行にあるチェックボックスをクリック
- その精算が「支払い済み」としてマークされることを確認(取り消し線やスタイル変更)
- もう一度チェックボックスをクリックして、マークが解除されることを確認
検証ポイント:
- 支払い済みマークのトグルが正しく動作する
- 視覚的なフィードバックがある
8. 支出の削除機能のテスト
- 支出リストの「Carol - ¥6,000 (交通費)」の削除ボタン(ゴミ箱アイコン)をクリック
- 支出が削除されることを確認
- 合計金額が「¥39,000」に更新されることを確認
- 1人あたりが「¥13,000」に更新されることを確認
- 精算内容が再計算されることを確認
検証ポイント:
- 支出の削除が正しく動作する
- 削除後、すべての計算結果が自動的に更新される
9. メンバーの削除機能のテスト
- メンバーリストの「Carol」の削除ボタン(×アイコン)をクリック
- Carol が削除されることを確認
- Carol の支出も削除されることを確認(既に削除済みの場合はスキップ)
- 精算結果が2人(Alice、Bob)で再計算されることを確認
検証ポイント:
- メンバーの削除が正しく動作する
- 削除されたメンバーの支出も自動的に削除される
- 残りのメンバーで精算が再計算される
10. データのリセット機能のテスト
- ページ下部の「すべてリセット」ボタンをクリック
- すべてのメンバーが削除されることを確認
- すべての支出が削除されることを確認
- 「まずメンバーを追加してください」というメッセージが表示されることを確認
検証ポイント:
- リセット機能が正しく動作する
- すべてのデータがクリアされる
- 初期状態に戻る
11. データの永続化テスト(SessionStorage)
- 上記の手順3〜4を再度実行して、メンバーと支出を追加
- ブラウザをリロード(F5キー)
- リロード後、メンバーと支出が保持されていることを確認
- 精算結果も正しく表示されることを確認
検証ポイント:
- SessionStorage によるデータ永続化が正しく動作する
- リロード後もデータが保持される
Expected Results Summary
すべてのステップが正常に完了した場合、以下が確認できます:
✅ メンバーの追加・削除が正しく動作する ✅ 支出の記録・削除が正しく動作する ✅ 精算結果の計算が正確である ✅ 通貨切り替え機能が動作する ✅ 支払い済みマーク機能が動作する ✅ データのリセット機能が動作する ✅ SessionStorage によるデータ永続化が動作する
Debugging Tips
スクリーンショットの活用
テスト中に問題が発生した場合、以下のタイミングでスクリーンショットを取得すると効果的です:
エラーが発生した直後
- エラーメッセージや異常な表示を記録
期待される結果と異なる場合
- 実際の表示内容を確認
各主要ステップの完了時
- 正常に動作していることを確認
コンソールログの確認
ブラウザの開発者ツールを開いて、以下を確認してください:
- エラーメッセージ: 赤色で表示されるエラー
- 警告メッセージ: 黄色で表示される警告
- ネットワークエラー: APIリクエストの失敗など
Notes
- このテストはスタンドアロンモードのみを対象としています
- 同期モード(Nostr統合)のテストは別途実施が必要です
- Lightning支払い機能のテストには、実際のNostr npub(Lightning Address付き)が必要です
- ブラウザの開発者ツールのコンソールでエラーが出ていないことも確認してください
start-app.shスクリプトが自動的にポート3000の使用状況を確認します
Troubleshooting
アプリケーションが起動しない場合
# 依存関係を再インストール
pnpm install
# キャッシュをクリア
rm -rf .next
# 再度起動
pnpm dev
データが保持されない場合
- ブラウザのSessionStorageが有効になっているか確認
- プライベートブラウジングモードでは動作が異なる場合があります
計算結果が期待と異なる場合
- 入力した金額が正しいか確認
- メンバー数が正しいか確認
- ブラウザのコンソールでエラーログを確認
Files
このスキルには以下のファイルが含まれています:
SKILL.md: このドキュメント(テスト手順)start-app.sh: アプリケーションを起動するスクリプト(ポートチェック、依存関係インストール、開発サーバー起動を自動化)
最終更新: 2026/2/1 バージョン: 1.3.1