bootcamp
bootcamp copied to clipboard
[abstract_notifier] 退会後3ヶ月通知の実装を置き換えたい
経緯
通知部分を整理するのにactive_deliveryを使ったものに変えたいと思っているが、前準備としてabstract_notifierに対応させる必要がある。
やること
退会後3ヶ月通知の実装をabstract_notifierに置き換えたい。
既に導入したPRがあるのでそちらを参考にする。
- abstract_notifierで通知を実装する - komagataのブログ
- 現状の退会後3ヶ月通知の実装
- abstract_notifierを導入 by komagata · Pull Request #4673 · fjordllc/bootcamp
- palkan/active_delivery: Ruby framework for keeping all types of notifications (mailers, push notifications, whatever) in one place
- palkan/abstract_notifier: ActionMailer-like interface for any type of notifications
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。
このissue|PRは60日間更新がないため7日後にcloseします。closeしたくない場合はstaleラベルを外してください。
@komagata お疲れ様です。
ただログインしただけでは退会後3ヶ月通知が送られておらず、チェック方法についてご相談させていただきたいです。
システムテストのように/scheduler/daily
にアクセスすると通知が送られたのですが、
/scheduler/daily
にアクセス→退会後3ヶ月通知をクリック→退会したユーザーページに遷移する ことを確認すると言う方法でよろしいでしょうか?
以前質問タイムでテスト用DBとdev環境DBは異なっていると伺いましたが、チェック自体は通知がちゃんと表示されているかを確認する程度で良いという認識なので今回の内容では大丈夫かな…と考えています。
◯該当箇所のテストコード
test 'three months have passed since user retired' do
visit_with_auth '/scheduler/daily', 'komagata'
visit '/notifications'
within first('.card-list-item.is-unread') do
assert_text 'taikai3さんが退会してから3カ月が経過しました。Discord ID: taikai#3333, ユーザーページ: https://bootcamp.fjord.jp/users/1008501353'
end
end
お手数ですがご確認よろしくお願いいたします。
@fuwa-syugyo
まず、通知を送るタイミングはおっしゃるように/scheduler/daily
にアクセスがあった時です。
(外部のスケジューラーで毎日ここにアクセスするようになっています)
/scheduler/daily にアクセス→退会後3ヶ月通知をクリック→退会したユーザーページに遷移する ことを確認すると言う方法でよろしいでしょうか?
テストのタイトル(主題)が通知を送ることであれば、通知が来ていることを確認できればそれでOKです。(クリックは不要です)
@komagata
ご回答ありがとうございます!
外部スケジューラで/scheduler/daily
にアクセスするようにしているのですね。
テストのタイトル(主題)が通知を送ることであれば、通知が来ていることを確認できればそれでOKです。(クリックは不要です)
テストのタイトルはthree months have passed since user retired
で、/scheduler/daily
にアクセス→通知一覧画面( /notifications
)に遷移→最新の通知のタイトルが想定通りか をテストしているようです。
テストのタイトルは通知を送ること、ということではないと思います。
/scheduler/daily
にアクセスすること以外に実際に通知が来ていることを確認する方法はありますでしょうか?
@fuwa-syugyo
/scheduler/dailyにアクセスすること以外に実際に通知が来ていることを確認する方法はありますでしょうか?
似たコードで呼び出す以外には、無いと思います。 ちょっと求めていることがわからないかもなのですが、別の方法を取る必要はないように思います。
@komagata 開発ミーティングでお話しさせていただきましたが、以下のチェック方法ということで承知いたしました。
-
/scheduler/daily
にアクセスして通知を確認する - テストが通ることを確認する ご確認いただきありがとうございます!
本番環境で確認していただいたので、closeします。