105 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| # 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
 | |
| 
 | |
|     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
 | |
| 
 | |
|     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
 | |
| 
 | |
|     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
 |