Module: AppQuery::RSpec::Helpers
- Defined in:
- lib/app_query/rspec/helpers.rb
Overview
RSpec helpers for testing query classes.
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#build_query(**kwargs) ⇒ AppQuery::BaseQuery
Builds the query instance.
-
#cte_name ⇒ String?
Returns the CTE name if inside a "cte xxx" describe block.
-
#described_query(**kwargs) ⇒ AppQuery::BaseQuery, AppQuery::Q
Returns the query instance, optionally focused on a CTE.
-
#query_binds ⇒ Hash
Returns binds from RSpec metadata.
-
#query_vars ⇒ Hash
Returns vars from RSpec metadata.
Instance Method Details
#build_query(**kwargs) ⇒ AppQuery::BaseQuery
Builds the query instance. Override this to customize instantiation.
73 74 75 |
# File 'lib/app_query/rspec/helpers.rb', line 73 def build_query(**kwargs) described_class.new(**query_binds.merge(query_vars).merge(kwargs)) end |
#cte_name ⇒ String?
Returns the CTE name if inside a "cte xxx" describe block.
94 95 96 |
# File 'lib/app_query/rspec/helpers.rb', line 94 def cte_name self.class.cte_name end |
#described_query(**kwargs) ⇒ AppQuery::BaseQuery, AppQuery::Q
Returns the query instance, optionally focused on a CTE.
When inside a describe "cte xxx" block, returns a query
that selects from that CTE instead of the full query.
59 60 61 62 |
# File 'lib/app_query/rspec/helpers.rb', line 59 def described_query(**kwargs) query = build_query(**kwargs) cte_name ? query.query.cte(cte_name) : query end |
#query_binds ⇒ Hash
Returns binds from RSpec metadata.
80 81 82 |
# File 'lib/app_query/rspec/helpers.rb', line 80 def query_binds (:binds) || {} end |
#query_vars ⇒ Hash
Returns vars from RSpec metadata.
87 88 89 |
# File 'lib/app_query/rspec/helpers.rb', line 87 def query_vars (:vars) || {} end |