diff --git a/README.md b/README.md index 3a02de80..ce75217f 100644 --- a/README.md +++ b/README.md @@ -528,8 +528,8 @@ resource "Account" do expect(status).to eq 404 end - # With example_request, you can't change the :document - example_request "Get a list on page 3", :page => 3 do + # With example_request, you can change the :document via metadata + example_request "Get a list on page 3", :page => 3, :metadata => {:document => false} do expect(status).to eq 404 end end @@ -658,6 +658,13 @@ resource "Orders" do end ``` +For passing metadata to example_request you can use param named `:metadata` +```ruby +example_request "Creating an order", :name => "Other name", metadata: {document: :private} do + # make assertions +end +``` + #### explanation This method takes a string representing a detailed explanation of the example. diff --git a/lib/rspec_api_documentation/dsl/endpoint.rb b/lib/rspec_api_documentation/dsl/endpoint.rb index 1b221914..67741fff 100644 --- a/lib/rspec_api_documentation/dsl/endpoint.rb +++ b/lib/rspec_api_documentation/dsl/endpoint.rb @@ -15,7 +15,10 @@ module Endpoint module ClassMethods def example_request(description, params = {}, &block) - example description, :caller => block.send(:caller) do + metadata = params.fetch(:metadata, {}) + example_params = {caller: block.send(:caller)}.merge!(metadata) + + example description, example_params do do_request(params) instance_eval &block if block_given? end