Sha256: 5b50771f605b05780f09283a9428442efbf164821991f9392fd53e3acb1ee321

Contents?: true

Size: 1.67 KB

Versions: 16

Compression:

Stored size: 1.67 KB

Contents

require 'test_helper'

module Workarea
  module Api
    module Admin
      class ShippingRatesIntegrationTest < IntegrationTest
        include Workarea::Admin::IntegrationTest

        setup :set_sample_attributes

        def set_sample_attributes
          @shipping_service = create_shipping_service
          @sample_attributes = @shipping_service.rates.first.as_json.except('_id')
        end

        def create_rate
          @shipping_service.rates.create!(@sample_attributes)
        end

        def test_lists_rates
          rates = [create_rate, create_rate]
          get admin_api.shipping_service_rates_path(@shipping_service.id)
          result = JSON.parse(response.body)['rates']

          assert_equal(3, result.length) # one pre-existing rate
          assert_equal(rates.first, Shipping::Rate.new(result.second))
          assert_equal(rates.second, Shipping::Rate.new(result.third))
        end

        def test_creates_rates
          assert_difference '@shipping_service.reload.rates.count', 1 do
            post admin_api.shipping_service_rates_path(@shipping_service.id),
              params: { rate: @sample_attributes }
          end
        end

        def test_updates_rates
          rate = create_rate
          patch admin_api.shipping_service_rate_path(@shipping_service.id, rate.id),
            params: { rate: { price: 21 } }

          assert_equal(21.to_m, rate.reload.price)
        end

        def test_destroys_rates
          rate = create_rate
          assert_difference '@shipping_service.reload.rates.count', -1 do
            delete admin_api.shipping_service_rate_path(@shipping_service.id, rate.id)
          end
        end
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
workarea-api-4.5.6 admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-admin-4.5.6 test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-4.5.5 admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-admin-4.5.5 test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-4.5.4 admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-admin-4.5.4 test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-4.5.3 admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-admin-4.5.3 test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-4.5.2 admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-admin-4.5.2 test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-4.5.0 admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-admin-4.5.0 test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-4.4.7 admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-admin-4.4.7 test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-4.4.6 admin/test/integration/workarea/api/admin/shipping_rates_integration_test.rb
workarea-api-admin-4.4.6 test/integration/workarea/api/admin/shipping_rates_integration_test.rb