From efb63399b2695fa4590420b91a16a25877cab1a1 Mon Sep 17 00:00:00 2001 From: Artur Beljajev Date: Fri, 10 May 2019 13:13:19 +0300 Subject: [PATCH] Refactor registrars - Reorganize views - Improve database structure - Use default translations - Combine tests --- .../admin/registrars_controller.rb | 10 +-- app/models/registrar.rb | 16 ++-- app/views/admin/registrars/_form.html.erb | 59 +------------ .../admin/registrars/form/_address.html.erb | 59 +++++++++++++ app/views/admin/registrars/show.html.erb | 12 +-- .../registrars/{ => show}/_billing.html.erb | 2 +- .../registrars/{ => show}/_contacts.html.erb | 10 +-- .../registrars/{ => show}/_details.html.erb | 2 +- .../{ => show}/_preferences.html.erb | 0 .../registrars/{ => show}/_users.html.erb | 0 .../registrars/{ => show}/_white_ips.html.erb | 0 app/views/registrant/registrars/show.haml | 12 +-- config/locales/admin/registrars.en.yml | 46 +++++----- config/locales/en.yml | 2 - ...90240_prefix_registrars_address_columns.rb | 9 ++ db/structure.sql | 12 +-- spec/factories/registrar.rb | 10 +-- test/fixtures/registrars.yml | 18 ++-- test/models/registrar/vat_test.rb | 12 +-- test/models/registrar_test.rb | 44 ++++++---- .../admin_area/contact_versions_test.rb | 21 ++--- .../system/admin_area/domain_versions_test.rb | 25 +++--- .../admin_area/registrars/delete_test.rb | 30 ------- .../admin_area/registrars/details_test.rb | 26 ------ .../system/admin_area/registrars/edit_test.rb | 69 --------------- test/system/admin_area/registrars/new_test.rb | 50 ----------- test/system/admin_area/registrars_test.rb | 84 +++++++++++++++++++ 27 files changed, 287 insertions(+), 353 deletions(-) create mode 100644 app/views/admin/registrars/form/_address.html.erb rename app/views/admin/registrars/{ => show}/_billing.html.erb (99%) rename app/views/admin/registrars/{ => show}/_contacts.html.erb (58%) rename app/views/admin/registrars/{ => show}/_details.html.erb (91%) rename app/views/admin/registrars/{ => show}/_preferences.html.erb (100%) rename app/views/admin/registrars/{ => show}/_users.html.erb (100%) rename app/views/admin/registrars/{ => show}/_white_ips.html.erb (100%) create mode 100644 db/migrate/20190510090240_prefix_registrars_address_columns.rb delete mode 100644 test/system/admin_area/registrars/delete_test.rb delete mode 100644 test/system/admin_area/registrars/details_test.rb delete mode 100644 test/system/admin_area/registrars/edit_test.rb delete mode 100644 test/system/admin_area/registrars/new_test.rb create mode 100644 test/system/admin_area/registrars_test.rb diff --git a/app/controllers/admin/registrars_controller.rb b/app/controllers/admin/registrars_controller.rb index 6eb2e0bcf..1a92e67ed 100644 --- a/app/controllers/admin/registrars_controller.rb +++ b/app/controllers/admin/registrars_controller.rb @@ -58,12 +58,12 @@ module Admin def registrar_params params.require(:registrar).permit(:name, :reg_no, - :street, - :city, - :state, - :zip, - :country_code, :email, + :address_street, + :address_zip, + :address_city, + :address_state, + :address_country_code, :phone, :website, :code, diff --git a/app/models/registrar.rb b/app/models/registrar.rb index d1da1c317..8c3de65b9 100644 --- a/app/models/registrar.rb +++ b/app/models/registrar.rb @@ -13,7 +13,7 @@ class Registrar < ActiveRecord::Base delegate :balance, to: :cash_account, allow_nil: true - validates :name, :reg_no, :country_code, :email, :code, presence: true + validates :name, :reg_no, :address_country_code, :email, :code, presence: true validates :name, :code, uniqueness: true validates :accounting_customer_code, presence: true validates :language, presence: true @@ -73,11 +73,11 @@ class Registrar < ActiveRecord::Base buyer: self, buyer_name: name, buyer_reg_no: reg_no, - buyer_country_code: country_code, - buyer_state: state, - buyer_street: street, - buyer_city: city, - buyer_zip: zip, + buyer_country_code: address_country_code, + buyer_state: address_state, + buyer_street: address_street, + buyer_city: address_city, + buyer_zip: address_zip, buyer_phone: phone, buyer_url: website, buyer_email: email, @@ -104,7 +104,7 @@ class Registrar < ActiveRecord::Base end def address - [street, city, state, zip].reject(&:blank?).compact.join(', ') + [address_street, address_city, address_state, address_zip].reject(&:blank?).compact.join(', ') end def to_s @@ -112,7 +112,7 @@ class Registrar < ActiveRecord::Base end def country - Country.new(country_code) + Country.new(address_country_code) end def code=(code) diff --git a/app/views/admin/registrars/_form.html.erb b/app/views/admin/registrars/_form.html.erb index 71c4fb68f..65d18f2e7 100644 --- a/app/views/admin/registrars/_form.html.erb +++ b/app/views/admin/registrars/_form.html.erb @@ -59,64 +59,7 @@ -
-
-
-
-
- <%= t(:address) %> -
-
-
-
-
- <%= f.label :street %> -
-
- <%= f.text_field(:street, class: 'form-control') %> -
-
- -
-
- <%= f.label :city %> -
-
- <%= f.text_field(:city, class: 'form-control') %> -
-
- -
-
- <%= f.label :state %> -
-
- <%= f.text_field(:state, class: 'form-control') %> -
-
- -
-
- <%= f.label :zip %> -
-
- <%= f.text_field(:zip, class: 'form-control') %> -
-
- -
-
- <%= f.label :country_code, t(:country) %> -
-
- <%= f.select(:country_code, SortedCountry.all_options(f.object.country_code), {}, class: 'form-control') %> -
-
-
-
-
-
- + <%= render 'admin/registrars/form/address', f: f %> <%= render 'admin/registrars/form/billing', f: f %>
diff --git a/app/views/admin/registrars/form/_address.html.erb b/app/views/admin/registrars/form/_address.html.erb new file mode 100644 index 000000000..2fe1217a0 --- /dev/null +++ b/app/views/admin/registrars/form/_address.html.erb @@ -0,0 +1,59 @@ +
+
+
+
+
+ <%= t '.header' %> +
+
+
+
+
+ <%= f.label :street %> +
+
+ <%= f.text_field :address_street, class: 'form-control' %> +
+
+ +
+
+ <%= f.label :city %> +
+
+ <%= f.text_field :address_city, class: 'form-control' %> +
+
+ +
+
+ <%= f.label :state %> +
+
+ <%= f.text_field :address_state, class: 'form-control' %> +
+
+ +
+
+ <%= f.label :zip %> +
+
+ <%= f.text_field :address_zip, class: 'form-control' %> +
+
+ +
+
+ <%= f.label :address_country_code, t(:country) %> +
+
+ <%= f.select :address_country_code, SortedCountry.all_options(f.object.address_country_code), {}, class: 'form-control' %> +
+
+ +

<%= t '.hint' %>

+
+
+
+
\ No newline at end of file diff --git a/app/views/admin/registrars/show.html.erb b/app/views/admin/registrars/show.html.erb index 65435ef77..62e7a5df1 100644 --- a/app/views/admin/registrars/show.html.erb +++ b/app/views/admin/registrars/show.html.erb @@ -28,23 +28,23 @@
- <%= render 'details', registrar: @registrar %> + <%= render 'admin/registrars/show/details', registrar: @registrar %>
- <%= render 'contacts', registrar: @registrar %> - <%= render 'billing', registrar: @registrar %> - <%= render 'preferences', registrar: registrar %> + <%= render 'admin/registrars/show/contacts', registrar: @registrar %> + <%= render 'admin/registrars/show/billing', registrar: @registrar %> + <%= render 'admin/registrars/show/preferences', registrar: registrar %>
- <%= render 'users', registrar: @registrar %> + <%= render 'admin/registrars/show/users', registrar: @registrar %>
- <%= render 'white_ips', registrar: @registrar %> + <%= render 'admin/registrars/show/white_ips', registrar: @registrar %>
diff --git a/app/views/admin/registrars/_billing.html.erb b/app/views/admin/registrars/show/_billing.html.erb similarity index 99% rename from app/views/admin/registrars/_billing.html.erb rename to app/views/admin/registrars/show/_billing.html.erb index 8b2e83ee9..7ed9826ad 100644 --- a/app/views/admin/registrars/_billing.html.erb +++ b/app/views/admin/registrars/show/_billing.html.erb @@ -21,4 +21,4 @@
<%= registrar.reference_no %>
- + \ No newline at end of file diff --git a/app/views/admin/registrars/_contacts.html.erb b/app/views/admin/registrars/show/_contacts.html.erb similarity index 58% rename from app/views/admin/registrars/_contacts.html.erb rename to app/views/admin/registrars/show/_contacts.html.erb index 7599c68c3..f467e6a51 100644 --- a/app/views/admin/registrars/_contacts.html.erb +++ b/app/views/admin/registrars/show/_contacts.html.erb @@ -5,17 +5,17 @@
-
<%= t(:country) %>
+
<%= Registrar.human_attribute_name :country %>
<%= @registrar.country %>
-
<%= t(:address) %>
+
<%= Registrar.human_attribute_name :address %>
<%= @registrar.address %>
-
<%= t(:contact_phone) %>
+
<%= Registrar.human_attribute_name :phone %>
<%= @registrar.phone %>
-
<%= t(:contact_email) %>
+
<%= Registrar.human_attribute_name :email %>
<%= @registrar.email %>
- + \ No newline at end of file diff --git a/app/views/admin/registrars/_details.html.erb b/app/views/admin/registrars/show/_details.html.erb similarity index 91% rename from app/views/admin/registrars/_details.html.erb rename to app/views/admin/registrars/show/_details.html.erb index 3fc884e5c..9ae9aac3f 100644 --- a/app/views/admin/registrars/_details.html.erb +++ b/app/views/admin/registrars/show/_details.html.erb @@ -15,7 +15,7 @@
<%= registrar.code %>
<%= Registrar.human_attribute_name :balance %>
-
<%= registrar.balance %>
+
<%= number_to_currency registrar.balance %>
<%= Registrar.human_attribute_name :website %>
<%= registrar.website %>
diff --git a/app/views/admin/registrars/_preferences.html.erb b/app/views/admin/registrars/show/_preferences.html.erb similarity index 100% rename from app/views/admin/registrars/_preferences.html.erb rename to app/views/admin/registrars/show/_preferences.html.erb diff --git a/app/views/admin/registrars/_users.html.erb b/app/views/admin/registrars/show/_users.html.erb similarity index 100% rename from app/views/admin/registrars/_users.html.erb rename to app/views/admin/registrars/show/_users.html.erb diff --git a/app/views/admin/registrars/_white_ips.html.erb b/app/views/admin/registrars/show/_white_ips.html.erb similarity index 100% rename from app/views/admin/registrars/_white_ips.html.erb rename to app/views/admin/registrars/show/_white_ips.html.erb diff --git a/app/views/registrant/registrars/show.haml b/app/views/registrant/registrars/show.haml index 678e387de..f5e0f40f4 100644 --- a/app/views/registrant/registrars/show.haml +++ b/app/views/registrant/registrars/show.haml @@ -13,7 +13,7 @@ %h3.panel-title= t(:general) .panel-body %dl.dl-horizontal - %dt= t(:name) + %dt= Registrar.human_attribute_name :name %dd= @registrar.name %dt= Registrar.human_attribute_name :reg_no @@ -22,7 +22,7 @@ %dt= Registrar.human_attribute_name :vat_no %dd= @registrar.vat_no - %dt= t(:id) + %dt= Registrar.human_attribute_name :code %dd= @registrar.code .col-md-6 @@ -31,14 +31,14 @@ %h3.panel-title= t(:contact) .panel-body %dl.dl-horizontal - %dt= t(:country) + %dt= Registrar.human_attribute_name :country %dd= @registrar.country - %dt= t(:address) + %dt= Registrar.human_attribute_name :address %dd= @registrar.address - %dt= t(:contact_phone) + %dt= Registrar.human_attribute_name :phone %dd= @registrar.phone - %dt= t(:contact_email) + %dt= Registrar.human_attribute_name :email %dd= @registrar.email diff --git a/config/locales/admin/registrars.en.yml b/config/locales/admin/registrars.en.yml index 43f607911..e08af5ad1 100644 --- a/config/locales/admin/registrars.en.yml +++ b/config/locales/admin/registrars.en.yml @@ -13,12 +13,29 @@ en: delete_btn: Delete delete_btn_confirm: Are you sure you want delete registrar? + details: + header: Details + + contacts: + header: Contacts + + billing: + header: Billing + + preferences: + header: Preferences + + users: + header: API Users + new_btn: New API user + + white_ips: + header: Whitelisted IPs + new_btn: New whitelisted IP + edit: header: Edit registrar - billing: - header: Billing - create: created: Registrar has been successfully created @@ -33,27 +50,14 @@ en: create_btn: Create registrar update_btn: Update registrar + address: + header: Address + hint: Used as a billing address + billing: header: Billing no_reference_number_hint: Reference number will be generated automatically disabled_reference_number_hint: Reference number cannot be changed preferences: - header: Preferences - - details: - header: Details - - contacts: - header: Contacts - - preferences: - header: Preferences - - users: - header: API Users - new_btn: New API user - - white_ips: - header: Whitelisted IPs - new_btn: New whitelisted IP + header: Preferences \ No newline at end of file diff --git a/config/locales/en.yml b/config/locales/en.yml index 5033588f6..066f569e1 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -375,8 +375,6 @@ en: choose: 'Choose...' created_before: 'Created before' created_after: 'Created after' - contact_phone: 'Contact phone' - contact_email: 'Contact e-mail' address_help: 'Street name, house no - apartment no, city, county, country, zip' download: 'Download' failed_to_create_certificate: 'Failed to create certificate!' diff --git a/db/migrate/20190510090240_prefix_registrars_address_columns.rb b/db/migrate/20190510090240_prefix_registrars_address_columns.rb new file mode 100644 index 000000000..4c2f674bc --- /dev/null +++ b/db/migrate/20190510090240_prefix_registrars_address_columns.rb @@ -0,0 +1,9 @@ +class PrefixRegistrarsAddressColumns < ActiveRecord::Migration + def change + rename_column :registrars, :street, :address_street + rename_column :registrars, :zip, :address_zip + rename_column :registrars, :city, :address_city + rename_column :registrars, :state, :address_state + rename_column :registrars, :country_code, :address_country_code + end +end diff --git a/db/structure.sql b/db/structure.sql index cc0931e58..1e746e1a7 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -2188,11 +2188,11 @@ CREATE TABLE public.registrars ( phone character varying, email character varying NOT NULL, billing_email character varying, - country_code character varying NOT NULL, - state character varying, - city character varying, - street character varying, - zip character varying, + address_country_code character varying NOT NULL, + address_state character varying, + address_city character varying, + address_street character varying, + address_zip character varying, code character varying NOT NULL, website character varying, accounting_customer_code character varying NOT NULL, @@ -4945,3 +4945,5 @@ INSERT INTO schema_migrations (version) VALUES ('20190328151838'); INSERT INTO schema_migrations (version) VALUES ('20190415120246'); +INSERT INTO schema_migrations (version) VALUES ('20190510090240'); + diff --git a/spec/factories/registrar.rb b/spec/factories/registrar.rb index 82c492bb0..07642e3a8 100644 --- a/spec/factories/registrar.rb +++ b/spec/factories/registrar.rb @@ -3,12 +3,12 @@ FactoryBot.define do sequence(:name) { |n| "test#{n}" } sequence(:code) { |n| "test#{n}" } sequence(:reg_no) { |n| "test#{n}" } - street 'test' - city 'test' - state 'test' - zip 'test' email 'test@test.com' - country_code 'US' + address_street 'test' + address_zip 'test' + address_city 'test' + address_state 'test' + address_country_code 'US' accounting_customer_code 'test' language 'en' sequence(:reference_no) { |n| "1234#{n}" } diff --git a/test/fixtures/registrars.yml b/test/fixtures/registrars.yml index 7f7f97ad2..b20adb197 100644 --- a/test/fixtures/registrars.yml +++ b/test/fixtures/registrars.yml @@ -3,11 +3,11 @@ bestnames: reg_no: 1234 code: bestnames email: info@bestnames.test - street: Main Street - zip: 12345 - city: New York - state: New York - country_code: US + address_street: Main Street 1 + address_zip: 1234 + address_city: NY + address_state: NY State + address_country_code: US accounting_customer_code: bestnames language: en billing_email: billing@bestnames.test @@ -19,18 +19,18 @@ goodnames: reg_no: 12345 code: goodnames email: info@goodnames.test - country_code: DE + address_country_code: US vat_no: DE123456789 accounting_customer_code: goodnames language: en reference_no: 26 not_in_use: - name: any + name: Not in use reg_no: any code: any email: any@example.com - country_code: US + address_country_code: US vat_no: any accounting_customer_code: any language: en @@ -41,7 +41,7 @@ invalid: reg_no: any code: another email: any - country_code: US + address_country_code: US vat_no: any accounting_customer_code: any language: en diff --git a/test/models/registrar/vat_test.rb b/test/models/registrar/vat_test.rb index 2dc5de3ce..aae017690 100644 --- a/test/models/registrar/vat_test.rb +++ b/test/models/registrar/vat_test.rb @@ -15,7 +15,7 @@ class RegistrarVATTest < ActiveSupport::TestCase def test_apply_vat_rate_from_registry_when_registrar_is_local_vat_payer Setting.registry_country_code = 'US' - @registrar.country_code = 'US' + @registrar.address_country_code = 'US' Registry.instance.stub(:vat_rate, BigDecimal('5.5')) do assert_equal BigDecimal('5.5'), @registrar.effective_vat_rate @@ -32,13 +32,13 @@ class RegistrarVATTest < ActiveSupport::TestCase def test_apply_vat_rate_from_registrar_when_registrar_is_foreign_vat_payer Setting.registry_country_code = 'US' - @registrar.country_code = 'DE' + @registrar.address_country_code = 'DE' @registrar.vat_rate = BigDecimal('5.6') assert_equal BigDecimal('5.6'), @registrar.effective_vat_rate end def test_require_vat_rate_when_registrar_is_foreign_vat_payer_and_vat_no_is_absent - @registrar.country_code = 'DE' + @registrar.address_country_code = 'DE' @registrar.vat_no = '' @registrar.vat_rate = '' @@ -50,7 +50,7 @@ class RegistrarVATTest < ActiveSupport::TestCase end def test_require_no_vat_rate_when_registrar_is_foreign_vat_payer_and_vat_no_is_present - @registrar.country_code = 'DE' + @registrar.address_country_code = 'DE' @registrar.vat_no = 'valid' @registrar.vat_rate = 1 @@ -61,7 +61,7 @@ class RegistrarVATTest < ActiveSupport::TestCase end def test_vat_rate_validation - @registrar.country_code = 'DE' + @registrar.address_country_code = 'DE' @registrar.vat_no = '' @registrar.vat_rate = -1 @@ -78,7 +78,7 @@ class RegistrarVATTest < ActiveSupport::TestCase end def test_serializes_and_deserializes_vat_rate - @registrar.country_code = 'DE' + @registrar.address_country_code = 'DE' @registrar.vat_rate = BigDecimal('25.5') @registrar.save! @registrar.reload diff --git a/test/models/registrar_test.rb b/test/models/registrar_test.rb index 312822a8f..69be5efb8 100644 --- a/test/models/registrar_test.rb +++ b/test/models/registrar_test.rb @@ -5,8 +5,8 @@ class RegistrarTest < ActiveSupport::TestCase @registrar = registrars(:bestnames) end - def test_default_fixture_is_valid - assert @registrar.valid?, proc { @registrar.errors.full_messages } + def test_valid_registrar_is_valid + assert valid_registrar.valid?, proc { valid_registrar.errors.full_messages } end def test_invalid_fixture_is_invalid @@ -14,33 +14,33 @@ class RegistrarTest < ActiveSupport::TestCase end def test_invalid_without_name - @registrar.name = '' - assert @registrar.invalid? + registrar = valid_registrar + registrar.name = '' + assert registrar.invalid? end def test_invalid_without_reg_no - @registrar.reg_no = '' - assert @registrar.invalid? + registrar = valid_registrar + registrar.reg_no = '' + assert registrar.invalid? end def test_invalid_without_email - @registrar.email = '' - assert @registrar.invalid? + registrar = valid_registrar + registrar.email = '' + assert registrar.invalid? end def test_invalid_without_accounting_customer_code - @registrar.accounting_customer_code = '' - assert @registrar.invalid? - end - - def test_invalid_without_country_code - @registrar.country_code = '' - assert @registrar.invalid? + registrar = valid_registrar + registrar.accounting_customer_code = '' + assert registrar.invalid? end def test_invalid_without_language - @registrar.language = '' - assert @registrar.invalid? + registrar = valid_registrar + registrar.language = '' + assert registrar.invalid? end def test_has_default_language @@ -56,7 +56,9 @@ class RegistrarTest < ActiveSupport::TestCase end def test_full_address - assert_equal 'Main Street, New York, New York, 12345', @registrar.address + registrar = Registrar.new(address_street: 'Main Street 1', address_zip: '1234', + address_city: 'NY', address_state: 'NY State') + assert_equal 'Main Street 1, NY, NY State, 1234', registrar.address end def test_validates_reference_number_format @@ -96,4 +98,10 @@ class RegistrarTest < ActiveSupport::TestCase Setting.days_to_keep_invoices_active = @original_days_to_keep_invoices_active_setting end + + private + + def valid_registrar + registrars(:bestnames) + end end diff --git a/test/system/admin_area/contact_versions_test.rb b/test/system/admin_area/contact_versions_test.rb index d35d72e36..5028b83fe 100644 --- a/test/system/admin_area/contact_versions_test.rb +++ b/test/system/admin_area/contact_versions_test.rb @@ -4,6 +4,8 @@ class ContactVersionsTest < ApplicationSystemTestCase def setup super + @registrar = registrars(:bestnames) + create_contact_with_history sign_in users(:admin) end @@ -16,18 +18,13 @@ class ContactVersionsTest < ApplicationSystemTestCase def create_contact_with_history sql = <<-SQL.squish - INSERT INTO registrars (id, name, reg_no, email, country_code, code, - accounting_customer_code, language, reference_no) - VALUES (75, 'test_registrar', 'test123', 'test@test.com', 'EE', 'TEST123', - 'test123', 'en', '1234'); - INSERT INTO contacts (id, code, email, auth_info, registrar_id) - VALUES (75, 'test_code', 'test@inbox.test', '8b4d462aa04194ca78840a', 75); + VALUES (75, 'test_code', 'test@inbox.test', '8b4d462aa04194ca78840a', #{@registrar.id}); INSERT INTO log_contacts (item_type, item_id, event, whodunnit, object, object_changes, created_at, session, children, ident_updated_at, uuid) VALUES ('Contact', 75, 'update', '1-AdminUser', - '{"id": 75, "code": "test_code", "auth_info": "8b4d462aa04194ca78840a", "registrar_id": 75, "old_field": "value"}', + '{"id": 75, "code": "test_code", "auth_info": "8b4d462aa04194ca78840a", "registrar_id": #{@registrar.id}, "old_field": "value"}', '{"other_made_up_field": "value"}', '2018-04-23 15:50:48.113491', '2018-04-23 12:44:56', '{"legal_documents":[null]}', null, null @@ -42,16 +39,20 @@ class ContactVersionsTest < ApplicationSystemTestCase end def test_removed_fields_are_not_causing_errors_in_index_view + assert_equal 'Best Names', @registrar.name + visit admin_contact_versions_path - assert_text 'test_registrar' + assert_text 'Best Names' assert_text 'update 23.04.18, 18:50' end def test_removed_fields_are_not_causing_errors_in_details_view + assert_equal 'Best Names', @registrar.name + version_id = Contact.find(75).versions.last visit admin_contact_version_path(version_id) - assert_text 'test_registrar' + assert_text 'Best Names' assert_text '23.04.18, 18:50 update 1-AdminUser' end -end +end \ No newline at end of file diff --git a/test/system/admin_area/domain_versions_test.rb b/test/system/admin_area/domain_versions_test.rb index f93e2b153..0d7637f45 100644 --- a/test/system/admin_area/domain_versions_test.rb +++ b/test/system/admin_area/domain_versions_test.rb @@ -4,6 +4,8 @@ class DomainVersionsTest < ApplicationSystemTestCase def setup super + @registrar = registrars(:bestnames) + create_domain_with_history sign_in users(:admin) end @@ -16,22 +18,17 @@ class DomainVersionsTest < ApplicationSystemTestCase def create_domain_with_history sql = <<-SQL.squish - INSERT INTO registrars (id, name, reg_no, email, country_code, code, - accounting_customer_code, language, reference_no) - VALUES (54, 'test_registrar', 'test123', 'test@test.com', 'EE', 'TEST123', - 'test123', 'en', '1234'); - INSERT INTO contacts (id, code, email, auth_info, registrar_id) - VALUES (54, 'test_code', 'test@inbox.test', '8b4d462aa04194ca78840a', 54); + VALUES (54, 'test_code', 'test@inbox.test', '8b4d462aa04194ca78840a', #{@registrar.id}); INSERT INTO domains (id, registrar_id, valid_to, registrant_id, transfer_code) - VALUES (54, 54, '2018-06-23T12:14:02.732+03:00', 54, 'transfer_code'); + VALUES (54, #{@registrar.id}, '2018-06-23T12:14:02.732+03:00', 54, 'transfer_code'); INSERT INTO log_domains (item_type, item_id, event, whodunnit, object, object_changes, created_at, session, children) VALUES ('Domain', 54, 'update', '1-AdminUser', - '{"id": 54, "registrar_id": 54, "valid_to": "2018-07-23T12:14:05.583+03:00", "registrant_id": 54, "transfer_code": "transfer_code", "valid_from": "2017-07-23T12:14:05.583+03:00"}', + '{"id": 54, "registrar_id": #{@registrar.id}, "valid_to": "2018-07-23T12:14:05.583+03:00", "registrant_id": 54, "transfer_code": "transfer_code", "valid_from": "2017-07-23T12:14:05.583+03:00"}', '{"foo": "bar", "other_made_up_field": "value"}', '2018-04-23 15:50:48.113491', '2018-04-23 12:44:56', '{"null_fracdmin_contacts":[108],"tech_contacts":[109],"nameservers":[],"dnskeys":[],"legal_documents":[null],"registrant":[1]}' @@ -45,17 +42,21 @@ class DomainVersionsTest < ApplicationSystemTestCase end def test_removed_fields_are_not_causing_errors_in_index_view + assert_equal 'Best Names', @registrar.name + visit admin_domain_versions_path - assert_text 'test_registrar' - assert_text 'test_registrar update 23.04.18, 18:50' + assert_text 'Best Names' + assert_text 'Best Names update 23.04.18, 18:50' end def test_removed_fields_are_not_causing_errors_in_details_view + assert_equal 'Best Names', @registrar.name + version_id = Domain.find(54).versions.last visit admin_domain_version_path(version_id) - assert_text 'test_registrar' + assert_text 'Best Names' assert_text '23.04.18, 18:50 update 1-AdminUser' end -end +end \ No newline at end of file diff --git a/test/system/admin_area/registrars/delete_test.rb b/test/system/admin_area/registrars/delete_test.rb deleted file mode 100644 index f0ecaecc6..000000000 --- a/test/system/admin_area/registrars/delete_test.rb +++ /dev/null @@ -1,30 +0,0 @@ -require 'test_helper' - -class AdminAreaDeleteRegistrarTest < ApplicationSystemTestCase - setup do - sign_in users(:admin) - end - - def test_can_be_deleted_when_not_in_use - visit admin_registrar_url(registrars(:not_in_use)) - - assert_difference 'Registrar.count', -1 do - click_link_or_button 'Delete' - end - - assert_current_path admin_registrars_path - assert_text 'Registrar has been successfully deleted' - end - - def test_cannot_be_deleted_when_in_use - registrar = registrars(:bestnames) - visit admin_registrar_url(registrar) - - assert_no_difference 'Registrar.count' do - click_link_or_button 'Delete' - end - - assert_current_path admin_registrar_path(registrar) - assert_text 'Cannot delete record because dependent domains exist' - end -end diff --git a/test/system/admin_area/registrars/details_test.rb b/test/system/admin_area/registrars/details_test.rb deleted file mode 100644 index be0ac1566..000000000 --- a/test/system/admin_area/registrars/details_test.rb +++ /dev/null @@ -1,26 +0,0 @@ -require 'test_helper' - -class AdminAreaRegistrarDetailsTest < ApplicationSystemTestCase - include ActionView::Helpers::NumberHelper - - setup do - sign_in users(:admin) - @registrar = registrars(:bestnames) - end - - def test_registrar_details - @registrar.accounting_customer_code = 'US0001' - @registrar.vat_no = 'US12345' - @registrar.vat_rate = 5 - @registrar.language = 'en' - @registrar.billing_email = 'billing@bestnames.test' - @registrar.save(validate: false) - - visit admin_registrar_path(@registrar) - assert_text 'Accounting customer code US0001' - assert_text 'VAT number US12345' - assert_text 'VAT rate 5.0%' - assert_text 'Language English' - assert_text 'billing@bestnames.test' - end -end diff --git a/test/system/admin_area/registrars/edit_test.rb b/test/system/admin_area/registrars/edit_test.rb deleted file mode 100644 index 9cb9d5020..000000000 --- a/test/system/admin_area/registrars/edit_test.rb +++ /dev/null @@ -1,69 +0,0 @@ -require 'test_helper' - -class AdminAreaEditRegistrarTest < ApplicationSystemTestCase - setup do - sign_in users(:admin) - @registrar = registrars(:bestnames) - end - - def test_attributes_update - visit admin_registrar_path(@registrar) - click_link_or_button 'Edit' - - fill_in 'Name', with: 'new name' - fill_in 'Reg no', with: '4727673' - fill_in 'Contact phone', with: '2570937' - fill_in 'Website', with: 'http://new.example.com' - fill_in 'Contact e-mail', with: 'new@example.com' - - fill_in 'Street', with: 'new street' - fill_in 'Zip', with: 'new zip' - fill_in 'City', with: 'new city' - fill_in 'State / Province', with: 'new state' - select 'Germany', from: 'Country' - - fill_in 'VAT number', with: '2386449' - fill_in 'Accounting customer code', with: '866477' - fill_in 'Billing email', with: 'new-billing@example.com' - - select 'Estonian', from: 'Language' - click_link_or_button 'Update registrar' - - @registrar.reload - assert_equal 'new name', @registrar.name - assert_equal '4727673', @registrar.reg_no - assert_equal '2570937', @registrar.phone - assert_equal 'http://new.example.com', @registrar.website - assert_equal 'new@example.com', @registrar.email - - assert_equal 'new street', @registrar.street - assert_equal 'new zip', @registrar.zip - assert_equal 'new city', @registrar.city - assert_equal 'new state', @registrar.state - assert_equal Country.new('DE'), @registrar.country - - assert_equal '2386449', @registrar.vat_no - assert_equal '866477', @registrar.accounting_customer_code - assert_equal 'new-billing@example.com', @registrar.billing_email - - assert_equal 'et', @registrar.language - assert_current_path admin_registrar_path(@registrar) - assert_text 'Registrar has been successfully updated' - end - - def test_code_cannot_be_changed - visit admin_registrar_path(@registrar) - click_link_or_button 'Edit' - assert_no_field 'Code' - end - - def test_fails_gracefully - visit admin_registrar_path(@registrar) - click_link_or_button 'Edit' - fill_in 'Name', with: 'Good Names' - click_link_or_button 'Update registrar' - - assert_field 'Name', with: 'Good Names' - assert_text 'Name has already been taken' - end -end diff --git a/test/system/admin_area/registrars/new_test.rb b/test/system/admin_area/registrars/new_test.rb deleted file mode 100644 index 90425a714..000000000 --- a/test/system/admin_area/registrars/new_test.rb +++ /dev/null @@ -1,50 +0,0 @@ -require 'test_helper' - -class AdminAreaNewRegistrarTest < ApplicationSystemTestCase - setup do - sign_in users(:admin) - end - - def test_new_registrar_creation_with_required_params - visit admin_registrars_url - click_link_or_button 'New registrar' - - fill_in 'Name', with: 'Brand new names' - fill_in 'Reg no', with: '55555555' - fill_in 'Contact e-mail', with: 'test@example.com' - select 'United States', from: 'Country' - fill_in 'Accounting customer code', with: 'test' - fill_in 'Code', with: 'test' - - assert_difference 'Registrar.count' do - click_link_or_button 'Create registrar' - end - - assert_current_path admin_registrar_path(Registrar.last) - assert_text 'Registrar has been successfully created' - end - - def test_fails_gracefully - visit admin_registrars_url - click_link_or_button 'New registrar' - - fill_in 'Name', with: 'Best Names' - fill_in 'Reg no', with: '55555555' - fill_in 'Contact e-mail', with: 'test@example.com' - fill_in 'Accounting customer code', with: 'test' - fill_in 'Code', with: 'test' - - assert_no_difference 'Registrar.count' do - click_link_or_button 'Create registrar' - end - assert_field 'Name', with: 'Best Names' - assert_text 'Name has already been taken' - end - - def test_pre_populated_default_language - Setting.default_language = 'en' - visit admin_registrars_url - click_link_or_button 'New registrar' - assert_field 'Language', with: 'en' - end -end diff --git a/test/system/admin_area/registrars_test.rb b/test/system/admin_area/registrars_test.rb new file mode 100644 index 000000000..dfea9ed18 --- /dev/null +++ b/test/system/admin_area/registrars_test.rb @@ -0,0 +1,84 @@ +require 'test_helper' + +class AdminRegistrarsSystemTest < ApplicationSystemTestCase + include ActionView::Helpers::NumberHelper + + setup do + @registrar = registrars(:bestnames) + sign_in users(:admin) + end + + def test_creates_new_registrar + assert_nil Registrar.find_by(name: 'New name') + + visit admin_registrars_path + click_on 'New registrar' + + fill_in 'Name', with: 'New name' + fill_in 'Reg no', with: '55555555' + fill_in 'Contact e-mail', with: 'any@registrar.test' + select 'United States', from: 'Country' + fill_in 'Accounting customer code', with: 'test' + fill_in 'Code', with: 'test' + click_on 'Create registrar' + + assert_text 'Registrar has been successfully created' + assert_text 'New name' + end + + def test_updates_registrar + assert_not_equal 'New name', @registrar.name + + visit admin_registrar_path(@registrar) + click_link_or_button 'Edit' + fill_in 'Name', with: 'New name' + click_link_or_button 'Update registrar' + + assert_text 'Registrar has been successfully updated' + assert_text 'New name' + end + + def test_deletes_registrar + registrar = registrars(:not_in_use) + assert_equal 'Not in use', registrar.name + + visit admin_registrar_path(registrar) + click_on 'Delete' + + assert_text 'Registrar has been successfully deleted' + assert_no_text 'Not in use' + end + + def test_registrar_cannot_be_deleted_when_in_use + visit admin_registrar_url(@registrar) + click_on 'Delete' + assert_text 'Cannot delete record because dependent domains exist' + end + + def test_pre_populates_default_language_upon_creation + Setting.default_language = 'en' + visit new_admin_registrar_path + assert_field 'Language', with: 'en' + end + + def test_code_cannot_be_edited + visit edit_admin_registrar_path(@registrar) + assert_no_field 'Code' + end + + def test_shows_registrar_details + @registrar.accounting_customer_code = 'US0001' + @registrar.vat_no = 'US12345' + @registrar.vat_rate = 5 + @registrar.language = 'en' + @registrar.billing_email = 'billing@bestnames.test' + @registrar.save(validate: false) + + visit admin_registrar_path(@registrar) + assert_text 'Accounting customer code US0001' + assert_text 'VAT number US12345' + assert_text "VAT rate #{number_to_percentage(5, precision: 1)}" + assert_text 'Language English' + assert_text 'billing@bestnames.test' + end +end \ No newline at end of file