File: windows_command_string_spec.rb

package info (click to toggle)
ruby-aruba 2.1.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,972 kB
  • sloc: ruby: 7,151; javascript: 6,850; makefile: 5
file content (35 lines) | stat: -rw-r--r-- 1,008 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
require "spec_helper"

RSpec.describe Aruba::Platforms::WindowsCommandString do
  let(:command_string) { described_class.new(base_command, *arguments) }
  let(:cmd_path) { 'C:\Some Path\cmd.exe' }
  let(:arguments) { [] }

  before do
    allow(Aruba.platform).to receive(:which).with("cmd.exe").and_return(cmd_path)
  end

  describe "#to_a" do
    context "with a command with a path" do
      let(:base_command) { "C:\\Foo\\Bar" }

      it { expect(command_string.to_a).to eq [cmd_path, "/c", base_command] }
    end

    context "with a command with a path containing spaces" do
      let(:base_command) { "C:\\Foo Bar\\Baz" }

      it { expect(command_string.to_a).to eq [cmd_path, "/c", 'C:\Foo""" """Bar\Baz'] }
    end

    context "with a command and arguments" do
      let(:base_command) { "C:\\Foo\\Bar" }
      let(:arguments) { ["-w", "baz quux"] }

      it {
        expect(command_string.to_a)
          .to eq [cmd_path, "/c", "#{base_command} -w \"baz quux\""]
      }
    end
  end
end