Sha256: b9f57ba2411d193dabb66c6055b71898da0ceafefe1f10d3fd32a69296b174bd

Contents?: true

Size: 1.44 KB

Versions: 1

Compression:

Stored size: 1.44 KB

Contents

# frozen_string_literal: true
require 'sinatra/base'

# the FakeApi class is used to mock API requests while testing.
class FakeApi < Sinatra::Base
  # resource
  post('/v2/resources') { json_response 201, 'resource.json' }
  get('/v2/resources/:id') { json_response 200, 'resource.json' }
  put('/v2/resources') { json_response 201, 'resource.json' }
  delete('/v2/resources/:id') { status 202 }

  # orders
  post('/v2/orders/valid_token') { json_response 200, 'order_token.json' }
  post('/v2/orders/invalid_token') { json_response 404, 'resource_not_found.json' }
  get('/v2/orders/:id') { json_response 200, 'resource.json' }

  # users
  get('/v2/users/valid_public_id') { json_response 200, 'user.json' }
  get('/v2/users/invalid_public_id') { json_response 404, 'resource_not_found.json' }
  put('/v2/users/valid_public_id') { status 204 }
  put('/v2/users/valid_public_id/password'){ json_response 200, 'user.json'}
  put('/v2/users/invalid_public_id/password'){ json_response 404, 'resource_not_found.json' }

  # relevance
  get('/v2/relevance/ruleset/names') { json_response 200, 'relevance_ruleset_names.json' }

  # errors
  get('/v2/client_error') { json_response 400, 'error.json' }
  get('/v2/server_error') { status 500 }
  get('/v2/proxy_error') { status 407 }

  private

  def json_response(response_code, file_name)
    content_type :json
    status response_code
    File.open(File.dirname(__FILE__) + '/fixtures/' + file_name, 'rb').read
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
finapps-2.0.16 spec/support/fake_api.rb