Skip to content

Commit 4f0ea99

Browse files
committedOct 6, 2020
Include raw SQL queries when tracking
1 parent df0de63 commit 4f0ea99

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed
 

‎lib/sql_spy.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module SqlSpy
22
Query = Struct.new(:name, :sql, :duration) do
33
def model_name
4-
name.split.first
4+
String(name).split.first
55
end
66

77
def select?
@@ -29,7 +29,7 @@ def queries
2929
end
3030

3131
def call(_name, start, finish, _message_id, values)
32-
return if values[:name].nil? || IGNORED_NAMES.include?(values[:name])
32+
return if IGNORED_NAMES.include?(values[:name])
3333
return if values[:cached]
3434

3535
queries << Query.new(values[:name], values[:sql], (finish - start) * 1000)

‎test/sql_spy_test.rb

+23-4
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,14 @@ def test_single_insert_query
6161
end
6262

6363
assert_instance_of Array, queries
64-
assert_equal 1, queries.count
64+
assert_equal 3, queries.count
6565

66-
query = queries.first
67-
assert query.insert?
68-
assert_equal "User", query.model_name
66+
assert_match %r{(begin transaction|begin)}i, queries[0].sql
67+
68+
assert queries[1].insert?
69+
assert_equal "User", queries[1].model_name
70+
71+
assert_match %r{(end transaction|commit)}i, queries[2].sql
6972
end
7073

7174
def test_single_update_query
@@ -124,4 +127,20 @@ def test_duration
124127
assert_instance_of Float, query.duration
125128
refute query.duration.zero?
126129
end
130+
131+
def test_execute_raw_sql
132+
queries = SqlSpy.track do
133+
ActiveRecord::Base.connection.execute("SELECT COUNT(*) FROM users;")
134+
end
135+
136+
assert_equal 1, queries.count
137+
138+
query = queries.first
139+
assert_equal "SELECT COUNT(*) FROM users;", query.sql
140+
assert_nil query.model_name
141+
assert query.select?
142+
refute query.insert?
143+
refute query.update?
144+
refute query.delete?
145+
end
127146
end

0 commit comments

Comments
 (0)