diff --git a/features/kalibro_configuration/listing.feature b/features/kalibro_configuration/listing.feature index e4a12c0..c851dfa 100644 --- a/features/kalibro_configuration/listing.feature +++ b/features/kalibro_configuration/listing.feature @@ -28,3 +28,15 @@ Feature: Configuration listing And I am at the All Configurations page When I click the Show link Then the sample configuration should be there + + @kalibro_configuration_restart + Scenario: Should show only the public or owned configurations + Given I am a regular user + And I am signed in + And I have a sample configuration + And there is a public configuration created + And there is a private configuration created + When I am at the All Configurations page + Then the sample configuration should be there + And the public configuration should be there + And the private configuration should not be there diff --git a/features/step_definitions/kalibro_configuration_steps.rb b/features/step_definitions/kalibro_configuration_steps.rb index d177e16..ba51faf 100644 --- a/features/step_definitions/kalibro_configuration_steps.rb +++ b/features/step_definitions/kalibro_configuration_steps.rb @@ -12,7 +12,7 @@ end Given(/^I have a sample configuration$/) do @kalibro_configuration = FactoryGirl.create(:kalibro_configuration) - FactoryGirl.create(:kalibro_configuration_attributes, {id: nil, user_id: nil, kalibro_configuration_id: @kalibro_configuration.id}) + FactoryGirl.create(:kalibro_configuration_attributes, user_id: FactoryGirl.create(:another_user).id, kalibro_configuration_id: @kalibro_configuration.id) end @@ -58,3 +58,24 @@ Then(/^the sample configuration should be there$/) do expect(page).to have_content(@kalibro_configuration.name) expect(page).to have_content(@kalibro_configuration.description) end + +Given(/^there is a public configuration created$/) do + @public_kc = FactoryGirl.create(:public_kalibro_configuration) + FactoryGirl.create(:kalibro_configuration_attributes, kalibro_configuration_id: @public_kc.id) +end + +Given(/^there is a private configuration created$/) do + @private_kc = FactoryGirl.create(:another_kalibro_configuration) + FactoryGirl.create(:kalibro_configuration_attributes, :private, kalibro_configuration_id: @private_kc.id, user: FactoryGirl.create(:another_user, id: nil, email: "private@email.com")) +end + +Then(/^the public configuration should be there$/) do + expect(page).to have_content(@public_kc.name) + expect(page).to have_content(@public_kc.description) +end + +Then(/^the private configuration should not be there$/) do + expect(page).to have_no_content(@private_kc.name) + expect(page).to have_no_content(@private_kc.description) +end + diff --git a/spec/factories/kalibro_configurations.rb b/spec/factories/kalibro_configurations.rb index 314ddc4..abe3e17 100644 --- a/spec/factories/kalibro_configurations.rb +++ b/spec/factories/kalibro_configurations.rb @@ -15,5 +15,10 @@ FactoryGirl.define do name "Perl" description "Code metrics for Perl." end + + factory :public_kalibro_configuration do + name "Public Kalibro Configuration" + description "Public Configuration." + end end end -- libgit2 0.21.2