From d2565d646df63e48c26a5e50c521353a7a86d603 Mon Sep 17 00:00:00 2001 From: Martin Lensment Date: Mon, 29 Sep 2014 12:41:15 +0300 Subject: [PATCH] More tests on domain transferring --- spec/features/domain_transfer_spec.rb | 70 ++++++++++++++++++++++++++- spec/support/feature.rb | 2 +- 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/spec/features/domain_transfer_spec.rb b/spec/features/domain_transfer_spec.rb index 57eafb568..df51f062a 100644 --- a/spec/features/domain_transfer_spec.rb +++ b/spec/features/domain_transfer_spec.rb @@ -12,7 +12,7 @@ feature 'Domain transfer', type: :feature do Fabricate(:domain, registrar: zone) end - scenario 'when registrar requests transfer on own domain', js: true do + scenario 'Registrar requests transfer on own domain', js: true do sign_in zone_user click_on 'Domains' click_on 'Transfer domain' @@ -32,7 +32,7 @@ feature 'Domain transfer', type: :feature do expect(page).to have_text('Domain already belongs to the querying registrar') end - scenario 'when other registrar requests transfer' do + scenario 'Other registrar requests transfer with 0 wait time' do sign_in elkdata_user d = Domain.first visit client_domains_path @@ -49,4 +49,70 @@ feature 'Domain transfer', type: :feature do visit client_domains_path expect(page).to have_link(d.name) end + + scenario 'Other registrar requests transfer with 1 wait time' do + s = Setting.find_by(code: 'transfer_wait_time') + s.value = 1 + s.save + + sign_in elkdata_user + d = Domain.first + visit client_domains_path + expect(page).to_not have_link(d.name) + + visit new_client_domain_transfer_path + fill_in 'Domain name', with: d.name + fill_in 'Domain password', with: d.auth_info + click_on 'Request domain transfer' + + expect(page).to have_text('Domain transfer requested!') + expect(page).to have_text('pending') + + visit new_client_domain_transfer_path + fill_in 'Domain name', with: d.name + fill_in 'Domain password', with: d.auth_info + click_on 'Request domain transfer' + + expect(page).to have_text('Domain transfer requested!') + expect(page).to have_text('pending') + + visit client_domains_path + expect(page).to_not have_link(d.name) + end + + scenario 'Domain owner approves request' do + d = Domain.first + d.domain_transfers.create( + status: DomainTransfer::PENDING, + transfer_requested_at: Time.zone.now, + transfer_to: elkdata, + transfer_from: zone + ) + + sign_in elkdata_user + visit new_client_domain_transfer_path + fill_in 'Domain name', with: d.name + fill_in 'Domain password', with: d.auth_info + click_on 'Request domain transfer' + + expect(page).to have_text('Domain transfer requested!') + expect(page).to_not have_button('Approve') + + sign_in zone_user + + visit new_client_domain_transfer_path + fill_in 'Domain name', with: d.name + fill_in 'Domain password', with: d.auth_info + click_on 'Request domain transfer' + + expect(page).to have_button('Approve') + + click_on 'Approve' + expect(page).to have_text('Domain transfer approved!') + expect(page).to have_text('clientApproved') + + sign_in elkdata_user + visit client_domains_path + expect(page).to have_link(d.name) + end end diff --git a/spec/support/feature.rb b/spec/support/feature.rb index 9c4c59c78..5dd9fcde2 100644 --- a/spec/support/feature.rb +++ b/spec/support/feature.rb @@ -1,6 +1,6 @@ module Feature def sign_in(user) - visit root_path + visit '/logout' click_on 'ID card (gitlab)' if user.username == 'gitlab' click_on 'ID card (zone)' if user.username == 'zone' click_on 'ID card (elkdata)' if user.username == 'elkdata'