From 83ca0656b44c4d88068963d8b7ab5c68048a5e1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Fuentes?= Date: Mon, 29 Jan 2018 16:38:41 +0100 Subject: [PATCH] Add test for all functinality new setting set to nil on test to prevent prevent unforeseen consequences on testing environment --- spec/features/admin/settings_spec.rb | 34 +++++++++++- spec/features/welcome_spec.rb | 18 +++++++ spec/spec_helper.rb | 1 + spec/support/verifiable.rb | 77 +++++++++++++++++++++++++++- 4 files changed, 128 insertions(+), 2 deletions(-) diff --git a/spec/features/admin/settings_spec.rb b/spec/features/admin/settings_spec.rb index 40baf6423..c81b2d323 100644 --- a/spec/features/admin/settings_spec.rb +++ b/spec/features/admin/settings_spec.rb @@ -89,4 +89,36 @@ feature 'Admin settings' do end -end + describe "Skip verification" do + + scenario "deactivate skip verification", :js do + Setting["feature.user.skip_verification"] = 'true' + setting = Setting.where(key: "feature.user.skip_verification").first + + visit admin_settings_path + + accept_alert do + find("#edit_setting_#{setting.id} .button").click + end + + expect(page).to have_content 'Value updated' + end + + scenario "activate skip verification", :js do + Setting["feature.user.skip_verification"] = nil + setting = Setting.where(key: "feature.user.skip_verification").first + + visit admin_settings_path + + accept_alert do + find("#edit_setting_#{setting.id} .button").click + end + + expect(page).to have_content 'Value updated' + + Setting["feature.user.skip_verification"] = nil + end + + end + +end \ No newline at end of file diff --git a/spec/features/welcome_spec.rb b/spec/features/welcome_spec.rb index ead244e06..08256bec1 100644 --- a/spec/features/welcome_spec.rb +++ b/spec/features/welcome_spec.rb @@ -68,4 +68,22 @@ feature "Welcome screen" do expect(page).to have_current_path(root_path) end + scenario 'a regular users sees it the first time he logs in, with all options active + if the setting skip_verification is activated' do + + Setting["feature.user.skip_verification"] = 'true' + + user = create(:user) + + login_through_form_as(user) + + 4.times do |i| + expect(page).to have_css ".user-permissions > ul:nth-child(2) > + li:nth-child(#{i + 1}) > span:nth-child(1)" + end + + Setting["feature.user.skip_verification"] = nil + end + + end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 3479c711e..2598f085e 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -42,6 +42,7 @@ RSpec.configure do |config| DatabaseCleaner.strategy = :transaction I18n.locale = :en load Rails.root.join('db', 'seeds.rb').to_s + Setting["feature.user.skip_verification"] = nil end config.before(:each, type: :feature) do diff --git a/spec/support/verifiable.rb b/spec/support/verifiable.rb index f63cbdaae..dec01cddb 100644 --- a/spec/support/verifiable.rb +++ b/spec/support/verifiable.rb @@ -179,4 +179,79 @@ shared_examples_for "verifiable" do end end -end + describe "methods modified by Setting user.skip_verification" do + + let(:user) {create(:user)} + + before do + Setting["feature.user.skip_verification"] = 'true' + end + + after do + Setting["feature.user.skip_verification"] = nil + end + + describe "#residence_verified?" do + it "is true if skipped" do + expect(user.residence_verified?).to eq(true) + end + end + + describe "#sms_verified?" do + it "is true if skipped" do + expect(user.sms_verified?).to eq(true) + end + end + + describe "#level_two_verified?" do + it "is true if skipped" do + expect(user.level_two_verified?).to eq(true) + + user.update(residence_verified_at: Time.current) + expect(user.level_two_verified?).to eq(true) + + user.update(confirmed_phone: "123456789", residence_verified_at: false) + expect(user.level_two_verified?).to eq(true) + end + end + + describe "#level_three_verified?" do + it "is true if skipped" do + expect(user.level_three_verified?).to eq(true) + end + end + + describe "#verification_email_sent?" do + it "is true if skipped" do + expect(user.verification_email_sent?).to eq(true) + end + end + + describe "#verification_sms_sent?" do + it "is true if skipped" do + user.update(unconfirmed_phone: nil, sms_confirmation_code: "666") + expect(user.verification_sms_sent?).to eq(true) + + user.update(unconfirmed_phone: "666666666", sms_confirmation_code: nil) + expect(user.verification_sms_sent?).to eq(true) + + user.update(unconfirmed_phone: nil, sms_confirmation_code: nil) + expect(user.verification_sms_sent?).to eq(true) + end + end + + describe "#verification_letter_sent?" do + it "is true if skipped" do + user.update(letter_requested_at: nil, letter_verification_code: "666") + expect(user.verification_letter_sent?).to eq(true) + + user.update(letter_requested_at: Time.current, letter_verification_code: nil) + expect(user.verification_letter_sent?).to eq(true) + + user.update(letter_requested_at: nil, letter_verification_code: nil) + expect(user.verification_letter_sent?).to eq(true) + end + end + end + +end \ No newline at end of file