Skip to content

Commit a93a6d3

Browse files
committed
Fixing my code to work properly :)
1 parent 1013ad9 commit a93a6d3

File tree

3 files changed

+7
-8
lines changed

3 files changed

+7
-8
lines changed

lib/ar_query_matchers.rb

+4-5
Original file line numberDiff line numberDiff line change
@@ -349,7 +349,7 @@ def reject_record(subset, expected, key)
349349
end
350350
end
351351

352-
def filter_model_names(expected, subset, values_only)
352+
def filter_model_names(subset, values_only)
353353
all_model_names = expected.keys + @query_stats.queries.keys
354354
if values_only
355355
all_model_names.reject { |key| reject_record(subset, expected, key) }.uniq
@@ -359,10 +359,9 @@ def filter_model_names(expected, subset, values_only)
359359
end
360360

361361
def expectation_failed_message(crud_operation, values_only: false, subset: false)
362-
if values_only
363-
expected = expected.transform_values { |v| v.is_a(Array) ? v : [v] }
364-
end
365-
model_names_with_wrong_count = filter_model_names(expected, subset, values_only)
362+
expected.transform_values { |v| v.is_a(Array) ? v : [v] } if values_only
363+
364+
model_names_with_wrong_count = filter_model_names(subset, values_only)
366365
"Expected ActiveRecord to #{crud_operation} #{expected}, got #{values_only ? @query_stats.query_values : @query_stats.query_counts}\n"\
367366
"Expectations that differed:\n#{difference(model_names_with_wrong_count, values_only: values_only).join("\n")}\n\nWhere unexpected queries came from:\n\n#{source_lines(model_names_with_wrong_count).join("\n")}"
368367
end

lib/ar_query_matchers/queries/load_counter.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def filter_map(name, sql)
2727
# First check for a `SELECT * FROM` query that ActiveRecord has
2828
# helpfully named for us in the payload
2929
match = name.match(MODEL_LOAD_PATTERN)
30-
return ModelName.new(match[:model_name]) if match
30+
return ModelName.new(match[:model_name]) if match and match.names.include? :model_name
3131

3232
# Fall back to pattern-matching on the table name in a COUNT and looking
3333
# up the table name from ActiveRecord's loaded descendants.

lib/ar_query_matchers/queries/query_counter.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ def instrument(&block)
8282
MARGINALIA_SQL_COMMENT_PATTERN = %r{/*line:(?<line>.*)'*/}
8383
private_constant :MARGINALIA_SQL_COMMENT_PATTERN
8484

85-
def add_to_query(queries, payload, model_obj, finish, start)
85+
def add_to_query(queries, model_name, payload, model_obj, finish, start)
8686
comment = payload[:sql].match(MARGINALIA_SQL_COMMENT_PATTERN)
8787
queries[model_name][:lines] << comment[:line] if comment
8888
queries[model_name][:count] += 1
@@ -100,7 +100,7 @@ def to_proc(queries)
100100
model_obj = @query_filter.filter_map(payload[:name] || '', payload[:sql] || '')
101101
model_name = model_obj&.model_name
102102

103-
add_to_query(queries, payload, model_obj, finish, start) if model_name
103+
add_to_query(queries, model_name, payload, model_obj, finish, start) if model_name
104104
end
105105
end
106106
end

0 commit comments

Comments
 (0)