Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

「読みました」のチェックボックスを埋めたら「休会する」ボタンを押せるようにした #5461

Merged
merged 14 commits into from
Oct 17, 2022

Conversation

machida
Copy link
Member

@machida machida commented Aug 31, 2022

Issue

概要

休会フォームに休会についての注意を「読みました」のチェックボックスを追加しました。

変更確認方法

  1. ブランチfeature/comeback_checkをローカルに取り込む
  2. rails sでローカル環境を立ち上げる
  3. でログイン
  4. http://localhost:3000/hibernation/newにアクセス
  5. devツールの「要素」タブを開く
  6. devツールの一番左上にある、要素が選択できるようになるマーク(下記のアイコン)をクリックする
    image
  7. 「休会する」ボタンの上にカーソルを持っていき、要素を特定する
    (マシンによるかもしれませんが、私のmacの場合はescキー押下で要素選択モードが解除できるようになりました)
  8. チェックが入っていない状態のときはa-button is-md is-block js-hibernation-agreements-submit is-disabledとなっていることを確認する。
    image
  9. チェックが入っている状態のときはa-button is-md is-block js-hibernation-agreements-submit is-danger となっていることを確認する。
    image

変更前

image

変更後

チェックボックス「読みました」のチェックボックスを追加。

チェックが入っていない時

image

チェックが入っている時

image

注意点

本PRでmachidaさんと話しているのですが、「読みました」のチェックボックスを押し、「休会する」を押すと下記画像のようにエラーが発生してしまいます。
こちらは把握済みでして、別issueで対応することとなりましたのでご放念いただければと思います。
image

@machida
Copy link
Member Author

machida commented Sep 21, 2022

@AyakaTakashima

リポジトリの更新をしたので、

git pull --rebase origin feature/comeback

をお願いしますー

@AyakaTakashima
Copy link
Contributor

AyakaTakashima commented Sep 21, 2022

リポジトリの更新をしたので、

git pull --rebase origin feature/comeback

をお願いしますー

@machida
上記対応いたしました!一点質問で、git pull --rebase origin feature/comebackを行う前に、mainで

(mainブランチ)
> git pull origin main
> bin/setup

をやってから、feature/comebackブランチで

(feature/comebackブランチ)
> git pull --rebase origin main

をやった後にgit pull --rebase origin feature/comebackをした方がいいかなと思い、やったのですが、大丈夫でしょうか?

最初、このようにコンフリクトが発生してしまい、

(feature/comeback_checkブランチ)
> git pull --rebase origin main
From github.com:fjordllc/bootcamp
 * branch                main       -> FETCH_HEAD
Auto-merging app/models/user.rb
CONFLICT (content): Merge conflict in app/models/user.rb
Auto-merging db/schema.rb
error: could not apply 2fce9afd3... 休会からの復帰機能を追加
hint: Resolve all conflicts manually, mark them as resolved with
hint: "git add/rm <conflicted_files>", then run "git rebase --continue".
hint: You can instead skip this commit: run "git rebase --skip".
hint: To abort and get back to the state before "git rebase", run "git rebase --abort".
Could not apply 2fce9afd3... 休会からの復帰機能を追加

git reflogとgit reset --hard で下記のように対処しました。

!HEAD)
> git reflog
848c3d85a (HEAD, origin/main, origin/HEAD, main) HEAD@{0}: pull --rebase origin main (start): checkout 848c3d85a5acba93571d53f0e1e8f69a78f37587
d0ab4d5e0 (origin/feature/comeback_check, feature/comeback_check) HEAD@{1}: checkout: moving from main to feature/comeback_check
848c3d85a (HEAD, origin/main, origin/HEAD, main) HEAD@{2}: pull origin main: Fast-forward
7b5a8a06a HEAD@{3}: checkout: moving from feature/comeback_check to main
d0ab4d5e0 (origin/feature/comeback_check, feature/comeback_check) HEAD@{4}: commit: 空白行を削除
9b733ec10 HEAD@{5}: pull --rebase origin main (finish): returning to refs/heads/feature/comeback_check
9b733ec10 HEAD@{6}: pull --rebase origin main (pick): 休会フォームの注意を「読みました」のチェックボックスとボタンが連動するようにした
ec1ae9e65 HEAD@{7}: pull --rebase origin main (pick): 休会チェックボックスのデザイン
9d484864e HEAD@{8}: pull --rebase origin main (pick): lint修正
bb15cb627 HEAD@{9}: pull --rebase origin main (pick): システムテストの不要なスペースの削除とaccept_confirmの使用
8f67855b8 HEAD@{10}: pull --rebase origin main (pick): discord通知のテストを追加
dab433d40 HEAD@{11}: pull --rebase origin main (pick): activity_notifierの非同期通知のテストを修正
5152fe1cd HEAD@{12}: pull --rebase origin main (pick): DiscordNotifierをNotificationFacadeのhibernatedから分離
ad30f0d1f HEAD@{13}: pull --rebase origin main (pick): 研修生とアドバイザーのテストシナリオを追加
082af13be HEAD@{14}: pull --rebase origin main (pick): テスト修正
875ce13fc HEAD@{15}: pull --rebase origin main (pick): テスト追加
1330b5bb1 HEAD@{16}: pull --rebase origin main (pick): ユーザーが休会した時にメンターと管理者にサイト内通知とメール通知が行くようにした
2f29308e9 HEAD@{17}: pull --rebase origin main (pick): エラーメッセージの文言が変わっていたのを修正
31779cc90 HEAD@{18}: pull --rebase origin main (pick): 休会に分報チャンネルの注意書きを追加
6c7e65ef2 HEAD@{19}: pull --rebase origin main (pick): 二回サブミットするとエラーが出る問題を修正
060753b20 HEAD@{20}: pull --rebase origin main (pick): :cop:
de40dc704 HEAD@{21}: pull --rebase origin main (pick): ユーザー個別ページの休会情報のデザイン調整
97f602404 HEAD@{22}: pull --rebase origin main (pick): 休会からの復帰のリンクをトップページに配置、復帰関係の全体的な文言とデザインの微調整

↓誤ってブランチに切り替える時に使ったコマンドをresetしてしまいました

!HEAD)
> git reset --hard HEAD@{1}
HEAD is now at d0ab4d5e0 空白行を削除

(HEAD)
> git reflog
d0ab4d5e0 (HEAD, origin/feature/comeback_check, feature/comeback_check) HEAD@{0}: reset: moving to HEAD@{1}
848c3d85a (origin/main, origin/HEAD, main) HEAD@{1}: pull --rebase origin main (start): checkout 848c3d85a5acba93571d53f0e1e8f69a78f37587
d0ab4d5e0 (HEAD, origin/feature/comeback_check, feature/comeback_check) HEAD@{2}: checkout: moving from main to feature/comeback_check
848c3d85a (origin/main, origin/HEAD, main) HEAD@{3}: pull origin main: Fast-forward
7b5a8a06a HEAD@{4}: checkout: moving from feature/comeback_check to main
d0ab4d5e0 (HEAD, origin/feature/comeback_check, feature/comeback_check) HEAD@{5}: commit: 空白行を削除
9b733ec10 HEAD@{6}: pull --rebase origin main (finish): returning to refs/heads/feature/comeback_check
9b733ec10 HEAD@{7}: pull --rebase origin main (pick): 休会フォームの注意を「読みました」のチェックボックスとボタンが連動するようにした
ec1ae9e65 HEAD@{8}: pull --rebase origin main (pick): 休会チェックボックスのデザイン
9d484864e HEAD@{9}: pull --rebase origin main (pick): lint修正
bb15cb627 HEAD@{10}: pull --rebase origin main (pick): システムテストの不要なスペースの削除とaccept_confirmの使用
8f67855b8 HEAD@{11}: pull --rebase origin main (pick): discord通知のテストを追加
dab433d40 HEAD@{12}: pull --rebase origin main (pick): activity_notifierの非同期通知のテストを修正
5152fe1cd HEAD@{13}: pull --rebase origin main (pick): DiscordNotifierをNotificationFacadeのhibernatedから分離
ad30f0d1f HEAD@{14}: pull --rebase origin main (pick): 研修生とアドバイザーのテストシナリオを追加
082af13be HEAD@{15}: pull --rebase origin main (pick): テスト修正
875ce13fc HEAD@{16}: pull --rebase origin main (pick): テスト追加
1330b5bb1 HEAD@{17}: pull --rebase origin main (pick): ユーザーが休会した時にメンターと管理者にサイト内通知とメール通知が行くようにした
2f29308e9 HEAD@{18}: pull --rebase origin main (pick): エラーメッセージの文言が変わっていたのを修正
31779cc90 HEAD@{19}: pull --rebase origin main (pick): 休会に分報チャンネルの注意書きを追加
6c7e65ef2 HEAD@{20}: pull --rebase origin main (pick): 二回サブミットするとエラーが出る問題を修正
060753b20 HEAD@{21}: pull --rebase origin main (pick): :cop:
de40dc704 HEAD@{22}: pull --rebase origin main (pick): ユーザー個別ページの休会情報のデザイン調整

↓ブランチを切り替えるコマンドをresetしたことに気づかず、ここで、HEAD@{1}: pull --rebase origin mainをresetしました

(HEAD)
> git reset --hard HEAD@{1}
HEAD is now at 848c3d85a Merge pull request #5479 from fjordllc/feature/adjust-user-practice-progress-to-vue-mounter

↓git pull --rebase origin feature/comebackを実行

(HEAD)
> git pull --rebase origin feature/comeback
remote: Enumerating objects: 243, done.
remote: Counting objects: 100% (243/243), done.
remote: Compressing objects: 100% (68/68), done.
remote: Total 178 (delta 140), reused 140 (delta 106), pack-reused 0
Receiving objects: 100% (178/178), 24.28 KiB | 195.00 KiB/s, done.
Resolving deltas: 100% (140/140), completed with 59 local objects.
From github.com:fjordllc/bootcamp
 * branch                feature/comeback -> FETCH_HEAD
 + 4b2e1c3bd...4761d1230 feature/comeback -> origin/feature/comeback  (forced update)
Updating 848c3d85a..4761d1230
Fast-forward
 app/assets/stylesheets/application/blocks/auth-form/_auth-form.sass  | 12 +++++++----
 app/assets/stylesheets/application/blocks/form/_form-item.sass       |  3 +--
 app/assets/stylesheets/application/blocks/form/_form-link-block.sass |  4 ++++
 app/assets/stylesheets/application/blocks/form/_form-notice.sass     |  7 ++++---
 app/assets/stylesheets/application/blocks/user/_user-metas.sass      | 12 ++++++++++-
 app/assets/stylesheets/atoms/_a-short-text.sass                      |  2 ++
 app/controllers/comeback_controller.rb                               | 25 +++++++++++++++++++++++
 app/controllers/hibernation_controller.rb                            | 12 +++++++++--
 app/controllers/user_sessions_controller.rb                          | 16 ++++++++-------
 app/models/notification_facade.rb                                    |  1 -
 app/models/subscription.rb                                           |  4 ++--
 app/models/user.rb                                                   | 22 +++++++++++++++++++++
 app/views/application/_flash.html.slim                               |  2 +-
 app/views/application/_user_menu.html.slim                           | 16 +++++++++++----
 app/views/application/header/_header_links.html.slim                 | 23 +++++++++++----------
 app/views/comeback/_forget_password_form.html.slim                   |  9 +++++++++
 app/views/comeback/_forgot_password_modal.slim                       |  9 +++++++++
 app/views/comeback/_form.html.slim                                   | 16 +++++++++++++++
 app/views/comeback/new.html.slim                                     | 30 ++++++++++++++++++++++++++++
 app/views/hibernation/_message.html.slim                             | 30 ++++++++++++++++++++++++++++
 app/views/hibernation/new.html.slim                                  | 67 +++++++++++++++++++++++++++++++-------------------------------
 app/views/hibernation/show.html.slim                                 |  2 +-
 app/views/retirement/new.html.slim                                   | 16 ---------------
 app/views/static_pages/retire.html.slim                              | 15 --------------
 app/views/user_sessions/new.html.slim                                |  2 +-
 app/views/users/_hibernation_info.html.slim                          | 22 ++++++++++-----------
 app/views/users/_user_secret_attributes.html.slim                    |  4 +++-
 app/views/users/form/_sns.html.slim                                  |  8 ++++----
 app/views/welcome/_welcome_footer.html.slim                          |  3 +++
 app/views/welcome/_welcome_header.html.slim                          |  4 ++--
 config/locales/ja.yml                                                |  2 +-
 config/routes.rb                                                     |  2 +-
 db/fixtures/users.yml                                                |  6 ++++--
 db/schema.rb                                                         | 53 +++++++++++++++++++++++++++----------------------
 test/fixtures/hibernations.yml                                       |  5 +++++
 test/fixtures/talks.yml                                              |  4 ++++
 test/fixtures/users.yml                                              |  4 ++--
 test/mailers/notification_mailer_test.rb                             | 28 ++++++++++++++++++++++++++
 test/notifiers/activity_notifier_test.rb                             | 12 +++++++++++
 test/notifiers/discord_notifier_test.rb                              | 25 +++++++++++++++++++++++
 test/supports/vcr_helper.rb                                          |  2 +-
 test/system/comeback_test.rb                                         | 38 +++++++++++++++++++++++++++++++++++
 test/system/current_user_test.rb                                     |  2 +-
 test/system/hibernation_test.rb                                      | 19 ++++++++++++++----
 test/system/notification/hibernation_test.rb                         | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 test/system/retirement_test.rb                                       | 12 ++++-------
 test/system/sign_in_test.rb                                          | 23 +++++++++++----------
 test/system/sign_up_test.rb                                          | 14 +++----------
 48 files changed, 539 insertions(+), 190 deletions(-)
 create mode 100644 app/assets/stylesheets/application/blocks/form/_form-link-block.sass
 create mode 100644 app/controllers/comeback_controller.rb
 create mode 100644 app/views/comeback/_forget_password_form.html.slim
 create mode 100644 app/views/comeback/_forgot_password_modal.slim
 create mode 100644 app/views/comeback/_form.html.slim
 create mode 100644 app/views/comeback/new.html.slim
 create mode 100644 app/views/hibernation/_message.html.slim
 delete mode 100644 app/views/static_pages/retire.html.slim
 create mode 100644 test/fixtures/hibernations.yml
 create mode 100644 test/system/comeback_test.rb
 create mode 100644 test/system/notification/hibernation_test.rb

ここで、↓どこのブランチにも乗っていないことに気づきます(ずっと「HEAD」と表示されていた意味に気づく)

(HEAD)
> git branch
* (no branch, rebasing feature/comeback_check)
  feature/change_title_tag_in_practice_page
  feature/change_title_tag_in_user_list_by_company
  feature/comeback_check
  feature/move-narrow-down-parts
  feature/replace-q-and-a-notification-to-watching-user-with-newspaper
  feature/user_sns-and-user_tags-for-vue-mounter
  main

feature/comeback_checkに切り替えてgit logを見てみたところ、一直線になっていて大丈夫そうなのですが...
念の為ご確認いただきたく、ご連絡いたしました🙇‍♀️

(HEAD)
> git checkout feature/comeback_check
Previous HEAD position was 4761d1230 lint修正
Switched to branch 'feature/comeback_check'
Your branch is up to date with 'origin/feature/comeback_check'.

(feature/comeback_check)
> git log --graph
* commit d0ab4d5e007c65b4fc3fcf0b157e9f6be7f149b9 (HEAD -> feature/comeback_check, origin/feature/comeback_check)
| Author: TakashimaAyaka <takashimaayaka@MacBook-Pro.local>
| Date:   Tue Sep 20 23:31:35 2022 +0900
| 
|     空白行を削除
| 
* commit 9b733ec1037991216530869913704011adc8de03
| Author: TakashimaAyaka <takashimaayaka@MacBook-Pro.local>
| Date:   Tue Sep 20 23:08:51 2022 +0900
| 
|     休会フォームの注意を「読みました」のチェックボックスとボタンが連動するようにした
| 
* commit ec1ae9e65ee437084ffdbd5ab0024598c02ee81d
| Author: teppei machida <machida@fjord.jp>
| Date:   Wed Aug 31 14:01:37 2022 +0900
| 
|     休会チェックボックスのデザイン
| 
* commit 9d484864e9eacb158553bd20b2e3f295693104c0
| Author: keiz1213 <fukuoka00tsc@gmail.com>
| Date:   Tue Sep 13 21:49:17 2022 +0900
| 
|     lint修正

よろしくお願いいたします🙇‍♀️

@AyakaTakashima AyakaTakashima force-pushed the feature/comeback_check branch 2 times, most recently from a5e45eb to b51de83 Compare September 23, 2022 09:14
@AyakaTakashima
Copy link
Contributor

@machida
お疲れ様です!こちらのissue[休会] 休会フォームに 注意を読んだのチェックボックスを追加 · Issue #5378 · fjordllc/bootcampについて、内容の変更が完了しました!
本PRは私が作成したものではありませんが、レビュー依頼はどのようにすればよろしいでしょうか?
いつもPRの一番最初に書かせていただいている下記のようなdescriptionは普通にこのPRにコメントする形で私が書いてしまってよろしいのでしょうか??

## Issue

- #5378 

## 概要

管理画面の企業一覧の企業名をリンクに置き換えました。
...

## 変更確認方法

1. ブランチ`feature/comeback_check`をローカルに取り込む
2. `rails s`でローカル環境を立ち上げる
3. ...

## 変更前

<img ...>

## 変更後

<img ...>

@machida
Copy link
Member Author

machida commented Sep 23, 2022

@AyakaTakashima はい!description は上書きをしてレビュー依頼をお願いしますー🙏

@AyakaTakashima
Copy link
Contributor

@machida
承知いたしました!!お返事ありがとうございます!!

@AyakaTakashima
Copy link
Contributor

@machida
度々申し訳ございません!
ローカルで試しにkimuraさんを休会させようとすると、このようにエラーが出てしまいます。
image
こちらの本PRでは、チェックボックスとボタンの連動のみを実装するという認識なのですが、このエラーに関しては別issueで対応していただくという理解で問題ありませんでしょうか?

ご確認よろしくお願いいたします🙇‍♀️

@machida
Copy link
Member Author

machida commented Sep 23, 2022

@AyakaTakashima

Issueの登録をお願いしますー。このPRでは解決させなくて大丈夫です。

もしかしたら、最新のmainで解決されてるかもしれないので、念のため、

git pull --rebase origin main

をやってみてくださいー。

@AyakaTakashima
Copy link
Contributor

@machida
夜遅くにもかかわらず早速のご対応ありがとうございます🙇‍♀️
git pull --rebase origin mainをしたのですが、このように多くのコミットがskipされてしまうみたいです...

> git pull --rebase origin main
From github.com:fjordllc/bootcamp
 * branch                main       -> FETCH_HEAD
warning: skipped previously applied commit 81a865e33
warning: skipped previously applied commit bcd62d2a4
warning: skipped previously applied commit 9b3a06817
warning: skipped previously applied commit c570ec128
warning: skipped previously applied commit b3b23f2de
warning: skipped previously applied commit 68e88142b
warning: skipped previously applied commit c68dd882f
warning: skipped previously applied commit d97e610c7
warning: skipped previously applied commit 6193d5b44
hint: use --reapply-cherry-picks to include skipped commits
hint: Disable this message with "git config advice.skippedCherryPicks false"
Successfully rebased and updated refs/heads/feature/comeback_check.

これらは、メッセージに出ている通り--reapply-cherry-picksをつけてgit pull --rebase origin main --reapply-cherry-picksをしてしまっても大丈夫なのでしょうか...?
調べてみたのですが、git pull --rebase origin main --reapply-cherry-picksをすると、自分のコミットよりももっと先のコミット群を取り込んでくれるコマンドなのかな...?と思ったのですが、使ったことがないコマンドなので不安です😭
ご回答はお手隙の時で構いません。
よろしくお願いいたします🙇‍♀️

@machida
Copy link
Member Author

machida commented Sep 26, 2022

@AyakaTakashima

ブランチの派生元の feature/comeback #5369 を最新の main から rebase して最新の状態にし、こちらの PR を最新の状態にした feature/comeback からrebase しました。

なので、手元の feature/comeback_check ブランチで、

git pull --rebase origin feature/comeback_check

をお願いします。

それをした上で、kimuraさんを休会させようとするとエラーが出るか再度確認してみてください。
エラーが出ましたら、別Issueとして、Issueの登録をお願いしますー🙏

@machida
Copy link
Member Author

machida commented Sep 26, 2022

今落ちてるテストは、
#5593
これがマージされたら通るようになりますー

@AyakaTakashima AyakaTakashima marked this pull request as ready for review September 27, 2022 10:43
@AyakaTakashima
Copy link
Contributor

@siroemk
siroemkさん、初めまして!
もしご都合がよろしければお手隙の際にこちらのPRについて、レビューをお願いしたいです🙇‍♀️

descriptionに注意点を記載させていただきましたのでご確認いただけますと嬉しいです!
よろしくお願いいたします🙇‍♀️

@AyakaTakashima AyakaTakashima changed the title 休会チェックボックスのデザイン 「読みました」のチェックボックスを埋めたら「休会する」ボタンを押せるようにした Sep 27, 2022
Copy link
Contributor

@siroemk siroemk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@AyakaTakashima
お疲れ様です〜!お待たせしました。
注意点なども細かく書いていただき、ありがとうございました✨

動作もコードも確認いたしました。LGTMです🙆‍♀️

@AyakaTakashima
Copy link
Contributor

@siroemk
とんでもないです!!
ご確認ありがとうございます〜!!!🥳

@AyakaTakashima
Copy link
Contributor

@komagata
お疲れ様です!
こちら、siroemkさんからapproveいただきましたのでレビューお願いいたします🙇‍♀️

@@ -21,17 +21,6 @@ header.page-header
html: { name: 'hibernation' },
class: 'form' do |f|
.form__items
//
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@@ -19,6 +19,7 @@ class HibernationTest < ApplicationSystemTestCase
end

VCR.use_cassette 'subscription/update', vcr_options do
find('.is-checkbox').click
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

こちらcapybaraのcheckboxをチェックするためのメソッドは使えなかったでしょうか。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@komagata
ご確認ありがとうございます!
capybaraのcheckboxをチェックするためのメソッドというものがあるのですね🙇‍♀️
調べて修正してみましたのでご確認よろしくお願いいたします!

@AyakaTakashima
Copy link
Contributor

@komagata
度々申し訳ございません。
こちら、本日お返事が来ているか確認のため本日PRを覗きに来たら、CIが落ちていました。

昨日check 'is-checkbox' に変更し、手元でテスト実行した時は下記の通り通っていたのですが...

> rails test test:test/system/notification/hibernation_test.rb
Run options: --seed 64430

# Running:

................................................................................................................................................................................................................................................................................................................
[Minitest::CI] Generating test report in JUnit XML format...


Finished in 5.357628s, 56.7415 runs/s, 191.6893 assertions/s.
304 runs, 1027 assertions, 0 failures, 0 errors, 0 skips

本日実行してみると、下記の通り通らなくなっていました。

> rails test test/system/notification/hibernation_test.rb
Run options: --seed 56247

# Running:

[Screenshot Image]: /Users/takashimaayaka/fjord/bootcamp/tmp/screenshots/failures_test_notify_admins_and_mentors_when_a_adviser_hibernate.png
[Screenshot Image]: /Users/takashimaayaka/fjord/bootcamp/tmp/screenshots/failures_test_notify_admins_and_mentors_when_a_student_hibernate.png
[Screenshot Image]: /Users/takashimaayaka/fjord/bootcamp/tmp/screenshots/failures_test_notify_admins_and_mentors_when_a_trainee_hibernate.png
E

Error:
Notification::HibernationTest#test_notify_admins_and_mentors_when_a_student_hibernate:
Capybara::ElementNotFound: Unable to find checkbox "is-checkbox" that is not disabled
    test/system/notification/hibernation_test.rb:25:in `block in <class:HibernationTest>'


rails test test/system/notification/hibernation_test.rb:15

E

Error:
Notification::HibernationTest#test_notify_admins_and_mentors_when_a_trainee_hibernate:
Capybara::ElementNotFound: Unable to find checkbox "is-checkbox" that is not disabled
    test/system/notification/hibernation_test.rb:48:in `block in <class:HibernationTest>'


rails test test/system/notification/hibernation_test.rb:38

E

Error:
Notification::HibernationTest#test_notify_admins_and_mentors_when_a_adviser_hibernate:
Capybara::ElementNotFound: Unable to find checkbox "is-checkbox" that is not disabled
    test/system/notification/hibernation_test.rb:71:in `block in <class:HibernationTest>'


rails test test/system/notification/hibernation_test.rb:61


[Minitest::CI] Generating test report in JUnit XML format...


Finished in 39.431549s, 0.0761 runs/s, 0.0761 assertions/s.
3 runs, 3 assertions, 0 failures, 3 errors, 0 skips

試しに、find('.is-checkbox').clickに戻し、実行してみたところ下記のように通りました。

> rails test test:test/system/notification/hibernation_test.rb
Run options: --seed 59262

# Running:

................................................................................................................................................................................................................................................................................................................
[Minitest::CI] Generating test report in JUnit XML format...


Finished in 5.330115s, 57.0344 runs/s, 192.6788 assertions/s.
304 runs, 1027 assertions, 0 failures, 0 errors, 0 skips

したがって、test/system/notification/hibernation_test.rb内のものはfind('.is-checkbox').clickに戻してあります。
ご確認よろしくお願いいたします🙇‍♀️

@AyakaTakashima
Copy link
Contributor

AyakaTakashima commented Oct 4, 2022

@komagata
すみません!上記の件ですが、テストを実行するコマンドを間違えているだけでした。
ご放念ください🙇‍♀️

capybaraのチェックボックスのメソッドについて調べてみると、check "チェックボックスのid"とするようでしたので、下記のようにabcdというidを試しにつけてやってみました。

#app/views/hibernation/new.html.slim
          .form-item
            label.a-form-label.is-required
              | 休会についての注意を読みましたか?
            .block-checks.is-1-item.is-centered
              .block-checks__item
                .a-block-check.is-checkbox#abcd <!--ここに試しにidをつけた-->
                  input.a-toggle-checkbox.js-hibernation-agreements-checkbox#aaa(type='checkbox')
                  label.a-block-check__label(for='aaa')
                    | 読みました

下記のように書き換えました↓

#test/system/hibernation_test.rb
check 'abcd'

しかし、テストはパスしませんでした....
ラベルでもいけるという情報を見かけたので、

check '読みました'

としてみましたがダメでした。
何か間違えがあれば教えていただけないでしょうか🙇‍♀️
よろしくお願いいたします🙇‍♀️

@komagata
Copy link
Member

komagata commented Oct 4, 2022

@AyakaTakashima

なぜfind('.is-checkbox').clickはOKで、checkはダメなのか調べてみてください。
Capybaraの公式APIリファレンスをまず読んでみると良いと思います。

@AyakaTakashima
Copy link
Contributor

@komagata
ありがとうございます!読んでみます!!

@AyakaTakashima
Copy link
Contributor

AyakaTakashima commented Oct 6, 2022

@komagata
お疲れ様です。
devツールで確認すると、チェックボックスにカーソルを当てると疑似要素の::beforeとなっていました。
image

capybaraでは、idかname(class名のこと?)かlabelで指定できると書いてありました。
Method: Capybara::Node::Actions#check — Documentation for teamcapybara/capybara (master)
しかし、実際のチェックボックスは画面上に出ておらず、チェックができないため、idを付与してチェックしに行こうとしてもチェックができていないのではないかと思いました。

よって、チェックボックスと紐づいている、画面上に出ているチェックボックスとは別の要素をクリックしにいく必要があるのではという結論に至りました。
したがって、このままfind('.is-checkbox').click の方がいいと思うのですがいかがでしょうか?
ご確認よろしくお願いいたします。

@komagata
Copy link
Member

komagata commented Oct 6, 2022

@AyakaTakashima なるほどです。find('.is-checkbox').clickで大丈夫です〜

Comment on lines 77 to 78
input.a-toggle-checkbox.js-hibernation-agreements-checkbox#aaa(type='checkbox')
label.a-block-check__label(for='aaa')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

aaaの部分を意味にある名前にした方がいいかもです〜。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@komagata
こちら変更いたしました!
ご確認よろしくお願いいたします🙇‍♀️

@@ -22,6 +22,7 @@ class Notification::HibernationTest < ApplicationSystemTestCase
visit_with_auth new_hibernation_path, 'kimura'
fill_in 'hibernation[scheduled_return_on]', with: Time.current.next_month
fill_in 'hibernation[reason]', with: 'テストのため'
find('.is-checkbox').click
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

このページにcheckboxが増えたらテストが落ちる感じのセンシティブなテストになっているので、もう少し絞り込んだ条件が良さそうです。

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@komagata
変更いたしましたのでご確認よろしくお願いいたします。

Copy link
Member

@komagata komagata left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

確認させて頂きました。OKです〜🙆‍♂️

@komagata komagata merged commit 7c3278c into feature/comeback Oct 17, 2022
@komagata komagata deleted the feature/comeback_check branch October 17, 2022 08:49
@AyakaTakashima
Copy link
Contributor

AyakaTakashima commented Oct 17, 2022

@komagata
ご確認ありがとうございます!
本件のリリースノートについて、確認したいことがあります。
以前は休会の機能はなかったと認識しています。
しかし、https://bootcamp.fjord.jp/hibernation/newにアクセスするとページは見れました。
ただ、ページの中のどこにリンクがあるのか見つけることができませんでした。
休会の機能はすでに実装されているという認識でよろしいでしょうか?

もしすでに実装されているのであればリリースノートに書くべきかと思うのですが、
未実装であれば、書かないべきかと思いましたので確認したいです。
ご回答、よろしくお願いいたします🙇‍♀️

@komagata
Copy link
Member

@AyakaTakashima 直接URLにアクセスすれば使えますが、表向きにはまだ休会機能はリリースされていないです〜。

@AyakaTakashima
Copy link
Contributor

AyakaTakashima commented Oct 18, 2022

@komagata
承知いたしました!
それではリリースノートは書かないようにします!
ご回答ありがとうございます!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants