diff --git a/spec/factories.rb b/spec/factories.rb index 2ea67d821..4e2c78ac2 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -7,9 +7,17 @@ FactoryGirl.define do terms_of_service '1' confirmed_at { Time.now } + trait :incomplete_verification do + after :create do |user| + create(:failed_census_call, user: user) + end + end + trait :level_two do residence_verified_at Time.now + unconfirmed_phone "611111111" confirmed_phone "611111111" + sms_confirmation_code "1234" document_number "12345678Z" end @@ -52,6 +60,14 @@ FactoryGirl.define do end end + factory :failed_census_call do + user + document_number '11111111A' + document_type 1 + date_of_birth Date.new(1900, 1, 1) + postal_code '28000' + end + factory :verification_sms, class: Verification::Sms do phone "699999999" end diff --git a/spec/features/admin/verifications_spec.rb b/spec/features/admin/verifications_spec.rb new file mode 100644 index 000000000..f21fb1607 --- /dev/null +++ b/spec/features/admin/verifications_spec.rb @@ -0,0 +1,76 @@ +require 'rails_helper' + +feature 'Incomplete verifications' do + + background do + admin = create(:administrator) + login_as(admin.user) + end + + scenario 'Index' do + incompletely_verified_user1 = create(:user, :incomplete_verification) + incompletely_verified_user2 = create(:user, :incomplete_verification) + never_tried_to_verify_user = create(:user) + verified_user = create(:user, :level_two) + + visit admin_verifications_path + + expect(page).to have_content(incompletely_verified_user1.username) + expect(page).to have_content(incompletely_verified_user2.username) + expect(page).to_not have_content(never_tried_to_verify_user.username) + expect(page).to_not have_content(verified_user.username) + end + + scenario 'Search' do + verified_user = create(:user, :level_two, username: "Juan Carlos") + unverified_user = create(:user, :incomplete_verification, username: "Juan_anonymous") + unverified_user = create(:user, :incomplete_verification, username: "Isabel_anonymous") + + visit admin_verifications_path + + fill_in "name_or_email", with: "juan" + click_button "Search" + + expect(page).to have_content("Juan_anonymous") + expect(page).to_not have_content("Juan Carlos") + expect(page).to_not have_content("Isabel_anonymous") + end + + + scenario "Residence unverified" do + incompletely_verified_user = create(:user, :incomplete_verification) + + visit admin_verifications_path + + within "#user_#{incompletely_verified_user.id}" do + expect(page).to have_content "Spanish ID" + expect(page).to have_content "11111111A" + expect(page).to have_content Date.new(1900, 1, 1) + expect(page).to have_content "28000" + end + end + + scenario "Phone not given" do + incompletely_verified_user = create(:user, residence_verified_at: Time.now, unconfirmed_phone: nil) + + visit admin_verifications_path + + within "#user_#{incompletely_verified_user.id}" do + expect(page).to have_content 'Phone not given' + end + end + + scenario "SMS code not confirmed" do + incompletely_verified_user = create(:user, residence_verified_at: Time.now, + unconfirmed_phone: "611111111", + sms_confirmation_code: "1234", + confirmed_phone: nil) + + visit admin_verifications_path + + within "#user_#{incompletely_verified_user.id}" do + expect(page).to have_content 'Has not confirmed the sms code' + end + end + +end