module Applicaster::Test::Accounts::WebMockHelper

Public Instance Methods

accounts_mock_data() click to toggle source
# File lib/applicaster/test/accounts/web_mock_helper.rb, line 38
def accounts_mock_data
  @accounts_mock_data ||= Test::Accounts::MockData.new
end
client_credentials_token() click to toggle source
# File lib/applicaster/test/accounts/web_mock_helper.rb, line 42
def client_credentials_token
  "client-credentials-token"
end
stub_accounts_index_response(options = {}) click to toggle source
# File lib/applicaster/test/accounts/web_mock_helper.rb, line 20
def stub_accounts_index_response(options = {})
  accounts = options[:accounts] || accounts_mock_data.all_accounts_attributes

  stub_request(:get, accounts_base_url.join("/api/v1/accounts.json"))
    .with(query: { access_token: options[:token] })
    .to_return(successful_json_response(accounts))
end
stub_accounts_user_show_response(options = {}) click to toggle source
# File lib/applicaster/test/accounts/web_mock_helper.rb, line 12
def stub_accounts_user_show_response(options = {})
  user = options[:user] || accounts_mock_data.user_attributes

  stub_request(:get, accounts_base_url.join("/api/v1/users/#{user[:id]}.json"))
    .with(query: { access_token: options[:token] })
    .to_return(successful_json_response(user))
end
stub_client_credentials_request() click to toggle source
# File lib/applicaster/test/accounts/web_mock_helper.rb, line 28
def stub_client_credentials_request
  url = accounts_base_url.join("/oauth/token")
  url.user = Applicaster::Accounts.config.client_id
  url.password = Applicaster::Accounts.config.client_secret

  stub_request(:post, url)
    .with(body: { "grant_type" => "client_credentials" })
    .to_return(successful_json_response(access_token: client_credentials_token))
end

Private Instance Methods

accounts_base_url() click to toggle source
# File lib/applicaster/test/accounts/web_mock_helper.rb, line 56
def accounts_base_url
  Addressable::URI.parse(Applicaster::Accounts.config.base_url)
end
successful_json_response(body) click to toggle source
# File lib/applicaster/test/accounts/web_mock_helper.rb, line 48
def successful_json_response(body)
  {
    status: 200,
    body: body.to_json,
    headers: { "Content-Type" => "application/json" },
  }
end