Sha256: 93e1f310493b9b979e4cec97eec56643ebe8d83baa45755374d64391829e64a8
Contents?: true
Size: 1.32 KB
Versions: 1
Compression:
Stored size: 1.32 KB
Contents
# frozen_string_literal: true require "spec_helpers" describe Wayfarer::Middleware::Router do let(:task) { build(:task, url: url) } let(:klass) do Class.new(Wayfarer::Base) do route.to :index, host: "example.com", path: "/foobar" end end subject(:router) { Wayfarer::Middleware::Router.new } before { task.job = klass.new } describe "#call" do context "when URL matches a route" do let(:url) { "https://example.com/foobar" } it "yields" do expect { |spy| router.call(task, &spy) }.to yield_control end it "assigns metadata" do router.call(task) expect(task.metadata.action).to be(:index) expect(task.metadata.params).to eq({}) end describe "params" do it "is a HashWithIndifferentAccess" do router.call(task) expect(task.metadata.params).to be_a(ActiveSupport::HashWithIndifferentAccess) end end end context "when URL does not match a route" do let(:url) { "https://yahoo.com/foobar" } it "does not yield" do expect { |spy| router.call(task, &spy) }.not_to yield_control end it "does not assign metadata" do router.call(task) {} expect(task.metadata.action).to be(nil) expect(task.metadata.params).to be(nil) end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
wayfarer-0.4.1 | spec/middleware/router_spec.rb |