Sha256: 33872b2780011975cabe31637748f495c326de20c33a32d7a14d191806a628df

Contents?: true

Size: 1.12 KB

Versions: 12

Compression:

Stored size: 1.12 KB

Contents

require 'spec_helper'

describe "Remote Basic" do  
  before :all do    
    class ::AnRemote
      def call; end
    end
  end  
  
  isolate :conveyors
  
  after :all do
    remove_constants %w(AnRemote)
  end
  
  before do
    rad.conveyors.web.use Rad::Router::Processors::Router, :class_variable, :method_variable
  end
  
  def call_router path, params 
    rad.conveyors.web.call path: path, params: Rad::Conveyors::Params.new(params)
  end
  
  it "basic" do    
    workspace = call_router '/an_remote/call', format: 'json'
    
    expected_result = {      
      path: "/an_remote/call", 
      params: {format: 'json'},
      
      class_variable: AnRemote,       
      method_variable: :call
    }
    workspace.to_h(true).subset(expected_result.keys).should == expected_result
  end
    
  it "params must be casted to string" do
    workspace = call_router '/an_remote/call', a: 'b'
    workspace.params.to_h.subset(:a).should == {a: 'b'}
  end
  
  it "default router should raise error if route is invalid" do
    lambda{call_router '/invalid/call', format: 'json'}.should raise_error(/uninitialized constant Invalid/)
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rad_core-0.0.25 spec/router/integration_spec.rb
rad_core-0.0.24 spec/router/integration_spec.rb
rad_core-0.0.23 spec/router/integration_spec.rb
rad_core-0.0.22 spec/router/integration_spec.rb
rad_core-0.0.21 spec/router/integration_spec.rb
rad_core-0.0.20 spec/router/integration_spec.rb
rad_core-0.0.19 spec/router/integration_spec.rb
rad_core-0.0.18 spec/router/integration_spec.rb
rad_core-0.0.17 spec/router/integration_spec.rb
rad_core-0.0.16 spec/router/integration_spec.rb
rad_core-0.0.15 spec/router/integration_spec.rb
rad_core-0.0.14 spec/router/integration_spec.rb