feat: TOTP/HOTP 検証モードに Cmd/Ctrl+Enter ショートカットを追加 - #423
Conversation
設定ファイル相互変換 (ConfigConverter) と同じパターンで、検証コード入力欄に キーボードショートカットを追加。マウスへの持ち替えなく検証を発火できる。 - `verify-code-input` の `onKeyDown` で `(Meta|Control) + Enter` を検出 - `isComposing` 中は IME 確定 Enter を誤検知しないため skip - disabled 条件と同 guard(input 空 / verifying 中 / secret 無効) - 「検証する」ボタンに `aria-keyshortcuts="Meta+Enter Control+Enter"` を付与 - E2E: 発火する陰性対照 + 空入力では発火しない陽性対照を併設 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
🖼️ Visual Regression Test 結果
|
レビュー — 多角的評価
✅ 良い点
🟡 改善提案1.
|
PR #423 レビュー指摘を本 PR で巻き取り。 - 指摘 1: ConfigConverter と同じ `<kbd>Cmd/Ctrl+Enter</kbd>` 可視ヒントを 「検証する」ボタンの隣に追加(aria-keyshortcuts と視覚ユーザー向け開示が揃う) - 指摘 2: 陽性対照 E2E の `toHaveCount(0)` 即時評価による false negative リスクを `waitForTimeout(300)` で堅牢化 - 指摘 3: `e.preventDefault()` を guard より前に移動(将来 <form> 化時の silent regression 防止) Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
レビューありがとうございます。指摘 1〜3 を本 PR で巻き取りました(commit 26693a5)。
動作確認
|
再レビュー(commit 26693a5)3 つの指摘の対応を確認しました。
追加観点(差分の二次的な質)
結論LGTM。指摘事項は全件解消、新規の懸念なし。e2e の green を待って approve / merge して問題ない状態です。 |
…rd 前に移動 (#446) * refactor(config-converter): Cmd/Ctrl+Enter ハンドラの preventDefault を guard 前に移動 将来 <form> で包まれた場合に「未入力 Cmd+Enter で form submit に流れる」 silent regression を予防 (PR #423 の TOTP 側と同様のパターン)。 陽性対照 E2E として、スキーマ未入力時に Cmd/Ctrl+Enter を押下しても 検証が発火しないことを assert (guard が効くことを確認)。 Closes #424 * test(config-converter): waitForTimeout を toHaveCount の timeout 統合に置換 レビュー指摘対応: 固定 300ms wait + 2 件の toHaveCount を regex で統合した toHaveCount({ timeout: 500 }) に置換し、 Playwright auto-wait に統一。assert セマンティクス (guard 陽性対照) は 保持: guard 削除時に検証結果メッセージが現れ test fail する。 --------- Co-authored-by: Claude <noreply@anthropic.com>
概要
TOTP/HOTP ジェネレータの検証モードで、検証コード入力中に Cmd/Ctrl + Enter で「検証する」ボタンを発火できるようにします。
設定ファイル相互変換 (
ConfigConverter.tsx:233-240) と同じパターンで実装。変更
verify-code-inputのInputFieldにonKeyDownを追加e.nativeEvent.isComposing中は IME 確定 Enter を誤検知しないため skipdisabledと同条件 guard(input 空 / verifying 中 / secret 無効)ActionButtonにaria-keyshortcuts="Meta+Enter Control+Enter"を付与テスト
node_modules/.bin/astro check— 0 errorsnpm run test:e2e --grep TOTP— 12 passed (元 10 + 新 2)🤖 Generated with Claude Code