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