Sha256: c8d5776b1d4d23e2e9cda5fdff9f03ce45d7431660e05f6ec88db415f3b69d41

Contents?: true

Size: 1.56 KB

Versions: 4

Compression:

Stored size: 1.56 KB

Contents

require "spec_helper"
require "opsicle"

module Opsicle
  describe Deploy do
    subject { Deploy.new('derp') }

    context "#execute" do
      let(:client) { double }
      let(:monitor) { double(:start => nil) }
      before do
        allow(Client).to receive(:new).with('derp').and_return(client)
        allow(client).to receive(:run_command).with('deploy').and_return({deployment_id: 'derp'})

        allow(Monitor::App).to receive(:new).and_return(monitor)
        allow(monitor).to receive(:start)

        allow(Output).to receive(:say)
        allow(Output).to receive(:say_verbose)
      end

      it "creates a new deployment and opens stack monitor" do
        expect(client).to receive(:run_command).with('deploy').and_return({deployment_id: 'derp'})
        expect(subject).to_not receive(:open_deploy)
        expect(Monitor::App).to receive(:new)

        subject.execute
      end

      it "opens the OpsWorks deployments screen if browser option is given" do
        expect(subject).to receive(:open_deploy)
        expect(Monitor::App).to_not receive(:new)

        subject.execute({ browser: true })
      end

      it "doesn't open the stack monitor or open the browser window when no-monitor option is given" do
        expect(subject).to_not receive(:open_deploy)
        expect(Monitor::App).to_not receive(:new)

        subject.execute({ monitor: false })
      end
    end

    context "#client" do
      it "generates a new aws client from the given configs" do
        expect(Client).to receive(:new).with('derp')
        subject.client
      end
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
opsicle-0.4.2 spec/opsicle/commands/deploy_spec.rb
opsicle-0.4.0 spec/opsicle/commands/deploy_spec.rb
opsicle-0.3.1 spec/opsicle/commands/deploy_spec.rb
opsicle-0.3.0 spec/opsicle/commands/deploy_spec.rb