Sha256: 4769e6df7cbd3b6485327d394978aa99ca0ad9e69e6b54cabbd3a85801133bfe

Contents?: true

Size: 588 Bytes

Versions: 6

Compression:

Stored size: 588 Bytes

Contents

RSpec.describe Evil::Client::DSL, ".scope" do
  before do
    class Test::Foo
      extend Evil::Client::DSL

      base_url { "https://example.com" }

      scope :foo do
        param :bar

        scope do
          param :baz

          def find
            qux(bar: bar, baz: baz)
          end
        end
      end

      def qux(bar:, baz:)
        "#{bar}/#{baz}"
      end
    end
  end

  let(:client) { Test::Foo.new }
  subject { client.foo("users")[54].find }

  it "provides access to params and methods via nested scopes" do
    expect(subject).to eq "users/54"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
evil-client-0.3.3 spec/unit/evil/client/dsl/scope_spec.rb
evil-client-0.3.2 spec/unit/evil/client/dsl/scope_spec.rb
evil-client-0.3.1 spec/unit/evil/client/dsl/scope_spec.rb
evil-client-0.3.0 spec/unit/evil/client/dsl/scope_spec.rb
evil-client-0.2.3 spec/unit/evil/client/dsl/scope_spec.rb
evil-client-0.2.2 spec/unit/evil/client/dsl/scope_spec.rb