Merge pull request #335 from internetee/registry-248

Registry 248
This commit is contained in:
Timo Võhmar 2017-01-24 14:31:20 +02:00 committed by GitHub
commit bd1d056b3d
15 changed files with 204 additions and 7 deletions

View file

@ -1,12 +1,18 @@
FactoryGirl.define do
factory :api_user do
sequence(:username) { |n| "test#{n}" }
password 'a' * 6
password 'a' * ApiUser.min_password_length
roles ['super']
registrar
factory :api_user_epp do
roles %w(epp static_registrant)
end
factory :api_user_with_unlimited_balance do
after :build do |api_user|
api_user.registrar = create(:registrar_with_unlimited_balance)
end
end
end
end

View file

@ -9,5 +9,11 @@ FactoryGirl.define do
zip 'test'
email 'test@test.com'
country_code 'EE'
factory :registrar_with_unlimited_balance do
after :create do |registrar|
create(:account, registrar: registrar, balance: 1_000_000)
end
end
end
end

View file

@ -0,0 +1,14 @@
require 'rails_helper'
RSpec.feature 'CSV Export' do
background do
Setting.api_ip_whitelist_enabled = false
Setting.registrar_ip_whitelist_enabled = false
sign_in_to_registrar_area(user: create(:api_user_with_unlimited_balance))
end
scenario 'exports csv' do
visit registrar_domains_url
click_button t('registrar.domains.index.export_csv_btn')
end
end

View file

@ -1,6 +1,6 @@
require 'rails_helper'
describe ApiUser do
RSpec.describe ApiUser do
context 'class methods' do
before do
Fabricate(:api_user, identity_code: '')
@ -26,7 +26,7 @@ describe ApiUser do
@api_user.valid?
@api_user.errors.full_messages.should match_array([
"Password Password is missing",
"Password is too short (minimum is 6 characters)",
"Password is too short (minimum is #{ApiUser.min_password_length} characters)",
"Registrar Registrar is missing",
"Username Username is missing",
"Roles is missing"
@ -68,4 +68,10 @@ describe ApiUser do
end
end
end
describe '::min_password_length', db: false do
it 'returns minimum password length' do
expect(described_class.min_password_length).to eq(6)
end
end
end

View file

@ -153,6 +153,7 @@ RSpec.describe DomainPresenter do
name
registrant_name
registrant_id
registrant_code
)
domain_delegatable_attributes.each do |attribute_name|

View file

@ -0,0 +1,45 @@
require 'rails_helper'
RSpec.describe Registrar::DomainListCSVPresenter do
let(:domain) { instance_spy(DomainPresenter) }
let(:csv) { CSV.parse(described_class.new(domains: [domain], view: view).to_s, converters: :all) }
describe 'header' do
subject(:header) { csv.first }
it 'is present' do
columns = []
columns[0] = 'Domain'
columns[1] = 'Registrant name'
columns[2] = 'Registrant code'
columns[3] = 'Date of expiry'
columns
expect(header).to eq(columns)
end
end
describe 'row' do
subject(:row) { csv.second }
it 'has domain name' do
expect(domain).to receive(:name).and_return('test name')
expect(row[0]).to eq('test name')
end
it 'has registrant name' do
expect(domain).to receive(:registrant_name).and_return('test registrant name')
expect(row[1]).to eq('test registrant name')
end
it 'has registrant code' do
expect(domain).to receive(:registrant_code).and_return('test registrant code')
expect(row[2]).to eq('test registrant code')
end
it 'has expire date' do
expect(domain).to receive(:expire_date).and_return('expire date')
expect(row[3]).to eq('expire date')
end
end
end

View file

@ -0,0 +1,28 @@
require 'rails_helper'
RSpec.describe Registrar::DomainsController, db: true do
describe '#index' do
before do
sign_in_to_registrar_area
end
it 'responds with success' do
csv_presenter = instance_double(Registrar::DomainListCSVPresenter, to_s: 'csv')
expect(Registrar::DomainListCSVPresenter).to receive(:new).and_return(csv_presenter)
get registrar_domains_url(format: 'csv')
expect(response.body).to eq('csv')
end
it 'returns csv' do
get registrar_domains_url(format: 'csv')
expect(response).to have_http_status(:success)
end
end
def sign_in_to_registrar_area(user: FactoryGirl.create(:api_user))
post registrar_sessions_path, { depp_user: { tag: user.username, password: user.password } }
end
end

View file

@ -0,0 +1,9 @@
require 'rails_helper'
RSpec.describe Registrar::DomainsController do
describe 'routing' do
it 'routes to #index' do
expect(get: '/registrar/domains').to route_to('registrar/domains#index')
end
end
end