aruba 0.9.0 → 0.10.0.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -0
  3. data/Gemfile +2 -0
  4. data/History.md +23 -1
  5. data/README.md +2 -2
  6. data/aruba.gemspec +1 -1
  7. data/cucumber.yml +4 -0
  8. data/features/api/command/run.feature +18 -0
  9. data/features/api/environment/remove_environment_variable.feature +63 -0
  10. data/features/api/environment/set_environment_variable.feature +47 -10
  11. data/features/api/{command → text}/extract_text.feature +4 -24
  12. data/features/api/text/sanitize_text.feature +228 -0
  13. data/features/api/{command → text}/unescape_text.feature +9 -13
  14. data/features/cli/init.feature +79 -0
  15. data/features/commands/output/all_output.feature +1 -0
  16. data/features/getting_started/supported_testing_frameworks.feature +104 -0
  17. data/features/output.feature +3 -2
  18. data/features/step_definitions/aruba_dev_steps.rb +1 -60
  19. data/features/step_definitions/hooks.rb +6 -0
  20. data/fixtures/empty-app/README.md +1 -11
  21. data/lib/aruba/api.rb +2 -0
  22. data/lib/aruba/api/command.rb +0 -19
  23. data/lib/aruba/api/deprecated.rb +6 -3
  24. data/lib/aruba/api/environment.rb +18 -0
  25. data/lib/aruba/api/filesystem.rb +1 -1
  26. data/lib/aruba/api/text.rb +41 -0
  27. data/lib/aruba/cli.rb +11 -0
  28. data/lib/aruba/console.rb +3 -2
  29. data/lib/aruba/cucumber.rb +1 -0
  30. data/lib/aruba/cucumber/command.rb +44 -88
  31. data/lib/aruba/cucumber/environment.rb +7 -3
  32. data/lib/aruba/cucumber/file.rb +14 -17
  33. data/lib/aruba/cucumber/hooks.rb +1 -0
  34. data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
  35. data/lib/aruba/initializer.rb +185 -0
  36. data/lib/aruba/matchers/collection/all.rb +9 -0
  37. data/lib/aruba/matchers/command/have_output.rb +1 -2
  38. data/lib/aruba/matchers/command/have_output_on_stderr.rb +1 -2
  39. data/lib/aruba/matchers/command/have_output_on_stdout.rb +1 -2
  40. data/lib/aruba/matchers/string.rb +1 -0
  41. data/lib/aruba/matchers/string/include_output_string.rb +36 -0
  42. data/lib/aruba/matchers/string/match_output_string.rb +37 -0
  43. data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
  44. data/lib/aruba/platforms/local_environment.rb +2 -0
  45. data/lib/aruba/platforms/unix_environment_variables.rb +10 -0
  46. data/lib/aruba/platforms/unix_platform.rb +3 -1
  47. data/lib/aruba/platforms/windows_environment_variables.rb +4 -0
  48. data/lib/aruba/processes/spawn_process.rb +6 -2
  49. data/lib/aruba/version.rb +1 -1
  50. metadata +28 -16
  51. data/fixtures/empty-app/bin/cli +0 -6
  52. data/fixtures/empty-app/script/console +0 -14
  53. data/fixtures/empty-app/spec/spec_helper.rb +0 -9
  54. data/lib/aruba/matchers/collection/all_objects.rb +0 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f2e3003b3ecea3cf45cddaf06835c8ffe7268c6f
4
- data.tar.gz: 8c01fda685c1a9900410307d833c22f2c8974000
3
+ metadata.gz: f28f6c27992873436132f1a1026bf1fefca105da
4
+ data.tar.gz: a84562c8730d436682f1e297e9a1f93e5875cc54
5
5
  SHA512:
6
- metadata.gz: 5d36c1041b9b3e9133534c12e97e988bdfa790da359819a545f5081250e5c165a4c99f2731de036e387ad5a1cb48224df31f4959f4b58ca8f3f1eda936efc906
7
- data.tar.gz: abc7f2b9dd945b80debf37586c7ac4f20632d8e01fdd87c3fc80e4c810b71b18cd830acd039ab3b8250af9fcf42bee18a168f3beb17eca2e94ae9154d8f89631
6
+ metadata.gz: 3cef82f178232a44414a87e5e4b8f1b7582974b4e1e1517defd7154343a5c21a59778951ef71116dae59ea76870924f9945d35f2e69894c637c4f36448a6a424
7
+ data.tar.gz: 8cdd376cb0f7f4d2d70e508135e6b679ec288a5cbd55c55ebbe7d58972da4261a9ccec084017ee1fe5f1cc736f9cc434f2357169fdabd7c2f212ed04a5a31646
data/.travis.yml CHANGED
@@ -13,9 +13,15 @@ rvm:
13
13
  - jruby-21mode
14
14
  - jruby
15
15
  - rbx
16
+ - jruby-9.0.0.0
17
+ - jruby-9.0.0.0-20mode
18
+ - jruby-9.0.0.0-21mode
16
19
  matrix:
17
20
  allow_failures:
18
21
  - rvm: rbx
22
+ - rvm: jrbuby-9.0.0.0
23
+ - rvm: jrbuby-9.0.0.0-20mode
24
+ - rvm: jrbuby-9.0.0.0-21mode
19
25
  notifications:
20
26
  email:
21
27
  - cukes-devs@googlegroups.com
data/Gemfile CHANGED
@@ -75,6 +75,8 @@ group :development, :test do
75
75
  # Upload documentation
76
76
  gem 'relish', '~> 0.7.1'
77
77
  end
78
+
79
+ gem 'minitest', '~> 5.8.0'
78
80
  end
79
81
 
80
82
  platforms :rbx do
data/History.md CHANGED
@@ -1,5 +1,28 @@
1
1
  # Latest Release
2
2
 
3
+ ## [v0.10.0.pre](https://github.com/cucumber/aruba/compare/v0.9.0...v0.10.0)
4
+
5
+ * Add some new steps to make writing documentation easier using "cucumber",
6
+ "rspec", "minitest" together with "aruba" - see [Feature](features/getting_started/supported_testing_frameworks.feature)
7
+ for some examples
8
+ * Write output of commands directly to disk if SpawnProcess is used (see https://github.com/cucumber/aruba/commit/85d74fcca4fff4e753776925d8b003cddaa8041d)
9
+ * Refactored API of cucumber steps to reduce the need for more methods and make
10
+ it easier for users to write their own steps (issue #306)
11
+ * Added `aruba init` to the cli command to setup environment for aruba (issue
12
+ #308)
13
+ * Added new method `delete_environment_variable` to remove environment variable
14
+ * Added work around because of method name conflict between Capybara and RSpec
15
+ (https://github.com/cucumber/aruba/commit/1939c4049d5195ffdd967485f50119bdd86e98a0)
16
+
17
+ # Old releases
18
+
19
+ ## [v0.9.0](https://github.com/cucumber/aruba/compare/v0.9.0.pre2...v0.9.0)
20
+
21
+ * Fix feature test
22
+ * Fix ordering in console
23
+ * Fix bug in console handling SIGINT
24
+ * Deprecated Aruba/Reporting before we remove it
25
+
3
26
  ## [v0.9.0.pre2](https://github.com/cucumber/aruba/compare/v0.9.0.pre...v0.9.0.pre2)
4
27
 
5
28
  * Redefine #to_s and #inspect for BasicProcess to reduce the sheer amount of
@@ -20,7 +43,6 @@
20
43
  * Now we make the process started via `SpawnProcess` the leader of the group to
21
44
  kill all sub-processes more reliably
22
45
 
23
- # Old releases
24
46
 
25
47
  ## [v0.9.0.pre](https://github.com/cucumber/aruba/compare/v0.8.1...v0.9.0.pre)
26
48
 
data/README.md CHANGED
@@ -9,11 +9,11 @@ Linux / OS X | Windows
9
9
  ------------- | -------------
10
10
  [![Build Status](https://travis-ci.org/cucumber/aruba.svg)](http://travis-ci.org/cucumber/aruba) | [![Build status](https://ci.appveyor.com/api/projects/status/jfo2tkqhnrqqcivl?svg=true)](https://ci.appveyor.com/project/cucumberbdd/aruba/branch/master)
11
11
 
12
- `aruba` is an extension for popular TDD and BDD frameworks like "Cucumber" and "RSpec" to make testing of commandline applications meaningful, easy and fun.
12
+ `aruba` is an extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest" to make testing of commandline applications meaningful, easy and fun.
13
13
 
14
14
  Features at a glance:
15
15
 
16
- * Test any command line application, implemented in any programming language - e.g. Bash, Python, Ruby, Java
16
+ * Test any command line application, implemented in any [programming language](features/getting_started/supported_programming_languages.feature) - e.g. Bash, Python, Ruby, Java, ...
17
17
  * Manipulate the file system and the process environment
18
18
  * Automatically reset state of file system and process environment between tests
19
19
 
data/aruba.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |s|
7
7
  s.name = 'aruba'
8
8
  s.version = Aruba::VERSION
9
9
  s.authors = ["Aslak Hellesøy", "David Chelimsky", "Mike Sassak", "Matt Wynne", "Jarl Friis", "Dennis Günnewig"]
10
- s.description = 'Extension for popular TDD and BDD frameworks like "Cucumber" and "RSpec" to make testing commandline applications meaningful, easy and fun.'
10
+ s.description = 'Extension for popular TDD and BDD frameworks like "Cucumber", "RSpec" and "Minitest" to make testing commandline applications meaningful, easy and fun.'
11
11
  s.summary = "aruba-#{s.version}"
12
12
  s.license = 'MIT'
13
13
  s.email = 'cukes@googlegroups.com'
data/cucumber.yml CHANGED
@@ -1,5 +1,8 @@
1
1
  <%
2
+ $LOAD_PATH << ::File.expand_path('../lib', __FILE__)
3
+ require 'aruba/version'
2
4
  require 'ffi'
5
+
3
6
  java_version = (RUBY_DESCRIPTION.match(/.*?on.*?(1\.[\d]\..*? )/))[1] if defined?(JRUBY_VERSION)
4
7
 
5
8
  std_opts = "--color --exclude features/fixtures --require features --tags ~@unsupported-on"
@@ -16,6 +19,7 @@ ignore_opts << '--tags ~@unsupported-on-platform-mac' if FFI::Platform.mac?
16
19
  ignore_opts << '--tags ~@unsupported-on-ruby-older-2' if RUBY_VERSION < '2'
17
20
  ignore_opts << '--tags ~@unsupported-on-ruby-older-193' if RUBY_VERSION < '1.9.3'
18
21
  ignore_opts << '--tags ~@unsupported-on-ruby-older-19' if RUBY_VERSION < '1.9'
22
+ ignore_opts << '--tags ~@requires-aruba-version-1' if Aruba::VERSION < '1'
19
23
  ignore_opts = ignore_opts.join(' ')
20
24
  %>
21
25
  default: <%= std_opts %> --tags ~@wip <%= java_default_opts %> <%= ignore_opts %>
@@ -23,6 +23,24 @@ Feature: Run command
23
23
  When I run `rspec`
24
24
  Then the specs should all pass
25
25
 
26
+ Scenario: Relative path to executable
27
+ Given an executable named "bin/cli" with:
28
+ """bash
29
+ #!/bin/bash
30
+ exit 0
31
+ """
32
+ And a file named "spec/run_spec.rb" with:
33
+ """ruby
34
+ require 'spec_helper'
35
+
36
+ RSpec.describe 'Run command', :type => :aruba do
37
+ before(:each) { run('bin/cli') }
38
+ it { expect(last_command_started).to be_successfully_executed }
39
+ end
40
+ """
41
+ When I run `rspec`
42
+ Then the specs should all pass
43
+
26
44
  Scenario: Non-existing executable
27
45
  Given a file named "bin/cli" does not exist
28
46
  And a file named "spec/run_spec.rb" with:
@@ -0,0 +1,63 @@
1
+ Feature: Remove existing environment variable via API-method
2
+
3
+ It is quite handy to modify the environment of a process. To make this
4
+ possible, `aruba` provides several methods. One of these is
5
+ `#delete_environment_variable`. Using this remove an existing variable.
6
+
7
+ Background:
8
+ Given I use the fixture "cli-app"
9
+
10
+ Scenario: Non-existing variable
11
+ Given a file named "spec/environment_spec.rb" with:
12
+ """ruby
13
+ require 'spec_helper'
14
+
15
+ RSpec.describe 'Long running command', :type => :aruba do
16
+ before(:each) { delete_environment_variable 'LONG_LONG_VARIABLE' }
17
+
18
+ before(:each) { run('env') }
19
+ before(:each) { stop_all_commands }
20
+
21
+ it { expect(last_command_started.output).not_to include 'LONG_LONG_VARIABLE=1' }
22
+ end
23
+ """
24
+ When I run `rspec`
25
+ Then the specs should all pass
26
+
27
+ Scenario: Existing variable set from within the test
28
+ Given a file named "spec/environment_spec.rb" with:
29
+ """ruby
30
+ require 'spec_helper'
31
+
32
+ RSpec.describe 'Long running command', :type => :aruba do
33
+ before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
34
+ before(:each) { delete_environment_variable 'LONG_LONG_VARIABLE' }
35
+
36
+ before(:each) { run('env') }
37
+ before(:each) { stop_all_commands }
38
+
39
+ it { expect(last_command_started.output).not_to include 'LONG_LONG_VARIABLE' }
40
+ end
41
+ """
42
+ When I run `rspec`
43
+ Then the specs should all pass
44
+
45
+ Scenario: Existing variable set by some outer parent process
46
+
47
+ Given a file named "spec/environment_spec.rb" with:
48
+ """ruby
49
+ require 'spec_helper'
50
+
51
+ ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
52
+
53
+ RSpec.describe 'Environment command', :type => :aruba do
54
+ before(:each) { delete_environment_variable 'REALLY_LONG_LONG_VARIABLE' }
55
+
56
+ before(:each) { run('env') }
57
+ before(:each) { stop_all_commands }
58
+
59
+ it { expect(last_command_started.output).not_to include 'REALLY_LONG_LONG_VARIABLE' }
60
+ end
61
+ """
62
+ When I run `rspec`
63
+ Then the specs should all pass
@@ -2,7 +2,7 @@ Feature: Set environment variable via API-method
2
2
 
3
3
  It is quite handy to modify the environment of a process. To make this
4
4
  possible, `aruba` provides several methods. One of these is
5
- `#set_environment_variable`. Using this variable sets the value of a
5
+ `#set_environment_variable`. Using this sets the value of a
6
6
  non-existing variable and overwrites an existing value. Each variable name
7
7
  and each value is converted to a string. Otherwise `ruby` would complain
8
8
  about an invalid argument. To make use of a variable you can either use `#run`
@@ -17,7 +17,7 @@ Feature: Set environment variable via API-method
17
17
  """ruby
18
18
  require 'spec_helper'
19
19
 
20
- RSpec.describe 'Long running command', :type => :aruba do
20
+ RSpec.describe 'Environment command', :type => :aruba do
21
21
  before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
22
22
 
23
23
  before(:each) { run('env') }
@@ -34,7 +34,7 @@ Feature: Set environment variable via API-method
34
34
  """ruby
35
35
  require 'spec_helper'
36
36
 
37
- RSpec.describe 'Long running command', :type => :aruba do
37
+ RSpec.describe 'Environment command', :type => :aruba do
38
38
  before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
39
39
  before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '2' }
40
40
 
@@ -56,7 +56,7 @@ Feature: Set environment variable via API-method
56
56
 
57
57
  ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
58
58
 
59
- RSpec.describe 'Long running command', :type => :aruba do
59
+ RSpec.describe 'Environment command', :type => :aruba do
60
60
  before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '2' }
61
61
 
62
62
  before(:each) { run('env') }
@@ -80,7 +80,7 @@ Feature: Set environment variable via API-method
80
80
 
81
81
  ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
82
82
 
83
- RSpec.describe 'Long running command', :type => :aruba do
83
+ RSpec.describe 'Environment command', :type => :aruba do
84
84
  before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '2' }
85
85
 
86
86
  before(:each) { run('env') }
@@ -110,7 +110,7 @@ Feature: Set environment variable via API-method
110
110
 
111
111
  ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
112
112
 
113
- RSpec.describe 'Long running command', :type => :aruba do
113
+ RSpec.describe 'Environment command', :type => :aruba do
114
114
  before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '2' }
115
115
 
116
116
  before(:each) { run('env') }
@@ -137,7 +137,7 @@ Feature: Set environment variable via API-method
137
137
  """ruby
138
138
  require 'spec_helper'
139
139
 
140
- RSpec.describe 'Long running command', :type => :aruba do
140
+ RSpec.describe 'Environment command', :type => :aruba do
141
141
  before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
142
142
 
143
143
  describe 'Method XX' do
@@ -167,7 +167,7 @@ Feature: Set environment variable via API-method
167
167
 
168
168
  ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
169
169
 
170
- RSpec.describe 'Long running command', :type => :aruba do
170
+ RSpec.describe 'Environment command', :type => :aruba do
171
171
  before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '2' }
172
172
 
173
173
  before(:each) { run('env') }
@@ -203,7 +203,7 @@ Feature: Set environment variable via API-method
203
203
  ENV['LONG_LONG_VARIABLE'] = '1'
204
204
  ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
205
205
 
206
- RSpec.describe 'Long running command', :type => :aruba do
206
+ RSpec.describe 'Environment command', :type => :aruba do
207
207
  it do
208
208
  with_environment 'REALLY_LONG_LONG_VARIABLE' => 2 do
209
209
  with_environment 'LONG_LONG_VARIABLE' => 3 do
@@ -230,7 +230,7 @@ Feature: Set environment variable via API-method
230
230
  """ruby
231
231
  require 'spec_helper'
232
232
 
233
- RSpec.describe 'Long running command', :type => :aruba do
233
+ RSpec.describe 'Environment command', :type => :aruba do
234
234
  # Please mind :context. This is run BEFORE the `around`-hook
235
235
  before(:context) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '1' }
236
236
 
@@ -267,3 +267,40 @@ Feature: Set environment variable via API-method
267
267
  """
268
268
  When I run `rspec`
269
269
  Then the specs should all pass
270
+
271
+ @unsupported-on-platform-windows
272
+ Scenario: Mixed-Case variable
273
+ Given a file named "spec/environment_spec.rb" with:
274
+ """ruby
275
+ require 'spec_helper'
276
+
277
+ RSpec.describe 'Environment command', :type => :aruba do
278
+ before(:each) { set_environment_variable 'long_LONG_VARIABLE', '1' }
279
+
280
+ before(:each) { run('env') }
281
+ before(:each) { stop_all_commands }
282
+
283
+ it { expect(last_command_started.output).to include 'long_LONG_VARIABLE=1' }
284
+ end
285
+ """
286
+ When I run `rspec`
287
+ Then the specs should all pass
288
+
289
+ @unsupported-on-platform-unix
290
+ @unsupported-on-platform-mac
291
+ Scenario: Mixed-Case variable
292
+ Given a file named "spec/environment_spec.rb" with:
293
+ """ruby
294
+ require 'spec_helper'
295
+
296
+ RSpec.describe 'Environment command', :type => :aruba do
297
+ before(:each) { set_environment_variable 'long_LONG_VARIABLE', '1' }
298
+
299
+ before(:each) { run('env') }
300
+ before(:each) { stop_all_commands }
301
+
302
+ it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=1' }
303
+ end
304
+ """
305
+ When I run `rspec`
306
+ Then the specs should all pass
@@ -12,7 +12,7 @@ Feature: Extract text from output
12
12
  #!/bin/bash
13
13
  echo -n "\e[31mText"
14
14
  """
15
- And a file named "spec/which_spec.rb" with:
15
+ And a file named "spec/extract_text_spec.rb" with:
16
16
  """
17
17
  require 'spec_helper'
18
18
 
@@ -32,7 +32,7 @@ Feature: Extract text from output
32
32
  #!/bin/bash
33
33
  echo -n "\033[31mText"
34
34
  """
35
- And a file named "spec/which_spec.rb" with:
35
+ And a file named "spec/extract_text_spec.rb" with:
36
36
  """
37
37
  require 'spec_helper'
38
38
 
@@ -46,33 +46,13 @@ Feature: Extract text from output
46
46
  When I run `rspec`
47
47
  Then the specs should all pass
48
48
 
49
- # Scenario: Output contains ansi escape codes enclosed by \[\]
50
- # Given an executable named "bin/cli" with:
51
- # """
52
- # #!/bin/bash
53
- # echo -n "\[\033[31m\]Text"
54
- # """
55
- # And a file named "spec/which_spec.rb" with:
56
- # """
57
- # require 'spec_helper'
58
- #
59
- # RSpec.describe 'Run command', :type => :aruba do
60
- # before(:each) { run('cli') }
61
- # before(:each) { stop_all_commands }
62
- #
63
- # it { expect(extract_text(unescape_text(last_command.output))).to eq "Text" }
64
- # end
65
- # """
66
- # When I run `rspec`
67
- # Then the specs should all pass
68
-
69
49
  # Scenario: Output contains ansi escape code \016
70
50
  # Given an executable named "bin/cli" with:
71
51
  # """
72
52
  # #!/bin/bash
73
53
  # echo -n "\016Text"
74
54
  # """
75
- # And a file named "spec/which_spec.rb" with:
55
+ # And a file named "spec/extract_text_spec.rb" with:
76
56
  # """
77
57
  # require 'spec_helper'
78
58
  #
@@ -92,7 +72,7 @@ Feature: Extract text from output
92
72
  # #!/bin/bash
93
73
  # echo -n "\017Text"
94
74
  # """
95
- # And a file named "spec/which_spec.rb" with:
75
+ # And a file named "spec/extract_text_spec.rb" with:
96
76
  # """
97
77
  # require 'spec_helper'
98
78
  #
@@ -0,0 +1,228 @@
1
+ Feature: Sanitize text from output
2
+
3
+ If have got some text include \n, \t and the like and need them to become
4
+ special characters again and also want the text to be stripped down to bare
5
+ text, you can use the `#sanitize_text`-method for this.
6
+
7
+ Background:
8
+ Given I use a fixture named "cli-app"
9
+
10
+ Scenario: Output contains \n
11
+ Given an executable named "bin/cli" with:
12
+ """
13
+ #!/bin/bash
14
+ echo -n 'text\ntext'
15
+ """
16
+ And a file named "spec/sanitize_spec.rb" with:
17
+ """
18
+ require 'spec_helper'
19
+
20
+ RSpec.describe 'Run command', :type => :aruba do
21
+ before(:each) { run('cli') }
22
+ before(:each) { stop_all_commands }
23
+
24
+ it { expect(sanitize_text(last_command_started.output)).to eq "text\ntext" }
25
+ end
26
+ """
27
+ When I run `rspec`
28
+ Then the specs should all pass
29
+
30
+ Scenario: Output contains \e
31
+ Given an executable named "bin/cli" with:
32
+ """
33
+ #!/bin/bash
34
+ echo -n 'text\etext'
35
+ """
36
+ And a file named "spec/sanitize_spec.rb" with:
37
+ """
38
+ require 'spec_helper'
39
+
40
+ RSpec.describe 'Run command', :type => :aruba do
41
+ before(:each) { run('cli') }
42
+ before(:each) { stop_all_commands }
43
+
44
+ it { expect(sanitize_text(last_command_started.output)).to eq "texttext" }
45
+ end
46
+ """
47
+ When I run `rspec`
48
+ Then the specs should all pass
49
+
50
+ Scenario: Output contains \"
51
+ Given an executable named "bin/cli" with:
52
+ """
53
+ #!/bin/bash
54
+ echo -n 'text\"text'
55
+ """
56
+ And a file named "spec/sanitize_spec.rb" with:
57
+ """
58
+ require 'spec_helper'
59
+
60
+ RSpec.describe 'Run command', :type => :aruba do
61
+ before(:each) { run('cli') }
62
+ before(:each) { stop_all_commands }
63
+
64
+ it { expect(sanitize_text(last_command_started.output)).to eq "text\"text" }
65
+ end
66
+ """
67
+ When I run `rspec`
68
+ Then the specs should all pass
69
+
70
+ Scenario: Output contains \033
71
+ Given an executable named "bin/cli" with:
72
+ """
73
+ #!/bin/bash
74
+ echo -n 'text\033text'
75
+ """
76
+ And a file named "spec/sanitize_spec.rb" with:
77
+ """
78
+ require 'spec_helper'
79
+
80
+ RSpec.describe 'Run command', :type => :aruba do
81
+ before(:each) { run('cli') }
82
+ before(:each) { stop_all_commands }
83
+
84
+ it { expect(sanitize_text(last_command_started.output)).to eq "texttext" }
85
+ end
86
+ """
87
+ When I run `rspec`
88
+ Then the specs should all pass
89
+
90
+ Scenario: Output contains \017
91
+ Given an executable named "bin/cli" with:
92
+ """
93
+ #!/bin/bash
94
+ echo -n 'text\017text'
95
+ """
96
+ And a file named "spec/sanitize_spec.rb" with:
97
+ """
98
+ require 'spec_helper'
99
+
100
+ RSpec.describe 'Run command', :type => :aruba do
101
+ before(:each) { run('cli') }
102
+ before(:each) { stop_all_commands }
103
+
104
+ it { expect(sanitize_text(last_command_started.output)).to eq "texttext" }
105
+ end
106
+ """
107
+ When I run `rspec`
108
+ Then the specs should all pass
109
+
110
+ Scenario: Output contains \016
111
+ Given an executable named "bin/cli" with:
112
+ """
113
+ #!/bin/bash
114
+ echo -n 'text\016text'
115
+ """
116
+ And a file named "spec/sanitize_spec.rb" with:
117
+ """
118
+ require 'spec_helper'
119
+
120
+ RSpec.describe 'Run command', :type => :aruba do
121
+ before(:each) { run('cli') }
122
+ before(:each) { stop_all_commands }
123
+
124
+ it { expect(sanitize_text(last_command_started.output)).to eq "texttext" }
125
+ end
126
+ """
127
+ When I run `rspec`
128
+ Then the specs should all pass
129
+
130
+ Scenario: Output contains ansi escape codes prefixed by \e
131
+ Given an executable named "bin/cli" with:
132
+ """
133
+ #!/bin/bash
134
+ echo -n "\e[31mText"
135
+ """
136
+ And a file named "spec/sanitize_spec.rb" with:
137
+ """
138
+ require 'spec_helper'
139
+
140
+ RSpec.describe 'Run command', :type => :aruba do
141
+ before(:each) { run('cli') }
142
+ before(:each) { stop_all_commands }
143
+
144
+ it { expect(sanitize_text(last_command_started.output)).to eq "Text" }
145
+ end
146
+ """
147
+ When I run `rspec`
148
+ Then the specs should all pass
149
+
150
+ Scenario: Output contains ansi escape codes prefixed by \033
151
+ Given an executable named "bin/cli" with:
152
+ """
153
+ #!/bin/bash
154
+ echo -n "\033[31mText"
155
+ """
156
+ And a file named "spec/sanitize_spec.rb" with:
157
+ """
158
+ require 'spec_helper'
159
+
160
+ RSpec.describe 'Run command', :type => :aruba do
161
+ before(:each) { run('cli') }
162
+ before(:each) { stop_all_commands }
163
+
164
+ it { expect(sanitize_text(last_command_started.output)).to eq "Text" }
165
+ end
166
+ """
167
+ When I run `rspec`
168
+ Then the specs should all pass
169
+
170
+ Scenario: Output contains ansi escape codes prefixed by \e, but removable is disabled by configuration
171
+ Given an executable named "bin/cli" with:
172
+ """
173
+ #!/bin/bash
174
+ echo -n "\e[31mText"
175
+ """
176
+ And a file named "spec/sanitize_spec.rb" with:
177
+ """
178
+ require 'spec_helper'
179
+
180
+ RSpec.describe 'Run command', :type => :aruba, :remove_ansi_escape_sequences => false, :keep_ansi => true do
181
+ before(:each) { run('cli') }
182
+ before(:each) { stop_all_commands }
183
+
184
+ it { expect(sanitize_text(last_command_started.output)).to eq "\e[31mText" }
185
+ end
186
+ """
187
+ When I run `rspec`
188
+ Then the specs should all pass
189
+
190
+ # Scenario: Output contains ansi escape code \016
191
+ # Given an executable named "bin/cli" with:
192
+ # """
193
+ # #!/bin/bash
194
+ # echo -n "\016Text"
195
+ # """
196
+ # And a file named "spec/sanitize_spec.rb" with:
197
+ # """
198
+ # require 'spec_helper'
199
+ #
200
+ # RSpec.describe 'Run command', :type => :aruba do
201
+ # before(:each) { run('cli') }
202
+ # before(:each) { stop_all_commands }
203
+ #
204
+ # it { expect(sanitize_text(last_command_started.output)).to eq "Text" }
205
+ # end
206
+ # """
207
+ # When I run `rspec`
208
+ # Then the specs should all pass
209
+
210
+ # Scenario: Output contains ansi escape code \017
211
+ # Given an executable named "bin/cli" with:
212
+ # """
213
+ # #!/bin/bash
214
+ # echo -n "\017Text"
215
+ # """
216
+ # And a file named "spec/sanitize_spec.rb" with:
217
+ # """
218
+ # require 'spec_helper'
219
+ #
220
+ # RSpec.describe 'Run command', :type => :aruba do
221
+ # before(:each) { run('cli') }
222
+ # before(:each) { stop_all_commands }
223
+ #
224
+ # it { expect(sanitize_text(last_command_started.output)).to eq "Text" }
225
+ # end
226
+ # """
227
+ # When I run `rspec`
228
+ # Then the specs should all pass