diff --git a/app/controllers/admin/billing/prices_controller.rb b/app/controllers/admin/billing/prices_controller.rb index 2cc0ddffb..f66d3351b 100644 --- a/app/controllers/admin/billing/prices_controller.rb +++ b/app/controllers/admin/billing/prices_controller.rb @@ -79,7 +79,8 @@ module Admin end def durations - ::Billing::Price::durations + durations = ::Billing::Price::durations + durations.collect { |duration| [duration.sub('mon', 'month'), duration] } end end end diff --git a/app/models/billing/price.rb b/app/models/billing/price.rb index cc1cbc5a1..692cb2539 100644 --- a/app/models/billing/price.rb +++ b/app/models/billing/price.rb @@ -17,9 +17,9 @@ module Billing def self.durations [ - '3 months', - '6 months', - '9 months', + '3 mons', + '6 mons', + '9 mons', '1 year', '2 years', '3 years', diff --git a/app/views/admin/billing/prices/_price.html.erb b/app/views/admin/billing/prices/_price.html.erb index 31a52ec02..50837bbe8 100644 --- a/app/views/admin/billing/prices/_price.html.erb +++ b/app/views/admin/billing/prices/_price.html.erb @@ -1,10 +1,10 @@ <%= price.zone_name %> - <%= price.duration %> + <%= price.duration.sub('mons', 'months') %> <%= price.operation_category %> <%= currency(price.price) %> - <%= l(price.valid_from, format: :ydate) %> - <%= l(price.valid_to, format: :ydate) %> + <%= l price.valid_from, format: :date %> + <%= l price.valid_to, format: :date %> <%= link_to t('.edit_btn'), edit_admin_price_path(price), class: 'btn btn-xs btn-primary' %> <%= link_to(t('.delete_btn'), admin_price_path(price), diff --git a/spec/features/admin/billing/prices/new_spec.rb b/spec/features/admin/billing/prices/new_spec.rb index b2f804744..27c56ffb6 100644 --- a/spec/features/admin/billing/prices/new_spec.rb +++ b/spec/features/admin/billing/prices/new_spec.rb @@ -27,7 +27,7 @@ RSpec.feature 'New price in admin area', settings: false do def fill_form select 'test', from: 'price_zone_id' select Billing::Price.operation_categories.first, from: 'price_operation_category' - select Billing::Price.durations.first, from: 'price_duration' + select '3 months', from: 'price_duration' fill_in 'price_price', with: '1' end diff --git a/spec/models/billing/price_spec.rb b/spec/models/billing/price_spec.rb index ae7ddfa38..b0e83898a 100644 --- a/spec/models/billing/price_spec.rb +++ b/spec/models/billing/price_spec.rb @@ -13,9 +13,9 @@ RSpec.describe Billing::Price do describe '::durations', db: false do it 'returns available durations' do durations = [ - '3 months', - '6 months', - '9 months', + '3 mons', + '6 mons', + '9 mons', '1 year', '2 years', '3 years', diff --git a/spec/requests/admin/billing/prices/create_spec.rb b/spec/requests/admin/billing/prices/create_spec.rb index 4695eb8b2..14fe63c08 100644 --- a/spec/requests/admin/billing/prices/create_spec.rb +++ b/spec/requests/admin/billing/prices/create_spec.rb @@ -24,7 +24,12 @@ RSpec.describe 'admin price create', settings: false do expect(price.operation_category).to eq(Billing::Price.operation_categories.first) end - it 'saves duration' do + it 'saves duration in months' do + post admin_prices_path, price: attributes_for(:price, zone_id: '1', duration: '3 mons') + expect(price.duration).to eq('3 mons') + end + + it 'saves duration in years' do post admin_prices_path, price: attributes_for(:price, zone_id: '1', duration: '1 year') expect(price.duration).to eq('1 year') end diff --git a/spec/requests/admin/billing/prices/update_spec.rb b/spec/requests/admin/billing/prices/update_spec.rb index 6745b9a23..0b8abcb83 100644 --- a/spec/requests/admin/billing/prices/update_spec.rb +++ b/spec/requests/admin/billing/prices/update_spec.rb @@ -25,7 +25,16 @@ RSpec.describe 'admin price update', settings: false do expect(price.operation_category).to eq(Billing::Price.operation_categories.second) end - it 'updates duration' do + it 'updates duration in months' do + price = create(:price, duration: '3 mons') + + patch admin_price_path(price), price: attributes_for(:price, duration: '6 mons') + price.reload + + expect(price.duration).to eq('6 mons') + end + + it 'updates duration in years' do price = create(:price, duration: '1 year') patch admin_price_path(price), price: attributes_for(:price, duration: '2 years')