fix articles controller spec
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
viehlieb 2022-10-13 10:30:34 +02:00
parent a72495b741
commit e4a6bdb2e4
2 changed files with 37 additions and 8 deletions

View file

@ -12,7 +12,7 @@ describe ArticlesController, type: :controller do
let(:supplier) { create :supplier, articles: [articleA, articleB] } let(:supplier) { create :supplier, articles: [articleA, articleB] }
let(:order) { create :order } let(:order) { create :order }
let(:order_article) { create :order_article, order: order, article: articleC }
before { login user } before { login user }
@ -68,7 +68,7 @@ describe ArticlesController, type: :controller do
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
end end
it 'fails to create a new article an renders #new' do it 'fails to create a new article and renders #new' do
get :create, params: { foodcoop: FoodsoftConfig[:default_scope], supplier_id: supplier.id, article: { id: nil } }, xhr: true get :create, params: { foodcoop: FoodsoftConfig[:default_scope], supplier_id: supplier.id, article: { id: nil } }, xhr: true
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
expect(response).to render_template('articles/new') expect(response).to render_template('articles/new')
@ -114,6 +114,7 @@ describe ArticlesController, type: :controller do
end end
describe "#update_selected" do describe "#update_selected" do
let(:order_article) { create :order_article, order: order, article: articleC }
before do before do
order_article order_article
end end
@ -157,11 +158,11 @@ describe ArticlesController, type: :controller do
end end
describe "#parse_upload" do describe "#parse_upload" do
let(:file) { fixture_file_upload(Rails.root.join('spec/fixtures/files/upload_test.csv')) } # let(:file) { fixture_file_upload(Rails.root.join('spec/fixtures/files/upload_test.csv')) }
before do # before do
file # file
end # end
# TODO: Cannot use Rack attributes in controller?? # TODO: Cannot use Rack attributes in controller??
# #<NoMethodError: undefined method `original_filename' for # #<NoMethodError: undefined method `original_filename' for
# "#<Rack::Test::UploadedFile:0x00005575cef1d238>":String # "#<Rack::Test::UploadedFile:0x00005575cef1d238>":String
@ -182,6 +183,7 @@ describe ArticlesController, type: :controller do
end end
describe "#destroy" do describe "#destroy" do
let(:order_article) { create :order_article, order: order, article: articleC }
before do before do
order_article order_article
end end
@ -202,6 +204,7 @@ describe ArticlesController, type: :controller do
end end
describe "#update_synchronized" do describe "#update_synchronized" do
let(:order_article) { create :order_article, order: order, article: articleC }
before do before do
order_article order_article
articleA articleA
@ -290,10 +293,33 @@ describe ArticlesController, type: :controller do
let(:supplier_with_shared) { create :supplier, articles: [articleS], shared_supplier: shared_supplier } let(:supplier_with_shared) { create :supplier, articles: [articleS], shared_supplier: shared_supplier }
it 'renders view with articles' do it 'renders view with articles' do
get :shared, params: { foodcoop: FoodsoftConfig[:default_scope], supplier_id: supplier_with_shared.id, q: { name_cont_all: "shared" } }, xhr: true get :shared, params: { foodcoop: FoodsoftConfig[:default_scope], supplier_id: supplier_with_shared.id, name_cont_all_joined: "shared" }, xhr: true
expect(assigns(:supplier).shared_supplier.shared_articles.any?).to be_truthy expect(assigns(:supplier).shared_supplier.shared_articles.any?).to be_truthy
expect(assigns(:articles).any?).to be_truthy expect(assigns(:articles).any?).to be_truthy
expect(response).to have_http_status(:success) expect(response).to have_http_status(:success)
end end
end end
describe "#import" do
let(:shared_supplier) { create :shared_supplier, shared_articles: [shared_article] }
let(:shared_article) { create :shared_article, name: "shared" }
before do
shared_article
article_categoryA
end
it 'fills form with article details' do
get :import, params: { foodcoop: FoodsoftConfig[:default_scope], article_category_id: article_categoryB.id, direct: "true", supplier_id: supplier.id, shared_article_id: shared_article.id }, xhr: true
expect(assigns(:article).nil?).to be_falsey
expect(response).to have_http_status(:success)
expect(response).to render_template(:create)
end
it 'does redirect to :new if param :direct not set' do
get :import, params: { foodcoop: FoodsoftConfig[:default_scope], article_category_id: article_categoryB.id, supplier_id: supplier.id, shared_article_id: shared_article.id }, xhr: true
expect(assigns(:article).nil?).to be_falsey
expect(response).to have_http_status(:success)
expect(response).to render_template(:new)
end
end
end end

View file

@ -21,6 +21,10 @@ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f }
RSpec.configure do |config| RSpec.configure do |config|
# We use capybara with webkit, and need database_cleaner # We use capybara with webkit, and need database_cleaner
# config.before(:suite) do
# DatabaseCleaner.clean_with(:truncation)
# end
config.before(:each) do config.before(:each) do
DatabaseCleaner.strategy = (RSpec.current_example.metadata[:js] ? :truncation : :transaction) DatabaseCleaner.strategy = (RSpec.current_example.metadata[:js] ? :truncation : :transaction)
DatabaseCleaner.start DatabaseCleaner.start
@ -53,7 +57,6 @@ RSpec.configure do |config|
config.include SpecTestHelper, type: :controller config.include SpecTestHelper, type: :controller
config.include SessionHelper, type: :feature config.include SessionHelper, type: :feature
# Automatically determine spec from directory structure, see: # Automatically determine spec from directory structure, see:
# https://www.relishapp.com/rspec/rspec-rails/v/3-0/docs/directory-structure # https://www.relishapp.com/rspec/rspec-rails/v/3-0/docs/directory-structure
config.infer_spec_type_from_file_location! config.infer_spec_type_from_file_location!