Skip to content

Commit f371066

Browse files
committed
Add syntactic sugar for x.times
1 parent 2153154 commit f371066

File tree

3 files changed

+5
-1
lines changed

3 files changed

+5
-1
lines changed

README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,9 @@ expect { User.last }.to query_database
1818
# Assert no database queries:
1919
expect { nil }.to_not query_database
2020

21-
# Assert exactly one query:
21+
# Assert exact number of queries:
2222
expect { User.last }.to query_database 1
23+
expect { User.create }.to query_database 3.times
2324

2425
# Assert specific queries:
2526
expect { User.last }.to query_database ["User Load"]

lib/rspec/sql.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ module Sql; end
1414
!@queries.empty?
1515
elsif expected.is_a?(Integer)
1616
@queries.size == expected
17+
elsif expected.is_a?(Enumerator) && expected.inspect.match?(/:times>$/)
18+
@queries.size == expected.size
1719
elsif expected.is_a?(Array)
1820
query_names == expected
1921
else

spec/lib/rspec/sql_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030

3131
it "expects a number of database queries" do
3232
expect { User.last }.to query_database 1
33+
expect { User.create! }.to query_database 3.times
3334

3435
expect {
3536
expect { User.last }.to query_database 2

0 commit comments

Comments
 (0)