Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 39 additions & 8 deletions test/square/integration/client_tests/test_merchants.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,42 @@
require "test_helper"

describe Square::Merchants::Client do
before do
# Get first merchant ID
merchant_response = client.merchants.list
@merchant_id = merchant_response.merchant.first.id
let :base_url do
Square::Environment::SANDBOX
end

let :client do
Square::Client.new(
token: "api_token",
base_url: base_url
)
end

def sample_merchant
Square::Types::Merchant.new(
id: SecureRandom.uuid,
business_name: SecureRandom.uuid,
country: Square::Types::Country::ZZ,
language_code: "en",
currency: Square::Types::Currency::USD,
status: Square::Types::MerchantStatus::ACTIVE,
main_location_id: SecureRandom.uuid,
created_at: SecureRandom.uuid,
)
end

describe "#list" do
let :merchants do
10.times.map { sample_merchant }
end

it "should list merchants" do
stub_request(:get, "#{base_url}/v2/merchants").
to_return(status: 200, body: Square::Types::ListMerchantsResponse.new(merchant: merchants, errors: [], cursor: 10).to_h.to_json)

response = client.merchants.list
refute_nil response
assert_equal response.class, Square::Types::ListMerchantsResponse
assert_equal Square::Types::ListMerchantsResponse, response.class
refute_nil response.merchant
assert response.merchant.length > 0

Expand All @@ -23,16 +47,23 @@
end

describe "#get" do
let :merchant do
sample_merchant
end

it "should retrieve merchant" do
stub_request(:get, "#{base_url}/v2/merchants/#{merchant.id}").
to_return(status: 200, body: Square::Types::GetMerchantResponse.new(merchant: merchant, errors: []).to_h.to_json)

_request = Square::Merchants::Types::GetMerchantsRequest.new(
merchant_id: @merchant_id
merchant_id: merchant.id
)

response = client.merchants.get(**_request.to_h)
refute_nil response
assert_equal response.class, Square::Types::GetMerchantResponse
assert_equal Square::Types::GetMerchantResponse, response.class
refute_nil response.merchant
assert_equal @merchant_id, response.merchant.id
assert_equal merchant.id, response.merchant.id

puts "response #{response.to_h}" if verbose?
end
Expand Down
1 change: 1 addition & 0 deletions test/test_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
require "minitest/autorun"
require "minitest/rg"
require_relative "../lib/square"
require 'webmock/minitest'

def test_token
@test_token ||= ENV.fetch("SQUARE_TOKEN", nil) || ENV.fetch("TEST_SQUARE_TOKEN", nil) || ENV.fetch("SQUARE_SANDBOX_TOKEN", nil) || "test_token"
Expand Down