Skip to content

Commit da15198

Browse files
committed
Coerced tests are back!
1 parent a1afe1a commit da15198

File tree

3 files changed

+35
-9
lines changed

3 files changed

+35
-9
lines changed

Guardfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ guard :minitest, {
2020
end
2121
else
2222
watch(%r{^test/cases/\w+_test_sqlserver.rb$})
23+
watch(%r{^test/cases/coerced/\w+_test.rb$})
2324
watch(%r{^lib/active_record/connection_adapters/sqlserver/([^/]+)\.rb$}) { |m| "test/cases/#{m[1]}_test_sqlserver.rb" }
2425
watch(%r{^test/cases/helper_sqlserver\.rb$}) { 'test' }
2526
end
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
require 'cases/helper_sqlserver'
2+
require 'models/binary'
3+
require 'models/author'
4+
require 'models/post'
5+
6+
class SanitizeTest < ActiveRecord::TestCase
7+
8+
COERCED_TESTS = [:test_sanitize_sql_like_example_use_case]
9+
10+
include ARTest::SQLServer::CoercedTest
11+
12+
def test_sanitize_sql_like_example_use_case_coerced
13+
searchable_post = Class.new(Post) do
14+
def self.search(term)
15+
where("title LIKE ?", sanitize_sql_like(term, '!'))
16+
end
17+
end
18+
assert_sql(/\(title LIKE N''20!% !_reduction!_!!''\)/) do
19+
searchable_post.search("20% _reduction_!").to_a
20+
end
21+
end
22+
23+
end

test/support/rake_helpers.rb

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,9 @@
44
def env_ar_test_files
55
return unless ENV['TEST_FILES_AR'] && !ENV['TEST_FILES_AR'].empty?
66
@env_ar_test_files ||= begin
7-
files = ENV['TEST_FILES_AR'].split(',').map do |file|
7+
ENV['TEST_FILES_AR'].split(',').map { |file|
88
File.join ARTest::SQLServer.root_activerecord, file.strip
9-
end
10-
files.sort.unshift(SQLSERVER_TEST_HELPER)
9+
}.sort
1110
end
1211
end
1312

@@ -17,7 +16,11 @@ def env_test_files
1716
end
1817

1918
def sqlserver_cases
20-
@sqlserver_cases ||= Dir.glob('test/cases/**/*_test_sqlserver.rb') - [SQLSERVER_TEST_HELPER]
19+
@sqlserver_cases ||= Dir.glob('test/cases/*_test_sqlserver.rb')
20+
end
21+
22+
def ar_coerced
23+
@ar_coerced ||= Dir.glob('test/cases/coerced/*test*.rb')
2124
end
2225

2326
def ar_cases
@@ -29,14 +32,13 @@ def ar_cases
2932
end
3033

3134
def test_files
32-
return env_ar_test_files if env_ar_test_files
35+
return env_ar_test_files.unshift(SQLSERVER_TEST_HELPER) if env_ar_test_files
3336
return env_test_files if env_test_files
3437
if ENV['ONLY_SQLSERVER']
35-
sqlserver_cases
38+
sqlserver_cases + ar_coerced
3639
elsif ENV['ONLY_ACTIVERECORD']
37-
ar_cases
40+
(ar_coerced + ar_cases).unshift(SQLSERVER_TEST_HELPER)
3841
else
39-
sqlserver_cases + ar_cases
42+
(ar_coerced + ar_cases + sqlserver_cases).unshift(SQLSERVER_TEST_HELPER)
4043
end
4144
end
42-

0 commit comments

Comments
 (0)