Sha256: e4fb6aa50018c632074fdf4d478848078926d3ae87f7222cff29878ea7200537

Contents?: true

Size: 1.84 KB

Versions: 5

Compression:

Stored size: 1.84 KB

Contents

require 'test_helper'

module Workarea
  class Checkout
    module Steps
      class KlarnaPaymentTest < TestCase
        setup :set_shipping_service, :set_product, :set_addresses

        def set_shipping_service
          create_shipping_service(
            name: 'Test',
            rates: [{ price: 5.to_m }],
            tax_code: '001'
          )
        end

        def set_product
          create_product(id: 'PROD')
        end

        def set_addresses
          address_params = {
            first_name:   'Ben',
            last_name:    'Crouse',
            street:       '22 S. 3rd St.',
            city:         'Philadelphia',
            region:       'PA',
            postal_code:  '19106',
            country:      'US',
            phone_number: '2159251800'
          }

          Addresses.new(checkout).update(
            shipping_address: address_params,
            billing_address: address_params
          )
        end

        def order
          @order ||= create_order(
            email: 'test@workarea.com',
            items: [{ product_id: 'PROD', sku: 'SKU' }]
          )
        end

        def checkout
          @checkout ||= Checkout.new(order)
        end

        def payment
          @payment ||= checkout.payment
        end

        def step
          @step ||= Checkout::Steps::Payment.new(checkout)
        end

        def test_setting_klarna_tender
          assert(
            step.update(
              payment: 'klarna_pay_later',
              klarna: { authorization_token: '123' }
            )
          )

          assert(payment.klarna.present?)
          assert(payment.klarna.amount)
          assert(payment.klarna.authorization_token.present?)

          step.update
          assert_nil(payment.klarna)

          payment.address = nil
          refute(step.update)
        end
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
workarea-klarna-1.1.0 test/models/workarea/checkout/steps/klarna_payment_test.rb
workarea-klarna-1.1.0.beta1 test/models/workarea/checkout/steps/klarna_payment_test.rb
workarea-klarna-1.0.0 test/models/workarea/checkout/steps/klarna_payment_test.rb
workarea-klarna-1.0.0.beta2 test/models/workarea/checkout/steps/klarna_payment_test.rb
workarea-klarna-1.0.0.beta1 test/models/workarea/checkout/steps/klarna_payment_test.rb