rspec-sql 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 604f3e80d1493fef761a5cd6c4cc1f2b16ddeaea989fd06a52f6e5266c30a015
4
- data.tar.gz: caf7ab6da1bb00e2c49fae1be3ca2ed8c787adab7f3983e02ac0972f410f1140
3
+ metadata.gz: 5bcabc5d90f3ad9fbdecc557c3604203ae859cf4725664a18819d1290ced63e2
4
+ data.tar.gz: '09e1ba8a94a2e92355414104384bc7de76e7aa42bdf1c2f0bc5311c29ecc66a8'
5
5
  SHA512:
6
- metadata.gz: fecdb314d1af946b4c1d37807f25ece49c3d0ce2a969984c7d8ac9ec325afee4359021e3623792a85085c0c77e17f1510b568f7d43733eb0a12ee6151cf4e1bb
7
- data.tar.gz: 01afcbf7343a73735ade838e1b0c1991cd8d4b62d9d38a9e75fc5c66b34c3d1fd34b38b8a97d3ddb9b297781624237e250e1775012f2e2cb4451240d62e90a14
6
+ metadata.gz: ff5a4cdf9a0c27921a32ca65da0c682b6412652cf78b6d155309e6e97b7cb13702086f183d1d6ed88f2083e57fc99e6b5e4c799867b5e5a1f659363ecbda1df5
7
+ data.tar.gz: 3af870e827e52cfc8e1a548d9ff456c26521291de6bd4fb093172537f4f46ca551b84bdd2dc3306b0b665eecb1f838ff9687b2f699d9acf12b9fbe42352cfa63
@@ -2,8 +2,9 @@
2
2
 
3
3
  module RSpec
4
4
  module Sql
5
+ # Converts a list of queries into a summary hash.
5
6
  class QuerySummary
6
- QUERY_TYPES = [:delete, :insert, :select, :update].freeze
7
+ QUERY_TYPES = %i[delete insert select update].freeze
7
8
 
8
9
  attr_reader :summary
9
10
 
data/lib/rspec/sql.rb CHANGED
@@ -5,10 +5,13 @@ require "rspec"
5
5
 
6
6
  require_relative "sql/query_summary"
7
7
 
8
+ # We are building within the RSpec namespace for consistency and convenience.
9
+ # We are not part of the RSpec team though.
8
10
  module RSpec
11
+ # RSpec::Sql contains our code.
9
12
  module Sql; end
10
13
 
11
- RSpec::Matchers.define :query_database do |expected = nil|
14
+ Matchers.define :query_database do |expected = nil|
12
15
  match do |block|
13
16
  @queries = scribe_queries(&block)
14
17
 
@@ -28,6 +31,10 @@ module RSpec
28
31
  end
29
32
 
30
33
  failure_message do |_block|
34
+ if expected.is_a?(Enumerator) && expected.inspect.match?(/:times>$/)
35
+ expected = expected.size
36
+ end
37
+
31
38
  <<~MESSAGE
32
39
  Expected database queries: #{expected}
33
40
  Actual database queries: #{query_names}
@@ -41,7 +48,11 @@ module RSpec
41
48
  end
42
49
 
43
50
  failure_message_when_negated do |_block|
44
- "Expected no database queries but observed:\n\n#{query_descriptions.join("\n")}"
51
+ <<~TXT
52
+ Expected no database queries but observed:
53
+
54
+ #{query_descriptions.join("\n")}
55
+ TXT
45
56
  end
46
57
 
47
58
  def supports_block_expectations?
@@ -63,9 +74,9 @@ module RSpec
63
74
  def scribe_queries(&)
64
75
  queries = []
65
76
 
66
- logger = ->(_name, _started, _finished, _unique_id, payload) {
77
+ logger = lambda do |_name, _started, _finished, _unique_id, payload|
67
78
  queries << payload unless %w[CACHE SCHEMA].include?(payload[:name])
68
- }
79
+ end
69
80
 
70
81
  ActiveSupport::Notifications.subscribed(logger, "sql.active_record", &)
71
82
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rspec-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Maikel Linke
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-03-01 00:00:00.000000000 Z
12
+ date: 2024-04-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -50,7 +50,10 @@ files:
50
50
  homepage: https://github.com/openfoodfoundation/rspec-sql
51
51
  licenses:
52
52
  - AGPL-3.0-or-later
53
- metadata: {}
53
+ metadata:
54
+ changelog_uri: https://github.com/datafoodconsortium/connector-ruby/blob/main/CHANGELOG.md
55
+ source_code_uri: https://github.com/datafoodconsortium/connector-ruby/
56
+ rubygems_mfa_required: 'true'
54
57
  post_install_message:
55
58
  rdoc_options: []
56
59
  require_paths: