Update article spec

This commit is contained in:
Ari Timonen 2020-03-20 02:00:03 +02:00
parent 4c5108bc4e
commit b1b39e42a8

View file

@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe ArticlesController, type: :controller do RSpec.describe ArticlesController, type: :controller do
let!(:category) { create(:category, domain: Category::DOMAIN_NEWS) } let!(:category) { create(:category, domain: Category::DOMAIN_NEWS) }
let!(:params) { FactoryBot.attributes_for(:article).merge!(category_id: category.id) } let!(:params) { FactoryBot.attributes_for(:article).merge!(category_id: category.id) }
let!(:invalid_params) { params.merge!(:title => (0..150).map { (65 + rand(26)).chr }.join) } let!(:invalid_params) { params.merge(:title => (0..150).map { (65 + rand(26)).chr }.join) }
let!(:article) { create(:article, category_id: category.id, user_id: admin.id) } let!(:article) { create(:article, category_id: category.id, user_id: admin.id) }
let!(:admin) { create(:user, :admin) } let!(:admin) { create(:user, :admin) }
let!(:user) { create(:user) } let!(:user) { create(:user) }
@ -53,6 +53,10 @@ RSpec.describe ArticlesController, type: :controller do
end end
context 'POST' do context 'POST' do
before(:each) do
expect(:params).not_to eq(:invalid_params)
end
describe 'with valid values' do describe 'with valid values' do
it "creates the model" do it "creates the model" do
login_admin login_admin
@ -77,10 +81,10 @@ RSpec.describe ArticlesController, type: :controller do
expect(Article.count).to eq(count) expect(Article.count).to eq(count)
end end
it "redirects correctly" do it "renders :new" do
login_admin login_admin
post :create, params: {:article => invalid_params} post :create, params: {:article => invalid_params}
expect(response).to redirect_to(article_path(Article.last)) expect(response).to render_template("new")
end end
end end
end end
@ -109,10 +113,10 @@ RSpec.describe ArticlesController, type: :controller do
expect(Article.find(article.id).attributes).to eq(article.attributes) expect(Article.find(article.id).attributes).to eq(article.attributes)
end end
it "redirects correctly" do it "renders :edit" do
login_admin login_admin
post :create, params: {:article => invalid_params} put :update, params: {:id => article.id, :article => invalid_params}
expect(response).to redirect_to(article_path(Article.last)) expect(response).to render_template("edit")
end end
end end
end end
@ -131,6 +135,7 @@ RSpec.describe ArticlesController, type: :controller do
it "redirects correctly" do it "redirects correctly" do
login_admin login_admin
request.env["HTTP_REFERER"] = "where_i_came_from"
delete :destroy, params: {:id => article.id} delete :destroy, params: {:id => article.id}
expect(response).to redirect_to("where_i_came_from") expect(response).to redirect_to("where_i_came_from")