63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require 'db/mongo/connectors/key' | ||
|  | require 'db/mongo/models/key' | ||
|  | require 'spec/connectors/tester_connector/key' | ||
|  | require_relative 'shared_connectors_context' | ||
|  | 
 | ||
|  | RSpec.describe Connectors::Key, type: :connector do | ||
|  |   set_tester_connector TesterConnector::Key | ||
|  |   include_context 'connectors' | ||
|  |   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 |