61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require 'db/mongo/connectors/key'
 | |
| require 'db/mongo/models/key'
 | |
| require 'spec/connectors/tester_connector/key'
 | |
| 
 | |
| RSpec.describe Connectors::Key, type: :connector do
 | |
|   set_tester_connector TesterConnector::Key
 | |
|   let(:model_class) { Devops::Model::Key }
 | |
| 
 | |
|   include_examples 'mongo connector', model_name: :key, only: [:insert, :list]
 | |
| 
 | |
|   describe '#key' do
 | |
|     context 'when scope was passed' do
 | |
|       subject { @connector.key('foo') }
 | |
| 
 | |
|       it 'raises RecordNotFound when there is no such record' do
 | |
|         expect { subject }.to raise_error(RecordNotFound)
 | |
|       end
 | |
| 
 | |
|       it 'returns record if was found' do
 | |
|         @tester_connector.create(id: 'foo') do
 | |
|           expect(subject).to be_an_instance_of(model_class)
 | |
|         end
 | |
|       end
 | |
|     end
 | |
| 
 | |
|     context 'when scope was passed' do
 | |
|       subject { @connector.key('foo', 'user') }
 | |
| 
 | |
|       it 'raises RecordNotFound when there is no such record' do
 | |
|         expect { subject }.to raise_error(RecordNotFound)
 | |
|       end
 | |
| 
 | |
|       it 'returns record if was found' do
 | |
|         @tester_connector.create(id: 'foo', scope: 'user') do
 | |
|           expect(subject).to be_an_instance_of(model_class)
 | |
|         end
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   describe '#key_delete' do
 | |
|     subject { @connector.key_delete('foo') }
 | |
| 
 | |
|     it 'raises RecordNotFound if there is no such record' do
 | |
|       expect{ subject }.to raise_error(RecordNotFound)
 | |
|     end
 | |
| 
 | |
|     it 'remove key in "user" scope' do
 | |
|       @tester_connector.create(id: 'foo', scope: 'user')
 | |
|       subject
 | |
|       expect(@tester_connector.list).to eq []
 | |
|     end
 | |
| 
 | |
|     it "doesn't remove key in 'system' scope" do
 | |
|       @tester_connector.create(id: 'foo', scope: 'system') do
 | |
|         expect {subject}.to raise_error RecordNotFound
 | |
|       end
 | |
|     end
 | |
|   end
 | |
| end
 | 
