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

一度公開したお知らせを誰でも公開の状態で保存できるように変更 #4215

Merged
merged 4 commits into from
Feb 28, 2022
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion app/views/announcements/_announcement.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,14 @@
.card-footer
.card-main-actions
ul.card-main-actions__items
- if @announcement.wip || admin_or_mentor_login? || @announcement.user_id == current_user.id
// 要デザイン(ここから)
- if announcement.published_at
li.card-main-actions__item
= link_to edit_announcement_path(announcement), class: 'card-main-actions__delete' do
i.fas.fa-pen#new
| 内容修正
// 要デザイン(ここまで)
- else
li.card-main-actions__item
= link_to edit_announcement_path(announcement), class: 'card-main-actions__action a-button is-md is-secondary is-block', id: 'js-shortcut-edit' do
i.fas.fa-pen#new
Expand Down
12 changes: 6 additions & 6 deletions app/views/announcements/_form.html.slim
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,19 @@
ul.form-actions__items
li.form-actions__item.is-main
= f.submit 'WIP', class: 'a-button is-lg is-primary is-block', id: 'js-shortcut-wip'
- if admin_or_mentor_login?
- if admin_or_mentor_login? && announcement.new_record?
Copy link
Contributor

Choose a reason for hiding this comment

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

@aim2bpg
こちら、デシジョンテーブルのパターン1の要件を満たしていることを確認できました!
コードもネストが無くなり読みやすくなっていて、素晴らしいと思いました👏

今回のissueとは直接関係ないのですが「作成と公開の違い」が気になりました。
komagataさんでログインし、作成と公開の両方を行ってみましたが、どちらのボタンを押しても「公開」を行っているように見えました🤔

image

なぜ「メンターor管理者ログイン時 かつ お知らせ新規作成時 に作成ボタンが表示」されるのかが少し気になりました。
過去のissueを探しても分からなかったため、もしご存知でしたら教えていただけますと幸いです🙏

Copy link
Contributor Author

Choose a reason for hiding this comment

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

こちら、たしかに自分も気になりました😅

  • 作成ボタン:新規作成→公開(管理者・メンターのみ)
  • 公開ボタン:WIP→公開(管理者・メンターのみ)、公開→(WIP)→公開(ユーザー不問)の2つを兼用

といった解釈ですね。。

Copy link
Contributor

Choose a reason for hiding this comment

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

@aim2bpg
なるほど、そのような使い分け方なら納得です〜
ありがとうございます☺️

li.form-actions__item.is-main.is-help
- if announcement.new_record?
= f.submit '作成', class: 'a-button is-lg is-warning is-block', id: 'js-shortcut-submit'
- else
= f.submit '公開', class: 'a-button is-lg is-warning is-block', id: 'js-shortcut-submit'
= f.submit '作成', class: 'a-button is-lg is-warning is-block', id: 'js-shortcut-submit'
- if admin_or_mentor_login? || announcement.published_at
li.form-actions__item.is-main.is-help
= f.submit '公開', class: 'a-button is-lg is-warning is-block', id: 'js-shortcut-submit'
li.form-actions__item.is-sub
- case params[:action]
- when 'new', 'create'
= link_to 'キャンセル', announcements_path, class: 'a-button is-md is-secondary is-block'
- when 'edit', 'update'
= link_to 'キャンセル', announcement_path, class: 'a-button is-md is-secondary is-block'
- unless admin_or_mentor_login?
- unless admin_or_mentor_login? || announcement.published_at
.form-actions__description.a-short-text
p
| お知らせを作成しましたら、WIPで保存し、作成したお知らせのコメントから @mentor へ確認・公開の連絡をお願いします。
43 changes: 37 additions & 6 deletions test/system/announcements_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -140,20 +140,51 @@ class AnnouncementsTest < ApplicationSystemTestCase
assert_no_text 'お知らせ「就活希望者のみお知らせします」'
end

test "general user can't edit submitted announcement" do
announcement = announcements(:announcement1)
visit_with_auth announcement_path(announcement), 'kimura'
test "general user can't create announcement" do
visit_with_auth '/announcements', 'kimura'
click_link 'お知らせ作成'
assert has_no_button? '作成'
assert_text 'お知らせを作成しましたら、WIPで保存し、作成したお知らせのコメントから @mentor へ確認・公開の連絡をお願いします。'
end

test 'admin user can publish wip announcement' do
announcement = announcements(:announcement_wip)
visit_with_auth announcement_path(announcement), 'komagata'
within '.thread__inner' do
assert_no_text '内容修正'
click_link '内容修正'
end
assert has_button? '公開'
assert_no_text 'お知らせを作成しましたら、WIPで保存し、作成したお知らせのコメントから @mentor へ確認・公開の連絡をお願いします。'
end

test 'general user can edit wip announcement' do
test "general user can't publish wip announcement" do
announcement = announcements(:announcement_wip)
visit_with_auth announcement_path(announcement), 'kimura'
within '.thread__inner' do
assert_text '内容修正'
click_link '内容修正'
end
assert has_no_button? '公開'
assert_text 'お知らせを作成しましたら、WIPで保存し、作成したお知らせのコメントから @mentor へ確認・公開の連絡をお願いします。'
end

test 'adimin user can publish submitted announcement' do
announcement = announcements(:announcement1)
visit_with_auth announcement_path(announcement), 'komagata'
within '.thread__inner' do
click_link '内容修正'
end
assert has_button? '公開'
assert_no_text 'お知らせを作成しましたら、WIPで保存し、作成したお知らせのコメントから @mentor へ確認・公開の連絡をお願いします。'
end

test 'general user can publish submitted announcement' do
announcement = announcements(:announcement1)
visit_with_auth announcement_path(announcement), 'kimura'
within '.thread__inner' do
click_link '内容修正'
end
assert has_button? '公開'
assert_no_text 'お知らせを作成しましたら、WIPで保存し、作成したお知らせのコメントから @mentor へ確認・公開の連絡をお願いします。'
end

Copy link
Contributor

Choose a reason for hiding this comment

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

デシジョンテーブルでどのようなテストケースが必要か明記してくださっているので、コードレビューがとてもしやすいです!
ありがとうございます🙏✨
6パターン全て確認したところ、OKでした🙆‍♀️
期待値を反転させて失敗したことも確認&記載してくださっていて素晴らしいと思います👏

test 'general user can copy submitted announcement' do
Expand Down