Sha256: df3eaf695152359e050b6392b886e17b2307266bb28a72006372245b5f48eb3f
Contents?: true
Size: 1.46 KB
Versions: 1
Compression:
Stored size: 1.46 KB
Contents
require 'test_helper' require 'sfkb/rest' describe SFKB::REST do include SFKB::REST let(:options) { { api_version: 'X' } } let(:response) { |x| OpenStruct.new(body: x) } describe 'url' do it 'joins paths to params amd substitutes vars' do assert_equal '/foo', url('/foo') assert_equal '/foo?x=1', url('/foo', x: 1) assert_equal '/foo?x=1&y=2', url('/foo', x: 1, y: 2) end it 'substitutes vars' do assert_equal '/foo/1/2', url('/foo/<x>/<y>', x: 1, y: 2) assert_equal '/foo/1?y=2', url('/foo/<x>', x: 1, y: 2) assert_equal '/a/1?b=2&b=3&c=4', url('/a/<a>', a: 1, b: %w(2 3), c: 4) assert_raises { url('/x/<blah>') } end end describe 'index' do let(:services) { { 'a' => '/services/data/vX/a', 'b' => { foo: 123 } } } let(:responses) do { '/services/data/vX' => services, '/services/data/vX/a' => { 'b' => '/services/data/vX/b' }, '/services/data/vX/b' => { 'c' => '/services/data/vX/c' }, '/services/data/vX/c' => OpenStruct.new('d' => 'You got me.') } end define_method(:lookup) { |url| responses.fetch(url) } define_method(:get) { |url| OpenStruct.new(body: lookup(url)) } it 'gets an endpoint' do assert_equal services, index assert_respond_to index, :a assert_respond_to index.a, :b assert_respond_to index.a.b, :c assert_respond_to index.a.b.c, :d assert_equal 'You got me.', index.a.b.c.d end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sfkb-0.1.3 | test/sfkb/rest_test.rb |