fluke/devops-service/spec/connectors/key_connector_spec.rb
2015-12-05 12:34:12 +03:00

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