Sha256: f4fe25bb1703f94259458f3933148da02b815fad17ad99349e67f1bfddb4b288

Contents?: true

Size: 1.55 KB

Versions: 49

Compression:

Stored size: 1.55 KB

Contents

# frozen_string_literal: true

require 'rails_helper'

describe LHC::Endpoint do
  context 'compile' do
    it 'uses parameters for interpolation' do
      endpoint = LHC::Endpoint.new('{+datastore}/v2/{campaign_id}/feedbacks')
      expect(
        endpoint.compile(datastore: 'http://datastore', campaign_id: 'abc')
      ).to eq "http://datastore/v2/abc/feedbacks"
    end

    it 'compiles when templates contain dots' do
      endpoint = LHC::Endpoint.new('{+datastore}/entries/{id}.json')
      expect(
        endpoint.compile(datastore: 'http://datastore', id: 123)
      ).to eq "http://datastore/entries/123.json"
    end

    it 'compiles complex urls containing all sort of characters' do
      endpoint = LHC::Endpoint.new('{+ads}/?adrawdata/3.0/1108.1/2844859/0/0/header=yes;cookie=no;adct=204;alias={region_id}{lang}{product_type}{product};key=cat={category_id}')
      expect(
        endpoint.compile(ads: 'http://ads', region_id: 291, lang: 'de', product_type: 'ABC', product: 'xyz', category_id: 312)
      ).to eq 'http://ads/?adrawdata/3.0/1108.1/2844859/0/0/header=yes;cookie=no;adct=204;alias=291deABCxyz;key=cat=312'
    end

    it 'compiles complex urls containing &' do
      endpoint = LHC::Endpoint.new('http://{+weather_search_host}/forecast?format=json&period=hour&limit={limit}&areas={+zipcodes}&when={when}')
      expect(
        endpoint.compile(weather_search_host: 'weather', limit: 5, zipcodes: [8005, 8004].join(','), when: 'today')
      ).to eq 'http://weather/forecast?format=json&period=hour&limit=5&areas=8005,8004&when=today'
    end
  end
end

Version data entries

49 entries across 49 versions & 1 rubygems

Version Path
lhc-15.2.1 spec/endpoint/compile_spec.rb
lhc-15.2.0 spec/endpoint/compile_spec.rb
lhc-15.1.3 spec/endpoint/compile_spec.rb
lhc-15.1.2 spec/endpoint/compile_spec.rb
lhc-15.1.1 spec/endpoint/compile_spec.rb
lhc-15.1.0 spec/endpoint/compile_spec.rb
lhc-16.0.0.pre.pro2162.2 spec/endpoint/compile_spec.rb
lhc-16.0.0.pre.pro2162 spec/endpoint/compile_spec.rb
lhc-15.0.1 spec/endpoint/compile_spec.rb
lhc-15.0.0 spec/endpoint/compile_spec.rb
lhc-14.0.0 spec/endpoint/compile_spec.rb
lhc-13.4.0.pre.pro1766.1 spec/endpoint/compile_spec.rb
lhc-13.2.0 spec/endpoint/compile_spec.rb
lhc-13.1.0 spec/endpoint/compile_spec.rb
lhc-13.0.0 spec/endpoint/compile_spec.rb
lhc-12.3.0 spec/endpoint/compile_spec.rb
lhc-12.2.1 spec/endpoint/compile_spec.rb
lhc-12.2.0 spec/endpoint/compile_spec.rb
lhc-12.1.3 spec/endpoint/compile_spec.rb
lhc-12.1.2 spec/endpoint/compile_spec.rb