37 lines
1.1 KiB
Ruby
37 lines
1.1 KiB
Ruby
|
require 'rails_helper'
|
||
|
|
||
|
RSpec.describe Ticket::Number do
|
||
|
let(:stubbed_subclass) { double('Foo') }
|
||
|
|
||
|
before { stub_const('Ticket::Number::Foo', stubbed_subclass) }
|
||
|
|
||
|
describe '.generate' do
|
||
|
before { Setting.set('ticket_number', 'Ticket::Number::Foo') }
|
||
|
|
||
|
it 'defers to subclass specified in "ticket_number" setting' do
|
||
|
expect(Ticket::Number::Foo).to receive(:generate)
|
||
|
expect(described_class.generate).to be(nil)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '.check' do
|
||
|
before { Setting.set('ticket_number', 'Ticket::Number::Foo') }
|
||
|
|
||
|
it 'defers to subclass specified in "ticket_number" setting' do
|
||
|
expect(Ticket::Number::Foo).to receive(:check).with('foo')
|
||
|
expect(described_class.check('foo')).to be(nil)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe '.adapter' do
|
||
|
it 'defaults to Ticket::Number::Increment' do
|
||
|
expect(described_class.adapter).to be(Ticket::Number::Increment)
|
||
|
end
|
||
|
|
||
|
it 'depends on "ticket_number" setting' do
|
||
|
expect { Setting.set('ticket_number', 'Ticket::Number::Foo') }
|
||
|
.to change(described_class, :adapter).to(Ticket::Number::Foo)
|
||
|
end
|
||
|
end
|
||
|
end
|