Module: RspecRequestHelpers::Helpers::ClassMethods
- Defined in:
- lib/rspec_request_helpers/helpers.rb
Defined Under Namespace
Classes: DatabaseDSLTranslator, VarsDSL
Instance Method Summary
collapse
-
#database(&block) ⇒ Object
Tiny DSL for creating list or single database records via factory_bot syntax and Rspec :let or :let! methods Usage: user(:user, name: ‘Bob’) is translated to let(:user) { FactoryBot.create(:user, name: ‘Bob’) } user!(:user, name: ‘Bob’) is translated to let!(:user) { FactoryBot.create(:user, name: ‘Bob’) } user_list(:user, name: ‘Bob’, 3) is translated to let(:user) { FactoryBot.create_list(:user, 3, name: ‘Bob’) } user_list!(:user, name: ‘Bob’, 3) is translated to let!(:user) { FactoryBot.create_list(:user, 3, name: ‘Bob’) }.
-
#expected_response(&block) ⇒ Object
-
#headers(&block) ⇒ Object
-
#params(&block) ⇒ Object
-
#path(&block) ⇒ Object
-
#vars(&block) ⇒ Object
Instance Method Details
#database(&block) ⇒ Object
Tiny DSL for creating list or single database records via factory_bot syntax and Rspec :let or :let! methods Usage: user(:user, name: ‘Bob’) is translated to let(:user) { FactoryBot.create(:user, name: ‘Bob’) } user!(:user, name: ‘Bob’) is translated to let!(:user) { FactoryBot.create(:user, name: ‘Bob’) } user_list(:user, name: ‘Bob’, 3) is translated to let(:user) { FactoryBot.create_list(:user, 3, name: ‘Bob’) } user_list!(:user, name: ‘Bob’, 3) is translated to let!(:user) { FactoryBot.create_list(:user, 3, name: ‘Bob’) }
34
35
36
37
38
39
40
41
|
# File 'lib/rspec_request_helpers/helpers.rb', line 34
def database(&block)
parser = Parser::CurrentRuby.new
rewriter = DatabaseDSLTranslator.new
buffer = Parser::Source::Buffer.new('(string)')
buffer.source = Parser::CurrentRuby.parse(block.source).children.last.loc.expression.source
rspec_factory = rewriter.rewrite(buffer, parser.parse(buffer))
self.class_eval(rspec_factory)
end
|
#expected_response(&block) ⇒ Object
74
75
76
|
# File 'lib/rspec_request_helpers/helpers.rb', line 74
def expected_response(&block)
let(:expected_response, &block)
end
|
70
71
72
|
# File 'lib/rspec_request_helpers/helpers.rb', line 70
def (&block)
let(:headers, &block)
end
|
#params(&block) ⇒ Object
66
67
68
|
# File 'lib/rspec_request_helpers/helpers.rb', line 66
def params(&block)
let(:params, &block)
end
|
#path(&block) ⇒ Object
62
63
64
|
# File 'lib/rspec_request_helpers/helpers.rb', line 62
def path(&block)
let(:path, &block)
end
|
#vars(&block) ⇒ Object
58
59
60
|
# File 'lib/rspec_request_helpers/helpers.rb', line 58
def vars(&block)
VarsDSL.new(self).instance_eval(&block)
end
|