-
Notifications
You must be signed in to change notification settings - Fork 71
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
ブログの公開済み記事が公開日順で並ぶようにした #8167
base: main
Are you sure you want to change the base?
ブログの公開済み記事が公開日順で並ぶようにした #8167
Conversation
b6dca70
to
2c1ae41
Compare
@kurumadaisuke |
@MikotoMakizuru |
@Judeeeee |
@MikotoMakizuru |
かしこまりました、問題ありません! |
@MikotoMakizuru |
@Judeeeee お忙しいところ恐れ入ります、よろしくお願いします🙇♂️ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@MikotoMakizuru
お待たせしました!
ブラウザでの動作確認はOKでした🙆
レビューしている中で、気になった箇所がいくつかあるのでコメントしました🙏
def list_articles | ||
articles = Article.with_attached_thumbnail.includes(user: { avatar_attachment: :blob }) | ||
.order(published_at: :desc, created_at: :desc).page(params[:page]) | ||
admin_or_mentor_login? ? articles : articles.where(wip: false) | ||
end | ||
|
||
def list_recent_articles(number) | ||
Article.with_attached_thumbnail.includes(user: { avatar_attachment: :blob }) | ||
.where(wip: false).order(published_at: :desc).limit(number) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確かに未使用のメソッドですが、本PRとは直接関係ない差分なので変更しない方がレビューしやすいです🙇
(気になる気持ちは大いにわかるのですが、余分な差分が多いとコードを追いづらいです💦)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
なるほど、そのような観点があるのですね!戻しておきました b5410cf
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ありがとうございます!
後出しですが、公式docにも記述があるのでよかったら参考にしてみてください〜!🙏
1 つの目的を満たす、焦点を絞った小さな pull request を作成することを目的とします。 pull request を小さくすると、レビューとマージが簡単かつ迅速になり、バグを導入する余地が少なくなり、変更の履歴がより明確になります。
@@ -414,6 +414,40 @@ class ArticlesTest < ApplicationSystemTestCase | |||
assert_no_text 'WIPの記事は atom feed に表示されない' | |||
end | |||
|
|||
test 'articles are displayed from the most recent publication date' do |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
article4 ~ 6がぱっと見で何が違うのか分かりにくいので、変数名を工夫するとよりわかりやすくなる気がします👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
違いがわかるよう変数名再考しましたので、ご確認お願いします c270255
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
修正ありがとうございます!OKです!🙆
test/system/articles_test.rb
Outdated
article4 = Article.create( | ||
title: 'タイトル4', | ||
body: 'テスト用のWIP記事4', | ||
user: users(:komagata), | ||
wip: false, | ||
created_at: Date.current - 4.days, | ||
updated_at: Date.current - 4.days, | ||
published_at: Date.current - 3.days | ||
) | ||
article5 = Article.create( | ||
title: 'タイトル5', | ||
body: 'テスト用のWIP記事5', | ||
user: users(:komagata), | ||
wip: false, | ||
created_at: Date.current - 5.days, | ||
updated_at: Date.current - 5.days, | ||
published_at: Date.current - 2.days | ||
) | ||
article6 = Article.create( | ||
title: 'タイトル6', | ||
body: 'テスト用のWIP記事6', | ||
user: users(:komagata), | ||
wip: false, | ||
created_at: Date.current - 6.days, | ||
updated_at: Date.current - 6.days, | ||
published_at: Date.current - 1.day | ||
) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixturesでデータを作成せずに、テストファイルでArticle.create
したのは何か理由があったりしますか?👀
このファイル内で直接Article.create
している方もいるので強く言えないのですが、可読性の観点(コードが短い方がわかりやすいと自身は思っている)からfixtureを使った方がよりよくなると思いました🙆♀️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
fixturesでデータを作成せずに、テストファイルでArticle.createしたのは何か理由があったりしますか?👀
以前、以下の PR で「fixtures を使用すると、全テストケースで DB に INSERT/DELETE が発生し、テストが重くなるため、1 つのテストでしか使用しないデータは、そのテスト内で作成してください」というレビューをを受けたことがありました。
今回も、このテストだけで使用するデータだったため、テスト内で作成するようにしました。
#7995 (comment)
可読性の観点(コードが短い方がわかりやすいと自身は思っている)からfixtureを使った方がよりよくなると思いました🙆♀️
私も Judeeeee さんと同じ考えです。
過去に fixtures に書くべきタイミングについて回答したことがあるのでそちらも参考程度に読んでいただければと思います。 #8066 (comment)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
丁寧なコメントありがとうございます🙇
fixtures を使用すると、全テストケースで DB に INSERT/DELETE が発生し、テストが重くなるため
そうだったのですね!こちらについて知らなかったので勉強になりました!ありがとうございます🙏
OKとさせていただきますー🙆
test/system/articles_test.rb
Outdated
titles = all('h2.thumbnail-card__title').map(&:text) | ||
assert_equal [article6.title, article5.title, article4.title, @article2.title, @article.title], titles |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
今回テストしたい対象はarticle4~6なので、@ article2
, @ article
は含まない方がテストが明確になると思いました🙆♀️
titles = all('h2.thumbnail-card__title').map(&:text) | |
assert_equal [article6.title, article5.title, article4.title, @article2.title, @article.title], titles | |
top_three_articles = all('h2.thumbnail-card__title').take(3).map(&:text) | |
assert_equal [article6.title, article5.title, article4.title], top_three_articles |
参考: takeメソッド
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
確かにテストする対象が明確になりますね、修正しました 62741c7
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
修正ありがとうございます〜!OKです👍
issue の対応とは関係ないため
あわせてテストデータの title, body も修正
2c1ae41
to
62741c7
Compare
@Judeeeee |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
とんでもないです!こちらこそ修正ありがとうございました!
コメントに返信いたしましたので、ご確認ください🙏
私からはapproveさせていただきます〜👍
修正お疲れ様でした!🍵
@komagata |
Issue
概要
こちら のプルリクの対応により、ブログ一覧のソート順が作成日時の降順で並んでいました。今回のバグ修正対応では、ブログの公開日順で並ぶようにしました。
変更確認方法
bug/articles-are-displayed-from-the-date-of-latest-publication
をローカルに取り込むrails db:seed
を実行して初期データ投入(このコマンドはローカルの DB データを初期化するので、初期化しても問題ないタイミングで行ってください。DB のデータが初期状態の場合実行する必要はありません。)rails c
を起動し、下記の「テストーデータ」を投入する ruby のコマンドを実行foreman start -f Procfile.dev
でサーバを起動し、http://localhost:3000/articles/ にアクセスScreenshot
変更前
変更後
テストデータ