Refactor consumer factory

This commit is contained in:
Sebastian Serth
2022-09-22 13:33:54 +02:00
committed by Sebastian Serth
parent 6ad5274e67
commit e3018c1847
2 changed files with 28 additions and 8 deletions

View File

@ -10,17 +10,18 @@ describe ConsumersController do
describe 'POST #create' do
context 'with a valid consumer' do
let(:perform_request) { proc { post :create, params: {consumer: attributes_for(:consumer)} } }
let(:perform_request) { proc { post :create, params: {consumer: build(:consumer, name: 'New Consumer').attributes} } }
before { perform_request.call }
context 'when the request is performed' do
before { perform_request.call }
expect_assigns(consumer: Consumer)
expect_assigns(consumer: Consumer)
expect_redirect(Consumer.last)
end
it 'creates the consumer' do
expect { perform_request.call }.to change(Consumer, :count).by(1)
end
expect_redirect(Consumer.last)
end
context 'with an invalid consumer' do
@ -30,6 +31,22 @@ describe ConsumersController do
expect_http_status(:ok)
expect_template(:new)
end
context 'with a duplicated consumer' do
let(:perform_request) { proc { post :create, params: {consumer: build(:consumer).attributes} } }
context 'when the request is performed' do
before { perform_request.call }
expect_assigns(consumer: Consumer)
expect_http_status(:ok)
expect_template(:new)
end
it 'does not create a new consumer' do
expect { perform_request.call }.not_to change(Consumer, :count)
end
end
end
describe 'DELETE #destroy' do