54 lines
1.4 KiB
Ruby
54 lines
1.4 KiB
Ruby
# Copyright (C) 2012-2021 Zammad Foundation, http://zammad-foundation.org/
|
|
|
|
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(described_class.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 { described_class.by_name(name) }
|
|
.to change(described_class, :count).by(1)
|
|
|
|
expect(described_class.last.name).to eq(name)
|
|
end
|
|
|
|
it 'returns its id' do
|
|
expect(described_class.by_name(name))
|
|
.to eq(described_class.last.id)
|
|
end
|
|
|
|
context 'for names not in strict CamelCase' do
|
|
let(:name) { 'Foo_Bar' }
|
|
|
|
it 'does not modify the format' do
|
|
described_class.by_name(name)
|
|
|
|
expect(described_class.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(described_class.by_id(type_lookup.id))
|
|
.to eq(type_lookup.name)
|
|
end
|
|
end
|
|
end
|
|
end
|