# frozen_string_literal: true describe CoinsPaid::API::Signature, '#check!' do let(:key) { 'publickey' } let(:signature) { 'd2b3292793cb1f527dab4c9d8128356a0df7635aa1796a4d45276646ce914dcf29bb9244aed750a3a5b7d26aabb44ba560b05ed1233168107bed4ca684522508' } let(:request_body) { { key: :value }.to_json } subject(:check) { described_class.check!(key: key, signature: signature, request_body: request_body) } context 'when key and signature are valid' do it { is_expected.to be_truthy } end context 'when key is invalid' do let(:key) { 'invalidkey' } it 'raises invalid signature error' do expect { check }.to raise_error(CoinsPaid::API::InvalidSignatureError) end end context 'when signature is invalid' do let(:signature) { 'invalidsignature' } it 'raises invalid signature error' do expect { check }.to raise_error(CoinsPaid::API::InvalidSignatureError) end end end