diff options
Diffstat (limited to 'qa/spec/service/docker_run/base_spec.rb')
-rw-r--r-- | qa/spec/service/docker_run/base_spec.rb | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/qa/spec/service/docker_run/base_spec.rb b/qa/spec/service/docker_run/base_spec.rb new file mode 100644 index 00000000000..4c6638cdcf5 --- /dev/null +++ b/qa/spec/service/docker_run/base_spec.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module QA + RSpec.describe Service::DockerRun::Base do + context 'when authenticating' do + let(:instance_one) { Service::DockerRun::Base.new } + let(:instance_two) { Service::DockerRun::Base.new } + + before do + # reset singleton registry state + Service::DockerRun::Base.authenticated_registries.transform_values! { |_v| false } + end + + it 'caches the the registry' do + expect(instance_one).to receive(:shell).once.and_return(nil) + expect(instance_two).not_to receive(:shell) + + instance_one.login('registry.foobar.com', user: 'foobar', password: 'secret') + instance_two.login('registry.foobar.com', user: 'foobar', password: 'secret') + end + + it 'forces authentication if the registry is cached' do + expect(instance_one).to receive(:shell).once.and_return(nil) + expect(instance_two).to receive(:shell).once.and_return(nil) + + instance_one.login('registry.foobar.com', user: 'foobar', password: 'secret') + instance_two.login('registry.foobar.com', user: 'foobar', password: 'secret', force: true) + end + end + end +end |