Sha256: 72d4f80978279731d952c98859e341f9d4d0895cdee52827c739a3b028712823

Contents?: true

Size: 1.85 KB

Versions: 8

Compression:

Stored size: 1.85 KB

Contents

require "spec_helper"

module Capistrano
  class Configuration
    describe Question do
      let(:question) { Question.new(key, default, options) }
      let(:question_without_echo) { Question.new(key, default, echo: false) }
      let(:question_without_default) { Question.new(key, nil) }
      let(:default) { :default }
      let(:key) { :branch }
      let(:options) { nil }

      describe ".new" do
        it "takes a key, default, options" do
          question
        end
      end

      describe "#call" do
        context "value is entered" do
          let(:branch) { "branch" }

          it "returns the echoed value" do
            $stdout.expects(:print).with("Please enter branch (default): ")
            $stdin.expects(:gets).returns(branch)
            $stdin.expects(:noecho).never

            expect(question.call).to eq(branch)
          end

          it "returns the value but does not echo it" do
            $stdout.expects(:print).with("Please enter branch (default): ")
            $stdin.expects(:noecho).returns(branch)
            $stdout.expects(:print).with("\n")

            expect(question_without_echo.call).to eq(branch)
          end

          it "returns the value but has no default between parenthesis" do
            $stdout.expects(:print).with("Please enter branch: ")
            $stdin.expects(:gets).returns(branch)
            $stdin.expects(:noecho).never

            expect(question_without_default.call).to eq(branch)
          end
        end

        context "value is not entered" do
          let(:branch) { default }

          before do
            $stdout.expects(:print).with("Please enter branch (default): ")
            $stdin.expects(:gets).returns("")
          end

          it "returns the default as the value" do
            expect(question.call).to eq(branch)
          end
        end
      end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
capistrano-3.10.2 spec/lib/capistrano/configuration/question_spec.rb
capistrano-3.10.1 spec/lib/capistrano/configuration/question_spec.rb
capistrano-3.10.0 spec/lib/capistrano/configuration/question_spec.rb
capistrano-3.9.1 spec/lib/capistrano/configuration/question_spec.rb
capistrano-3.9.0 spec/lib/capistrano/configuration/question_spec.rb
capistrano-3.8.2 spec/lib/capistrano/configuration/question_spec.rb
capistrano-3.8.1 spec/lib/capistrano/configuration/question_spec.rb
capistrano-3.8.0 spec/lib/capistrano/configuration/question_spec.rb