Refactoring: Migrate object_type_lookup_test.rb to RSpec
This commit is contained in:
parent
107fd5e995
commit
7639ef46d3
5 changed files with 108 additions and 80 deletions
5
spec/factories/object_lookup.rb
Normal file
5
spec/factories/object_lookup.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
FactoryBot.define do
|
||||
factory :object_lookup do
|
||||
name { (ApplicationModel.descendants.map(&:name) - ObjectLookup.pluck(:name)).sample }
|
||||
end
|
||||
end
|
|
@ -11,7 +11,7 @@ FactoryBot.define do
|
|||
.dig([:base, []])
|
||||
.merge(TypeLookup.pluck(:name))
|
||||
|
||||
Faker::Verb.unique.base
|
||||
Faker::Verb.unique.past_participle
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
51
spec/models/object_lookup_spec.rb
Normal file
51
spec/models/object_lookup_spec.rb
Normal file
|
@ -0,0 +1,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
|
51
spec/models/type_lookup_spec.rb
Normal file
51
spec/models/type_lookup_spec.rb
Normal file
|
@ -0,0 +1,51 @@
|
|||
require 'rails_helper'
|
||||
|
||||
RSpec.describe TypeLookup, type: :model do
|
||||
describe '.by_name' do
|
||||
context 'with name matching an existing TypeLookup record' do
|
||||
subject(:type_lookup) { create(:type_lookup) }
|
||||
|
||||
it 'returns its id' do
|
||||
expect(TypeLookup.by_name(type_lookup.name))
|
||||
.to eq(type_lookup.id)
|
||||
end
|
||||
end
|
||||
|
||||
context 'with name not matching any TypeLookup records' do
|
||||
let(:name) { 'FooBar' }
|
||||
|
||||
it 'creates a new one with that name' do
|
||||
expect { TypeLookup.by_name(name) }
|
||||
.to change { TypeLookup.count }.by(1)
|
||||
|
||||
expect(TypeLookup.last.name).to eq(name)
|
||||
end
|
||||
|
||||
it 'returns its id' do
|
||||
expect(TypeLookup.by_name(name))
|
||||
.to eq(TypeLookup.last.id)
|
||||
end
|
||||
|
||||
context 'for names not in strict CamelCase' do
|
||||
let(:name) { 'Foo_Bar' }
|
||||
|
||||
it 'does not modify the format' do
|
||||
TypeLookup.by_name(name)
|
||||
|
||||
expect(TypeLookup.last.name).to eq(name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.by_id' do
|
||||
context 'with number matching an existing TypeLookup#id' do
|
||||
subject(:type_lookup) { create(:type_lookup) }
|
||||
|
||||
it 'returns its name' do
|
||||
expect(TypeLookup.by_id(type_lookup.id))
|
||||
.to eq(type_lookup.name)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -1,79 +0,0 @@
|
|||
require 'test_helper'
|
||||
|
||||
class ObjectTypeLookupTest < ActiveSupport::TestCase
|
||||
|
||||
test 'object tests' do
|
||||
|
||||
object_lookup_id = ObjectLookup.by_name( 'SomeObject' )
|
||||
assert( object_lookup_id, 'first by_name' )
|
||||
|
||||
object_lookup_name = ObjectLookup.by_id( object_lookup_id )
|
||||
assert( object_lookup_name, 'first by_id' )
|
||||
assert_equal( object_lookup_name, 'SomeObject' )
|
||||
|
||||
object_lookup_id2 = ObjectLookup.by_name( 'Some_Object' )
|
||||
assert( object_lookup_id2, 'by_name - Some_Object' )
|
||||
|
||||
object_lookup_name2 = ObjectLookup.by_id( object_lookup_id2 )
|
||||
assert( object_lookup_name2, 'by_id - Some_Object' )
|
||||
assert_equal( object_lookup_name2, 'Some_Object' )
|
||||
|
||||
object_lookup_id3 = ObjectLookup.by_name( 'SomeObject' )
|
||||
assert( object_lookup_id3, 'by_name 2 - SomeObject' )
|
||||
|
||||
object_lookup_name3 = ObjectLookup.by_id( object_lookup_id3 )
|
||||
assert( object_lookup_name3, 'by_id 2 - SomeObject' )
|
||||
assert_equal( object_lookup_name3, 'SomeObject' )
|
||||
assert_equal( object_lookup_name3, object_lookup_name, 'SomeObject' )
|
||||
assert_equal( object_lookup_id3, object_lookup_id, 'SomeObject' )
|
||||
|
||||
end
|
||||
|
||||
test 'type tests' do
|
||||
|
||||
type_lookup_id = TypeLookup.by_name( 'SomeType' )
|
||||
assert( type_lookup_id, 'first by_name' )
|
||||
|
||||
type_lookup_name = TypeLookup.by_id( type_lookup_id )
|
||||
assert( type_lookup_name, 'first by_id' )
|
||||
assert_equal( type_lookup_name, 'SomeType' )
|
||||
|
||||
type_lookup_id2 = TypeLookup.by_name( 'Some_Type' )
|
||||
assert( type_lookup_id2, 'by_name - Some_Type' )
|
||||
|
||||
type_lookup_name2 = TypeLookup.by_id( type_lookup_id2 )
|
||||
assert( type_lookup_name2, 'by_id - Some_Type' )
|
||||
assert_equal( type_lookup_name2, 'Some_Type' )
|
||||
|
||||
type_lookup_id3 = TypeLookup.by_name( 'SomeType' )
|
||||
assert( type_lookup_id3, 'by_name 2 - SomeType' )
|
||||
|
||||
type_lookup_name3 = TypeLookup.by_id( type_lookup_id3 )
|
||||
assert( type_lookup_name3, 'by_id 2 - SomeType' )
|
||||
assert_equal( type_lookup_name3, 'SomeType' )
|
||||
assert_equal( type_lookup_name3, type_lookup_name, 'SomeType' )
|
||||
assert_equal( type_lookup_id3, type_lookup_id, 'SomeType' )
|
||||
|
||||
end
|
||||
|
||||
test 'type and object tests' do
|
||||
|
||||
object_lookup_id = ObjectLookup.by_name( 'SomeObject' )
|
||||
assert( object_lookup_id, 'first by_name' )
|
||||
|
||||
object_lookup_name = ObjectLookup.by_id( object_lookup_id )
|
||||
assert( object_lookup_name, 'first by_id' )
|
||||
assert_equal( object_lookup_name, 'SomeObject' )
|
||||
|
||||
type_lookup_id = TypeLookup.by_name( 'SomeType' )
|
||||
assert( type_lookup_id, 'first by_name' )
|
||||
|
||||
type_lookup_name = TypeLookup.by_id( type_lookup_id )
|
||||
assert( type_lookup_name, 'first by_id' )
|
||||
assert_equal( type_lookup_name, 'SomeType' )
|
||||
|
||||
assert_not_equal( object_lookup_name, type_lookup_name, 'verify lookups' )
|
||||
|
||||
end
|
||||
|
||||
end
|
Loading…
Reference in a new issue