Sha256: 30378d03ee3363371d016340d1ffe51245c7045e7dde670f122c2c1dc4f57ff8

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

require 'spec_helper'

module Platon
  RSpec.describe CallbackService do
    let(:params) {
      {
          email: 'example@email.org',
          card: '0000 0000 0000 0001',
          sign: 'd29a496b14206feb20d5c8382b23b356'
      }
    }
    before do
      Platon::Configure.cfg.account_password = 'R5JGxRTu2Q4nTDJeVnn9DJ7M'
    end

    describe '.success?' do
      subject { described_class.call(params.merge(status: 'accepted').as_json) }
      it { expect(subject.success?).to be_truthy }
    end

    describe '.failed?' do
      subject { described_class.call(params.merge(status: 'refund').as_json) }
      it { expect(subject.success?).to be_falsey }
    end

    describe 'signature' do
      context 'when valid' do
        subject { described_class.call(params.merge(status: 'accepted').as_json) }
        it {
          expect(subject).to be_a(Status)
        }
      end

      context 'when invalid' do
        subject { described_class.call(params.merge(status: 'accepted', sign: '-').as_json) }
        it {
          expect(subject).to be_a(CallbackService::Error)
          expect(subject.message).to eq('Error: Invalid signature')
        }
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
platon.ua-1.0.1 spec/services/platon/platon_callback_services_spec.rb