From d790b20c75f315e46dfb3bf3e9ddfb00ed556e4e Mon Sep 17 00:00:00 2001 From: mmeest Date: Tue, 29 Jul 2025 15:58:56 +0300 Subject: [PATCH] initial --- test/integration/admin_area/prices_test.rb | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test/integration/admin_area/prices_test.rb diff --git a/test/integration/admin_area/prices_test.rb b/test/integration/admin_area/prices_test.rb new file mode 100644 index 000000000..83ebac1bd --- /dev/null +++ b/test/integration/admin_area/prices_test.rb @@ -0,0 +1,66 @@ +require 'test_helper' + +class AdminAreaPricesIntegrationTest < ActionDispatch::IntegrationTest + include Devise::Test::IntegrationHelpers + + setup do + sign_in users(:admin) + @zone = dns_zones(:one) + @price = billing_prices(:create_one_year) + end + + def test_index_page_accessible + get admin_prices_path + assert_response :success + assert_includes response.body, 'Prices' + end + + def test_creates_price + params = { + price: { + zone_id: @zone.id, + operation_category: 'create', + duration: 1.year.to_i, + price: '15.00', + valid_from: Date.today.to_s + } + } + + assert_difference 'Billing::Price.count', +1 do + post admin_prices_path, params: params + end + + assert_redirected_to admin_prices_path + follow_redirect! + assert_response :success + assert_equal I18n.t('admin.billing.prices.create.created'), flash[:notice] + end + + def test_updates_price + patch admin_price_path(@price), params: { price: { price: '20.00' } } + + assert_redirected_to admin_prices_path + follow_redirect! + assert_response :success + assert_equal I18n.t('admin.billing.prices.update.updated'), flash[:notice] + + @price.reload + assert_equal 2000, @price.price_cents + end + + def test_expires_price + price_to_expire = @price + assert_nil price_to_expire.valid_to + + patch expire_admin_price_path(price_to_expire) + + assert_redirected_to admin_prices_path + follow_redirect! + assert_response :success + assert_equal I18n.t('admin.billing.prices.expire.expired'), flash[:notice] + + price_to_expire.reload + assert_not_nil price_to_expire.valid_to + assert price_to_expire.valid_to <= Time.zone.now + end +end