spec/kontena/cli/stacks/build_command_spec.rb in kontena-cli-1.1.0.pre1 vs spec/kontena/cli/stacks/build_command_spec.rb in kontena-cli-1.1.0.rc1

- old
+ new

@@ -1,10 +1,14 @@ require_relative "../../../spec_helper" require "kontena/cli/stacks/build_command" describe Kontena::Cli::Stacks::BuildCommand do + include RequirementsHelper + + mock_current_master + let(:subject) do described_class.new(File.basename($0)) end describe '#execute' do @@ -27,34 +31,41 @@ 'context' => File.expand_path('.') } } end - describe '#execute' do - before(:each) do - allow(subject).to receive(:require_config_file).with('kontena.yml').and_return(true) - allow(subject).to receive(:stack_from_yaml).with('kontena.yml').and_return(stack) - allow(subject).to receive(:system).and_return(true) - end + before(:each) do + allow(subject).to receive(:require_config_file).with('kontena.yml').and_return(true) + allow(subject).to receive(:stack_from_yaml).with('kontena.yml', hash_including(:name, :values)).and_return(stack) + allow(subject).to receive(:system).and_return(true) + end - it 'requires config file' do - expect(subject).to receive(:require_config_file).with('kontena.yml').and_return(true) - subject.run([]) - end + expect_to_require_current_master + expect_to_require_current_master_token - it 'reads stack file' do - expect(subject).to receive(:stack_from_yaml).with('kontena.yml').and_return(stack) - subject.run([]) - end + it 'requires config file' do + expect(subject).to receive(:require_config_file).with('kontena.yml').and_return(true) + subject.run([]) + end - it 'builds docker image' do - expect(subject).to receive(:system).with('docker', 'build', '-t', 'registry.kontena.local/test:latest', '--pull', File.expand_path('.')) - subject.run([]) - end + it 'reads stack file' do + expect(subject).to receive(:stack_from_yaml).with('kontena.yml', hash_including(:name, :values)).and_return(stack) + subject.run([]) + end - it 'pushes docker image' do - expect(subject).to receive(:system).with('docker', 'push', 'registry.kontena.local/test:latest') - subject.run([]) - end + it 'builds docker image' do + expect(subject).to receive(:system).with('docker', 'build', '-t', 'registry.kontena.local/test:latest', '--pull', File.expand_path('.')) + subject.run([]) + end + + it 'pushes docker image' do + expect(subject).to receive(:system).with('docker', 'push', 'registry.kontena.local/test:latest') + subject.run([]) + end + + it 'uses sudo when --sudo given' do + expect(subject).to receive(:system).with('sudo', 'docker', 'build', '-t', 'registry.kontena.local/test:latest', '--pull', File.expand_path('.')).and_return(true) + expect(subject).to receive(:system).with('sudo', 'docker', 'push', 'registry.kontena.local/test:latest').and_return(true) + subject.run(['--sudo']) end end end