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')
|