それぞれのアプリでは問題なく動作しても、いざ繋げると細かい所で意図通りに進まない事は良くあります。特にフロントとバックエンドを分けると、問題となるケースは増えそう。
単体テストはユニットテストで担保するとして、結合テスト(V字モデルでの基本設計を担保する部分)を挙動を確認しつつ書いてみました。DeviseとDevise Token Authで挙動が変わっている所がありますね。TODOにして対応して行きます。
独自に修正している所もありますので、参考までに。
アカウント登録
トップページ -> 未ログインの場合「アカウント登録」のリンクから遷移できる
- 未ログイン -> アカウント登録ページに遷移する
- ログイン中 -> 「既にログインしています。」が表示される
アカウント登録ページ
- 未登録のメールアドレス -> ログインページに遷移して「メールアドレス確認のメールを送信しました。メールを確認してください。」が表示される
- 登録済みメールアドレス -> 「既に使用されています。パスワードが不明な場合は[パスワード再設定]をしてください。」が表示される。「パスワード再設定」のリンクから遷移できる
ログイン・ログアウト
トップページ -> 未ログインの場合「ログイン」のリンクから遷移できる
- 未ログイン -> ログインページに遷移する
- ログイン中 -> 「既にログインしています。」が表示される
ログインページ
- 確認済みのメールアドレス -> トップページに遷移して「ログインしました。」が表示される
TODO: seedで特定の状態のテストユーザーを作成したい
TODO: ログイン中にアカウントやセッションを消した後に登録情報変更に遷移するとエラーになる - 未確認のメールアドレス -> 「メールアドレスの確認が必要です。メールが届いていない場合は[メールアドレス確認]をしてください。」が表示される。「メールアドレス確認」のリンクから遷移できる
- ロック直前のメールアドレス -> 「メールアドレスまたはパスワードが違います。」が表示される。「アカウントロック」のメールが送信される
TODO: ログインAPIで「注意:もう一回間違えるとアカウントがロックされます。」が表示されない
TODO: ログインAPIでアカウントロック時に送信されるメールの解除URLにリダイレクトURLが入っていない Nuxtの修正はこちら
TODO: 容易にアカウントロックされないように、入力を間違えたらボタンを押せないようにしたい - ロック中のメールアドレス -> 「アカウントがロックされています。メールが届いていない場合は[アカウントロック解除]をしてください。」が表示される。「アカウントロック解除」のリンクから遷移できる
- 変更中のメールアドレス -> 「メールアドレスまたはパスワードが違います。」が表示される
- 未登録のメールアドレス -> 「メールアドレスまたはパスワードが違います。」が表示される
トップページ -> ログイン中の場合「ログアウト」のリンクから遷移できる
・ログイン中 -> ログアウトページに遷移する
・未ログイン -> 「既にログアウトされています。」が表示される
ログアウトページ
・トップページ -> トップページに遷移する
・ログアウト -> ログインページに遷移して「ログアウトしました。」が表示される
登録情報変更
トップページ -> 未ログインの場合「登録情報変更」のリンクから遷移できる
- ログイン中(未変更) -> 登録情報変更ページに遷移する
- ログイン中(変更中・期限内) -> 登録情報変更ページに遷移する。確認待ちメールアドレスが表示される。「メールアドレス確認」のリンクから遷移できる
- ログイン中(変更中・期限切れ) -> 登録情報変更ページに遷移する。確認待ちメールアドレスが表示されない。「メールアドレス確認」のリンクが表示されない
- 未ログイン -> ログインページに遷移して「ログインしてください。」が表示される。ログイン後、登録情報変更ページに遷移する
登録情報変更ページ
- 画像アップロード -> 「画像を変更しました。」が表示される。表示されている画像がアップロードした画像に変わる
- 画像削除(確認:いいえ) -> 画像が変更されない
- 画像削除(確認:はい) -> 「画像を削除しました。」が表示される。表示されている画像がno imageに変わる
- 氏名変更 -> トップページに遷移して「登録情報を変更しました。」が表示される。ヘッダに表示されている氏名が変更される
- メールアドレス変更(未変更) -> トップページに遷移して「登録情報の変更を受け付けました。メールを確認してください。」が表示される。「メールアドレス変更受け付け」と「メールアドレス確認」のメールが送信される
TODO: 登録情報変更APIでメールアドレス変更時に送信されるメールの確認URLにリダイレクトURLが入らない Nuxtの修正はこちら - メールアドレス変更(変更中・期限内) -> トップページに遷移して「登録情報の変更を受け付けました。メールを確認してください。」が表示される。「メールアドレス変更受け付け」と「メールアドレス確認」のメールが送信される
- メールアドレス変更(変更中・期限切れ) -> トップページに遷移して「登録情報の変更を受け付けました。メールを確認してください。」が表示される。「メールアドレス変更受け付け」と「メールアドレス確認」のメールが送信される
- パスワード変更(メールアドレス変更中) -> 確認待ちメールアドレスが表示される。トップページに遷移して「登録情報の変更を受け付けました。メールを確認してください。」が表示される。「パスワード変更完了」のメールが送信される
- パスワード変更(メールアドレス未変更) -> トップページに遷移して「登録情報を変更しました。」が表示される。「パスワード変更完了」のメールが送信される
- メールアドレスとパスワード変更 -> 確認待ちメールアドレスが表示される。トップページに遷移して「登録情報の変更を受け付けました。メールを確認してください。」が表示される。「メールアドレス変更受け付け」と「パスワード変更完了」と「メールアドレス確認」のメールが送信される
メールアドレス確認
※変更前のメールアドレスを入力して、変更後のメールアドレスに送信される
トップページ -> 未ログインの場合、ログインとアカウント登録ページの「メールアドレス確認」のリンクから遷移できる
- 未ログイン -> メールアドレス確認ページに遷移する
- ログイン中 -> メールアドレス確認ページに遷移する
メールアドレス確認
- 未確認のメールアドレス -> 「メールアドレスの確認メールを送信しました。メールを確認してください。」が表示される。「メールアドレス確認」のメールが送信される
TODO: メールアドレス確認APIで送信されるメールの確認URLにリダイレクトURLが入っていない Nuxtの修正はこちら
TODO: メールアドレス未確認のアカウントを一定期間経過後に削除したい - 確認済みのメールアドレス -> 「メールアドレス確認済みです。」が表示される
- 未登録のメールアドレス -> 「入力内容を確認してください。」「ユーザーが見つかりません。」が表示される
メールのURL
- 期限内のURL(未ログイン) -> ログインページに遷移して「メールアドレスの確認が完了しました。ログインしてください。」が表示される
TODO: メールアドレス確認完了とアカウントロック解除完了で未ログインの場合はメッセージに「ログインしてください。」を追加したい - 期限内のURL(ログイン中) -> トップページに遷移して「メールアドレスの確認が完了しました。」が表示される
- 確認済みのURL(未ログイン/ログイン中) ->
メールアドレス確認ページログインページ(ログイン中はトップページ)に遷移して「メールアドレス確認済みです。」が表示される
TODO: メールアドレス確認APIで確認済みの場合はaccount_confirmation_success=trueを返して欲しい(フロントでログインページ(ログイン中はトップページ)に遷移させる為) - 期限切れのURL(未ログイン/ログイン中) -> メールアドレス確認ページに遷移して「URLが正しくないか、有効期限が切れています。最初からやり直してください。」が表示される
パスワード再設定
トップページ -> 未ログインの場合、ログインとアカウント登録ページの「パスワード再設定」のリンクから遷移できる
- 未ログイン -> パスワード再設定(メールアドレス入力)ページに遷移する
- ・ログイン中 -> 「既にログインしています。」が表示される
パスワード再設定(メールアドレス入力)
- 確認済みのメールアドレス -> ログインページに遷移して「パスワード再設定のメールを送信しました。メールを確認してください。」が表示される
- 未確認のメールアドレス -> ログインページに遷移して「パスワード再設定のメールを送信しました。メールを確認してください。」が表示される
- 変更中のメールアドレス -> ログインページに遷移して「パスワード再設定のメールを送信しました。メールを確認してください。」が表示される
- ロック中のメールアドレス -> ログインページに遷移して「パスワード再設定のメールを送信しました。メールを確認してください。」が表示される
- 未登録のメールアドレス -> 「入力内容を確認してください。」「ユーザーが見つかりません。」が表示される
メールのURL
- 未ログイン -> パスワード再設定(パスワード入力)ページに遷移する
- ログイン中 -> 「既にログインしています。」が表示される
パスワード再設定(パスワード入力)
- 確認済みのメールアドレス -> トップページに遷移し「パスワードを変更しました。」が表示される。ログイン状態になる。「パスワード変更完了」のメールが送信される
TODO: リロードすると未ログインに戻る(APIアクセスなし。ローカルストレージにaccess-token等の情報は残っている。storeに保存されていない?) - 未確認のメールアドレス -> トップページに遷移し「パスワードを変更しました。」が表示される。ログイン状態になる。「パスワード変更完了」のメールが送信される。確認済みに変更される(ログインできる)
- 変更中のメールアドレス -> トップページに遷移し「パスワードを変更しました。」と「メールアドレスの確認が必要です。メールが届いていない場合は[メールアドレス確認]をしてください。」が表示される。ログイン状態になる。「パスワード変更完了」のメールが送信される
- ロック中のメールアドレス -> トップページに遷移し「パスワードを変更しました。」が表示される。ログイン状態になる。「パスワード変更完了」のメールが送信される
TODO: パスワード再設定APIで成功しロック中の場合はロックを解除したい(ロック中のままログイン状態になる為。APIでない方は解除されるのでOK) - 変更済みのURL -> パスワード再設定に遷移し「URLが正しく
ありませんないか、有効期限が切れていますありません。最初からやり直してください。」が表示される
TODO: パスワード再設定で期限切れのURLの場合のメッセージに有効期限切れの文言が入っていない - 期限切れのURL -> パスワード再設定に遷移し「URLが正しく
ありませんないか、有効期限が切れています。最初からやり直してください。」が表示される
アカウントロック解除
トップページ -> 未ログインの場合、ログインとアカウント登録ページの「アカウントロック解除」のリンクから遷移できる
- 未ログイン -> アカウントロック解除ページに遷移する
- ログイン中 -> 「既にログインしています。」が表示される
アカウントロック解除
- ロック中のメールアドレス -> ログインページに遷移して「メールアドレスの確認メールを送信しました。メールを確認してください。」が表示される。「アカウントロック」のメールが送信される
- 未ロックのメールアドレス -> 「ロックされていません。」が表示される
- 未登録のメールアドレス -> 「入力内容を確認してください。」「ユーザーが見つかりません。」が表示される
メールのURL
- 期限内のURL(未ログイン) -> ログインページに遷移して「アカウントロックを解除しました。ログインしてください。」が表示される
- 期限内のURL(ログイン中) -> トップページに遷移して「アカウントロックを解除しました。」が表示される
- 解除済みURL(未ログイン) -> ログインページに遷移して「URLが正しくないか、解除されています。ログインできるか確認してください。」が表示される
- 解除済みURL(ログイン中) -> トップページに遷移して「URLが正しくないか、解除されています。ログインできるか確認してください。」が表示される
- 期限切れのURL(未ログイン) -> ログインページに遷移して「アカウントロックを解除しました。」が表示される
TODO: アカウントロック解除APIで期限切れのURLでも解除される -> 解除されても良さそう - 期限切れのURL(ログイン中) -> トップページに遷移して「アカウントロックを解除しました。」が表示される
アカウント削除・取り消し
トップページ -> ログイン中の場合、登録情報変更ページの「アカウント削除」のリンクから遷移できる
- ログイン中(未削除) -> アカウント削除ページに遷移する
- ログイン中(削除済み) -> 「アカウント削除予定の為、この操作はできません。」が表示される
- 未ログイン -> ログインページに遷移して「ログインしてください。」が表示される。ログイン後、アカウント削除ページに遷移する
アカウント削除
- 削除(確認:いいえ) -> 確認画面が消える
- 削除(確認:はい) -> ログインページに遷移して「アカウント削除を受け付けました。またのご利用をお待ちしております。」が表示される。「アカウント削除受け付け」のメールが送信される
TODO: アカウント削除APIで送信されるメールの取り消しURLにフロントURLを入れたい Nuxtの修正はこちら
ログイン
- 削除済みのメールアドレス -> トップページに遷移して「ログインしました。」が表示される。「このアカウントは(7日頃の日付)以降に削除されます。 取り消しはこちら」が表示される
- ログイン中(削除済み) -> アカウント削除取り消しページに遷移する
- ログイン中(未削除) -> 「既に取り消し済みか、アカウント削除していません。」が表示される
- 未ログイン -> ログインページに遷移して「ログインしてください。」が表示される。ログイン後、アカウント削除ページに遷移する
- 取り消し(確認:いいえ) -> 確認画面が消える
- 取り消し(確認:はい) -> ログインページに遷移して「アカウント削除の取り消しが完了しました。」が表示される。「アカウント削除取り消し完了」のメールが送信される
トップページ -> ログイン中の場合「取り消しはこちら」のリンクから遷移できる
アカウント削除取り消し
“NuxtとRailsアプリ(Devise Token Auth)の結合テストをする” に対して1件のコメントがあります。