Module: RSpec::Rails::Api::DSL::ExampleGroup

Defined in:
lib/rspec/rails/api/dsl/example_group.rb

Overview

All these methods will be available in example groups (anything but ‘it’, ‘example’, ‘for_code’)

Instance Method Summary collapse

Instance Method Details

#entity(type, fields) ⇒ Object

Used to describe an entity



20
21
22
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 20

def entity(type, fields)
  [:rrad].add_entity type, fields
end

#for_code(status_code, description, doc_only: false, &block) ⇒ Object



60
61
62
63
64
65
66
67
68
69
70
71
72
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 60

def for_code(status_code, description, doc_only: false, &block)
  [:rrad].add_status_code(status_code, description)

  describe "-> #{status_code} - #{description}" do
    if (!ENV['DOC_ONLY'] || ENV['DOC_ONLY'] == 'false' || !doc_only) && block
      example 'Test and create documentation', caller: block.send(:caller) do
        instance_eval(&block) if block_given?
      end
    else
      document_only status_code
    end
  end
end

#on_action(action, url, description, &block) ⇒ Object

Currently fill metadatas with the action



54
55
56
57
58
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 54

def on_action(action, url, description, &block)
  [:rrad].add_action(action, url, description)

  describe("#{action.upcase} #{url}", &block)
end

#on_delete(url, description = nil, &block) ⇒ Object



49
50
51
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 49

def on_delete(url, description = nil, &block)
  on_action(:delete, url, description, &block)
end

#on_get(url, description = nil, &block) ⇒ Object



33
34
35
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 33

def on_get(url, description = nil, &block)
  on_action(:get, url, description, &block)
end

#on_patch(url, description = nil, &block) ⇒ Object



45
46
47
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 45

def on_patch(url, description = nil, &block)
  on_action(:patch, url, description, &block)
end

#on_post(url, description = nil, &block) ⇒ Object



37
38
39
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 37

def on_post(url, description = nil, &block)
  on_action(:post, url, description, &block)
end

#on_put(url, description = nil, &block) ⇒ Object



41
42
43
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 41

def on_put(url, description = nil, &block)
  on_action(:put, url, description, &block)
end

#path_params(fields) ⇒ Object

Used to describe query parameters



25
26
27
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 25

def path_params(fields)
  [:rrad].add_path_params fields
end

#request_params(fields) ⇒ Object



29
30
31
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 29

def request_params(fields)
  [:rrad].add_request_params fields
end

#resource(name, description = '') ⇒ Object

First method to be called in a spec file as it will initialize the metadatas.



14
15
16
17
# File 'lib/rspec/rails/api/dsl/example_group.rb', line 14

def resource(name, description = '')
  [:rrad] ||= Metadata.new
  [:rrad].add_resource name, description
end