grape-swagger/spec/lib/model_parsers_spec.rb

105 lines
2.8 KiB
Ruby
Raw Permalink Normal View History

# frozen_string_literal: true
require 'spec_helper'
describe GrapeSwagger::ModelParsers do
let(:model_parsers) { described_class.new }
let(:parser) { Class.new }
let(:parser2) { Class.new }
let(:parser3) { Class.new }
describe '#register' do
describe 'successfully register new parser' do
before do
model_parsers.register(parser, Class)
end
specify do
expect(model_parsers.to_a).to eq([[parser, 'Class']])
end
end
2016-05-18 01:32:39 +08:00
describe 'should be empty if no registered parsers' do
specify do
expect(model_parsers.to_a).to be_empty
end
end
end
describe '#insert_before' do
describe 'SomeModelParser2 should be first parser' do
before do
model_parsers.register(parser, Class)
model_parsers.register(parser3, Class)
model_parsers.insert_before(parser, parser2, Class)
end
specify do
expect(model_parsers.count).to eq(3)
expect(model_parsers.to_a.first).to eq([parser2, Class])
end
end
2016-05-18 01:32:39 +08:00
describe 'SomeModelParser2 should be inserted anyway if SomeModelParser not registered' do
before do
model_parsers.register(parser3, Class)
model_parsers.insert_before(parser, parser2, Class)
end
specify do
expect(model_parsers.count).to eq(2)
expect(model_parsers.to_a).to include([parser2, Class])
end
end
describe 'SomeModelParser2 should be inserted anyway if model parsers is empty' do
before do
model_parsers.insert_before(parser, parser2, Class)
end
specify do
expect(model_parsers.count).to eq(1)
expect(model_parsers.to_a).to include([parser2, Class])
end
end
end
describe '#insert_after' do
describe 'SomeModelParser2 should be second parser' do
before do
model_parsers.register(parser, Class)
model_parsers.register(parser3, Class)
model_parsers.insert_after(parser, parser2, Class)
end
specify do
expect(model_parsers.count).to eq(3)
expect(model_parsers.to_a[1]).to eq([parser2, Class])
end
end
2016-05-18 01:32:39 +08:00
describe 'SomeModelParser2 should be inserted anyway if SomeModelParser not registered' do
before do
model_parsers.register(parser3, Class)
model_parsers.insert_after(parser, parser2, Class)
end
specify do
expect(model_parsers.count).to eq(2)
expect(model_parsers.to_a).to include([parser2, Class])
end
end
describe 'SomeModelParser2 should be inserted anyway if model parsers is empty' do
before do
model_parsers.insert_after(parser, parser2, Class)
end
specify do
expect(model_parsers.count).to eq(1)
expect(model_parsers.to_a).to include([parser2, Class])
end
end
end
end