-
Notifications
You must be signed in to change notification settings - Fork 738
/
object_lookup_spec.rb
51 lines (40 loc) · 1.31 KB
/
object_lookup_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
51
require 'rails_helper'
RSpec.describe ObjectLookup, type: :model do
describe '.by_name' do
context 'with name matching an existing ObjectLookup record' do
subject(:object_lookup) { create(:object_lookup) }
it 'returns its id' do
expect(ObjectLookup.by_name(object_lookup.name))
.to eq(object_lookup.id)
end
end
context 'with name not matching any ObjectLookup records' do
let(:name) { 'FooBar' }
it 'creates a new one with that name' do
expect { ObjectLookup.by_name(name) }
.to change { ObjectLookup.count }.by(1)
expect(ObjectLookup.last.name).to eq(name)
end
it 'returns its id' do
expect(ObjectLookup.by_name(name))
.to eq(ObjectLookup.last.id)
end
context 'for names not in strict CamelCase' do
let(:name) { 'Foo_Bar' }
it 'does not modify the format' do
ObjectLookup.by_name(name)
expect(ObjectLookup.last.name).to eq(name)
end
end
end
end
describe '.by_id' do
context 'with number matching an existing ObjectLookup#id' do
subject(:object_lookup) { create(:object_lookup) }
it 'returns its name' do
expect(ObjectLookup.by_id(object_lookup.id))
.to eq(object_lookup.name)
end
end
end
end