/
where_spec.rb
50 lines (41 loc) · 1.3 KB
/
where_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
require 'spec_helper'
describe 'Symbol enhancements' do
describe '#==' do
subject { User.where { :name == 'matz' }.to_sql }
it { should =~ /WHERE "users"."name" = 'matz'/ }
end
describe '#!=' do
subject { User.where { :name != 'nobu' }.to_sql }
it { should =~ /WHERE \("users"."name" != 'nobu'\)/ }
end
describe '#>' do
subject { User.where { :age > 3 }.to_sql }
it { should =~ /WHERE \("users"."age" > 3\)/ }
end
describe '#>=' do
subject { User.where { :age >= 18 }.to_sql }
it { should =~ /WHERE \("users"."age" >= 18\)/ }
end
describe '#<' do
subject { User.where { :age < 60 }.to_sql }
it { should =~ /WHERE \("users"."age" < 60\)/ }
end
describe '#<=' do
subject { User.where { :age <= 35 }.to_sql }
it { should =~ /WHERE \("users"."age" <= 35\)/ }
end
describe '#=~' do
subject { User.where { :name =~ 'tender%' }.to_sql }
it { should =~ /WHERE \("users"."name" LIKE 'tender%'\)/ }
end
context 'outside of where block' do
specify {
expect { :omg > 1 }.to raise_error ArgumentError
}
end
end
# just to make sure that this plugin does not break AR
describe 'AR default where syntax' do
subject { User.where(name: 'Ruby', age: 19).to_sql }
it { should =~ /WHERE "users"."name" = 'Ruby' AND "users"."age" = 19/ }
end