From 038385e4f8f9dc0d90150648ddc4e6bb7e0aba06 Mon Sep 17 00:00:00 2001 From: Julianna Tetreault <32834804+juliannatetreault@users.noreply.github.com> Date: Fri, 30 Oct 2020 08:39:31 -0600 Subject: [PATCH] [deploy] Mark Posts as Published in Admin Articles (#11142) * Refactors #update in Admin::ArticlesController and articles_spec.rb - Adds article.update to #update in the controller - Shifts the update of co_author_ids further down in #update - Adds additional tests to articles_spec.rb - Refactors existing tests in articles_spec.rb * Adds a gaurd clause to Admin::ArticlesController and refactors specs * Removes ! from article creation in articles_spec.rb --- app/controllers/admin/articles_controller.rb | 5 +++-- spec/requests/admin/articles_spec.rb | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/articles_controller.rb b/app/controllers/admin/articles_controller.rb index 5bcd65fef..d22cb9826 100644 --- a/app/controllers/admin/articles_controller.rb +++ b/app/controllers/admin/articles_controller.rb @@ -44,8 +44,9 @@ module Admin article.email_digest_eligible = article_params[:email_digest_eligible].to_s == "true" article.boosted_additional_articles = article_params[:boosted_additional_articles].to_s == "true" article.boosted_dev_digest_email = article_params[:boosted_dev_digest_email].to_s == "true" - article.user_id = article_params[:user_id].to_i - article.co_author_ids = article_params[:co_author_ids].split(",").map(&:strip) + article.user_id = article_params[:user_id].to_i if article_params[:user_id].present? + article.update(article_params) + article.co_author_ids = article_params[:co_author_ids]&.split(",")&.map(&:strip) if article.save flash[:success] = "Article saved!" else diff --git a/spec/requests/admin/articles_spec.rb b/spec/requests/admin/articles_spec.rb index 1a003de62..0cc61e289 100644 --- a/spec/requests/admin/articles_spec.rb +++ b/spec/requests/admin/articles_spec.rb @@ -12,20 +12,33 @@ RSpec.describe "/admin/articles", type: :request do let(:second_user) { create(:user) } let(:third_user) { create(:user) } - before { sign_in super_admin } + before do + sign_in super_admin + end it "allows an Admin to add a co-author to an individual article" do get request - expect do article.update_columns(co_author_ids: [1]) end.to change(article, :co_author_ids).from([]).to([1]) end it "allows an Admin to add co-authors to an individual article" do - article.update_columns(co_author_ids: [2, 3]) get request + article.update_columns(co_author_ids: [2, 3]) expect(article.co_author_ids).to eq([2, 3]) end + + it "allows an Admin to mark an article as approved" do + expect do + patch "/admin/articles/#{article.id}", params: { article: { approved: true } } + end.to change { article.reload.approved }.to(true) + end + + it "allows an Admin to mark an article as featured" do + expect do + patch "/admin/articles/#{article.id}", params: { article: { featured: true } } + end.to change { article.reload.featured }.to(true) + end end end