rspec-sql 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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: