diff --git a/app/views/ngo_area/adoption_interests/index.html.erb b/app/views/ngo_area/adoption_interests/index.html.erb index b621c607..9b575137 100644 --- a/app/views/ngo_area/adoption_interests/index.html.erb +++ b/app/views/ngo_area/adoption_interests/index.html.erb @@ -14,7 +14,9 @@ - + + + @@ -22,7 +24,9 @@ <% @adoption_interests.each do |adoption_interest| %> + + diff --git a/db/seeds.rb b/db/seeds.rb index 8b86fc40..c877e50c 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -3,6 +3,7 @@ Pet.delete_all Ngo.delete_all User.delete_all +AdoptionInterest.delete_all puts 'Creating NGOs' @@ -14,7 +15,7 @@ email: Faker::Internet.email, site: Faker::Internet.url, cnpj: CNPJ.generate, - date_start: Faker::Date.backward(1000), + date_start: Faker::Date.backward(days: 1000), active: true, city: Faker::Address.city, state: Faker::Address.state, @@ -34,7 +35,7 @@ email: Faker::Internet.email, site: Faker::Internet.url, cnpj: CNPJ.generate, - date_start: Faker::Date.backward(1000), + date_start: Faker::Date.backward(days: 1000), active: true ) @@ -68,7 +69,7 @@ pet = Pet.create!( name: Faker::Name.first_name, age: Random.rand(10), - description: Faker::Lorem.paragraph_by_chars([100, 50, 200, 300, 500].sample), + description: Faker::Lorem.paragraph_by_chars(number: [100, 50, 200, 300, 500].sample), sex: ['f', 'm'].sample, active: true, ngo_id: ngo_ids.sample diff --git a/spec/rails_helper.rb b/spec/rails_helper.rb index 22bb70f0..794ea628 100644 --- a/spec/rails_helper.rb +++ b/spec/rails_helper.rb @@ -82,6 +82,6 @@ def login_user_capybara(trait) config.before(:each) do |_| # TO-DO: Configure specs to run on pt-BR as default locale. I18n.default_locale = :en - stub_const('ApplicationController::DEFAULT_LOCALE', 'en') + stub_const("#{ApplicationController}::DEFAULT_LOCALE", 'en') end end diff --git a/spec/views/ngo_area/adoption_interests/index.html.erb_spec.rb b/spec/views/ngo_area/adoption_interests/index.html.erb_spec.rb new file mode 100644 index 00000000..b1939d51 --- /dev/null +++ b/spec/views/ngo_area/adoption_interests/index.html.erb_spec.rb @@ -0,0 +1,54 @@ +require 'rails_helper' + +describe 'adoption_interests/index.html.erb', type: :feature do + describe 'permissions' do + let!(:ngo_1) { create(:ngo) } + let!(:ngo_2) { create(:ngo) } + let!(:pet_1) { create(:pet, ngo: ngo_1) } + let!(:pet_2) { create(:pet, ngo: ngo_2) } + let!(:public_user_1) { create(:user) } + let!(:public_user_2) { create(:user) } + let!(:adoption_interest_1) { create(:adoption_interest, user: public_user_1, pet: pet_1) } + let!(:adoption_interest_2) { create(:adoption_interest, user: public_user_2, pet: pet_2) } + + context 'when user has ngo privileges' do + let!(:current_user) do + ngo_user = create(:user, :ngo_privileges) + ngo_user.ngos << ngo_1 + + ngo_user + end + + before do + login_as(current_user, scope: :user) + end + + it 'shows adoption requests from ngo 1 pets' do + visit ngo_area_adoption_interests_path + + expect(page).to have_link(nil, href: edit_ngo_area_pet_path(pet_1)) + end + + it 'does not show adoption requests from ngo 2 pets' do + visit ngo_area_adoption_interests_path + + expect(page).not_to have_link(nil, href: edit_ngo_area_pet_path(pet_2)) + end + end + + context 'when user has admin privileges' do + let!(:current_user) { create(:user, :admin_privileges) } + + before do + login_as(current_user, scope: :user) + end + + it 'shows show adoption from all ngos' do + visit ngo_area_adoption_interests_path + + expect(page).to have_link(nil, href: edit_ngo_area_pet_path(pet_1)) + expect(page).to have_link(nil, href: edit_ngo_area_pet_path(pet_2)) + end + end + end +end
Email UsuárioNomeEmailTelefone Pet Data
<%=adoption_interest.user.name%> <%=adoption_interest.user.email%><%=adoption_interest.user.phone%> <%=adoption_interest.pet.name%> <%=I18n.l(adoption_interest.created_at, format: :default)%>