aruba-win-fix 0.14.2
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.
- checksums.yaml +7 -0
- data/.document +5 -0
- data/.gitignore +37 -0
- data/.rspec +3 -0
- data/.rubocop.yml +188 -0
- data/.simplecov +34 -0
- data/.travis.yml +47 -0
- data/.yardopts +8 -0
- data/CONTRIBUTING.md +71 -0
- data/Gemfile +83 -0
- data/History.md +579 -0
- data/LICENSE +20 -0
- data/README.md +226 -0
- data/Rakefile +49 -0
- data/TODO.md +13 -0
- data/appveyor.yml +32 -0
- data/aruba.gemspec +48 -0
- data/bin/aruba +7 -0
- data/config/.gitignore +1 -0
- data/cucumber.yml +26 -0
- data/features/.nav +72 -0
- data/features/api/command/find_command.feature +83 -0
- data/features/api/command/last_command_started.feature +50 -0
- data/features/api/command/last_command_stopped.feature +89 -0
- data/features/api/command/run.feature +414 -0
- data/features/api/command/run_simple.feature +242 -0
- data/features/api/command/send_signal.feature +53 -0
- data/features/api/command/stderr.feature +46 -0
- data/features/api/command/stdout.feature +46 -0
- data/features/api/command/stop.feature +131 -0
- data/features/api/command/stop_all_commands.feature +53 -0
- data/features/api/command/terminate_all_commands.feature +53 -0
- data/features/api/command/which.feature +37 -0
- data/features/api/core/expand_path.feature +88 -0
- data/features/api/environment/append_environment_variable.feature +128 -0
- data/features/api/environment/delete_environment_variable.feature +63 -0
- data/features/api/environment/prepend_environment_variable.feature +128 -0
- data/features/api/environment/set_environment_variable.feature +376 -0
- data/features/api/filesystem/cd.feature +184 -0
- data/features/api/filesystem/create_directory.feature +57 -0
- data/features/api/filesystem/disk_usage.feature +152 -0
- data/features/api/filesystem/does_exist.feature +62 -0
- data/features/api/filesystem/fixtures.feature +104 -0
- data/features/api/filesystem/is_absolute.feature +48 -0
- data/features/api/filesystem/is_directory.feature +53 -0
- data/features/api/filesystem/is_file.feature +54 -0
- data/features/api/filesystem/is_relative.feature +48 -0
- data/features/api/filesystem/move.feature +119 -0
- data/features/api/text/extract_text.feature +87 -0
- data/features/api/text/replace_variables.feature +45 -0
- data/features/api/text/sanitize_text.feature +228 -0
- data/features/api/text/unescape_text.feature +127 -0
- data/features/cli/console.feature +52 -0
- data/features/cli/init.feature +79 -0
- data/features/configuration/activate_announcer_on_command_failure.feature +38 -0
- data/features/configuration/command_runtime_environment.feature +129 -0
- data/features/configuration/console_history_file.feature +38 -0
- data/features/configuration/exit_timeout.feature +52 -0
- data/features/configuration/fixtures_directories.feature +38 -0
- data/features/configuration/fixtures_path_prefix.feature +23 -0
- data/features/configuration/home_directory.feature +80 -0
- data/features/configuration/io_timeout.feature +30 -0
- data/features/configuration/keep_ansi.feature +30 -0
- data/features/configuration/log_level.feature +38 -0
- data/features/configuration/physical_block_size.feature +53 -0
- data/features/configuration/remove_ansi_escape_sequences.feature +38 -0
- data/features/configuration/root_directory.feature +30 -0
- data/features/configuration/startup_wait_time.feature +48 -0
- data/features/configuration/usage.feature +159 -0
- data/features/configuration/working_directory.feature +33 -0
- data/features/development/build.feature +15 -0
- data/features/development/test.feature +24 -0
- data/features/getting_started/cleanup.feature +67 -0
- data/features/getting_started/install.feature +8 -0
- data/features/getting_started/run_commands.feature +177 -0
- data/features/getting_started/supported_testing_frameworks.feature +104 -0
- data/features/getting_started/writing_good_feature_tests.feature +38 -0
- data/features/hooks/after/command.feature +44 -0
- data/features/hooks/before/command.feature +71 -0
- data/features/matchers/collection/include_an_object.feature +72 -0
- data/features/matchers/directory/have_sub_directory.feature +110 -0
- data/features/matchers/file/be_a_command_found_in_path.feature +115 -0
- data/features/matchers/file/be_existing_executable.feature +88 -0
- data/features/matchers/file/be_existing_file.feature +82 -0
- data/features/matchers/file/have_file_content.feature +123 -0
- data/features/matchers/file/have_file_size.feature +107 -0
- data/features/matchers/path/be_an_absolute_path.feature +74 -0
- data/features/matchers/path/be_an_existing_path.feature +97 -0
- data/features/matchers/path/have_permissions.feature +118 -0
- data/features/matchers/timeouts.feature +48 -0
- data/features/platforms/jruby.feature +14 -0
- data/features/rspec/integration.feature +179 -0
- data/features/step_definitions/aruba_dev_steps.rb +56 -0
- data/features/step_definitions/hooks.rb +96 -0
- data/features/steps/command/debug.feature +92 -0
- data/features/steps/command/exit_statuses.feature +136 -0
- data/features/steps/command/in_process.feature +485 -0
- data/features/steps/command/interactive.feature +90 -0
- data/features/steps/command/output.feature +588 -0
- data/features/steps/command/run.feature +66 -0
- data/features/steps/command/send_signal.feature +104 -0
- data/features/steps/command/shell.feature +155 -0
- data/features/steps/command/stderr.feature +68 -0
- data/features/steps/command/stdout.feature +109 -0
- data/features/steps/command/stop.feature +313 -0
- data/features/steps/core/announce.feature +283 -0
- data/features/steps/environment/append_environment_variable.feature +52 -0
- data/features/steps/environment/home_variable.feature +62 -0
- data/features/steps/environment/prepend_environment_variable.feature +52 -0
- data/features/steps/environment/set_environment_variable.feature +49 -0
- data/features/steps/filesystem/append_to_file.feature +45 -0
- data/features/steps/filesystem/cd_to_directory.feature +33 -0
- data/features/steps/filesystem/check_file_content.feature +61 -0
- data/features/steps/filesystem/check_permissions_of_file.feature +39 -0
- data/features/steps/filesystem/compare_files.feature +42 -0
- data/features/steps/filesystem/copy.feature +45 -0
- data/features/steps/filesystem/create_directory.feature +57 -0
- data/features/steps/filesystem/create_file.feature +76 -0
- data/features/steps/filesystem/existence_of_directory.feature +57 -0
- data/features/steps/filesystem/existence_of_file.feature +43 -0
- data/features/steps/filesystem/file_content.feature +86 -0
- data/features/steps/filesystem/fixtures.feature +64 -0
- data/features/steps/filesystem/move.feature +45 -0
- data/features/steps/filesystem/non_existence_of_directory.feature +69 -0
- data/features/steps/filesystem/non_existence_of_file.feature +80 -0
- data/features/steps/filesystem/overwrite_file.feature +72 -0
- data/features/steps/filesystem/remove_directory.feature +38 -0
- data/features/steps/filesystem/remove_file.feature +38 -0
- data/features/steps/filesystem/use_fixture.feature +77 -0
- data/features/steps/overview.feature +60 -0
- data/features/support/aruba.rb +7 -0
- data/features/support/env.rb +33 -0
- data/features/support/jruby.rb +5 -0
- data/features/support/simplecov_setup.rb +8 -0
- data/fixtures/cli-app/.gitignore +9 -0
- data/fixtures/cli-app/.rspec +2 -0
- data/fixtures/cli-app/README.md +39 -0
- data/fixtures/cli-app/Rakefile +1 -0
- data/fixtures/cli-app/bin/cli +6 -0
- data/fixtures/cli-app/cli-app.gemspec +26 -0
- data/fixtures/cli-app/features/support/env.rb +1 -0
- data/fixtures/cli-app/lib/cli/app.rb +13 -0
- data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +15 -0
- data/fixtures/cli-app/lib/cli/app/version.rb +5 -0
- data/fixtures/cli-app/script/console +14 -0
- data/fixtures/cli-app/spec/spec_helper.rb +9 -0
- data/fixtures/cli-app/spec/support/aruba.rb +1 -0
- data/fixtures/copy/file.txt +1 -0
- data/fixtures/empty-app/.gitignore +9 -0
- data/fixtures/empty-app/.rspec +2 -0
- data/fixtures/empty-app/README.md +24 -0
- data/fixtures/empty-app/Rakefile +1 -0
- data/fixtures/empty-app/cli-app.gemspec +26 -0
- data/fixtures/empty-app/lib/cli/app.rb +13 -0
- data/fixtures/empty-app/lib/cli/app/version.rb +5 -0
- data/fixtures/getting-started-app/.gitignore +4 -0
- data/fixtures/getting-started-app/Gemfile +4 -0
- data/fixtures/getting-started-app/README.md +3 -0
- data/fixtures/getting-started-app/features/support/env.rb +1 -0
- data/fixtures/spawn_process/stderr.sh +3 -0
- data/lib/aruba.rb +1 -0
- data/lib/aruba/api.rb +34 -0
- data/lib/aruba/api/command.rb +307 -0
- data/lib/aruba/api/core.rb +191 -0
- data/lib/aruba/api/deprecated.rb +897 -0
- data/lib/aruba/api/environment.rb +89 -0
- data/lib/aruba/api/filesystem.rb +392 -0
- data/lib/aruba/api/rvm.rb +44 -0
- data/lib/aruba/api/text.rb +56 -0
- data/lib/aruba/aruba_path.rb +133 -0
- data/lib/aruba/basic_configuration.rb +240 -0
- data/lib/aruba/basic_configuration/option.rb +32 -0
- data/lib/aruba/cli.rb +26 -0
- data/lib/aruba/colorizer.rb +108 -0
- data/lib/aruba/command.rb +74 -0
- data/lib/aruba/config.rb +108 -0
- data/lib/aruba/config/jruby.rb +17 -0
- data/lib/aruba/config_wrapper.rb +58 -0
- data/lib/aruba/console.rb +70 -0
- data/lib/aruba/console/help.rb +35 -0
- data/lib/aruba/contracts/absolute_path.rb +20 -0
- data/lib/aruba/contracts/enum.rb +26 -0
- data/lib/aruba/contracts/is_power_of_two.rb +22 -0
- data/lib/aruba/contracts/relative_path.rb +20 -0
- data/lib/aruba/cucumber.rb +13 -0
- data/lib/aruba/cucumber/command.rb +422 -0
- data/lib/aruba/cucumber/core.rb +5 -0
- data/lib/aruba/cucumber/environment.rb +42 -0
- data/lib/aruba/cucumber/file.rb +201 -0
- data/lib/aruba/cucumber/hooks.rb +160 -0
- data/lib/aruba/cucumber/rvm.rb +3 -0
- data/lib/aruba/cucumber/testing_frameworks.rb +95 -0
- data/lib/aruba/errors.rb +37 -0
- data/lib/aruba/event_bus.rb +59 -0
- data/lib/aruba/event_bus/name_resolver.rb +168 -0
- data/lib/aruba/events.rb +39 -0
- data/lib/aruba/extensions/string/strip.rb +25 -0
- data/lib/aruba/file_size.rb +63 -0
- data/lib/aruba/generators/script_file.rb +46 -0
- data/lib/aruba/hooks.rb +56 -0
- data/lib/aruba/in_config_wrapper.rb +24 -0
- data/lib/aruba/in_process.rb +14 -0
- data/lib/aruba/initializer.rb +222 -0
- data/lib/aruba/jruby.rb +4 -0
- data/lib/aruba/matchers/base/base_matcher.rb +96 -0
- data/lib/aruba/matchers/base/object_formatter.rb +114 -0
- data/lib/aruba/matchers/collection.rb +1 -0
- data/lib/aruba/matchers/collection/all.rb +11 -0
- data/lib/aruba/matchers/collection/include_an_object.rb +122 -0
- data/lib/aruba/matchers/command.rb +1 -0
- data/lib/aruba/matchers/command/be_successfully_executed.rb +34 -0
- data/lib/aruba/matchers/command/have_exit_status.rb +38 -0
- data/lib/aruba/matchers/command/have_finished_in_time.rb +37 -0
- data/lib/aruba/matchers/command/have_output.rb +36 -0
- data/lib/aruba/matchers/command/have_output_on_stderr.rb +32 -0
- data/lib/aruba/matchers/command/have_output_on_stdout.rb +32 -0
- data/lib/aruba/matchers/command/have_output_size.rb +28 -0
- data/lib/aruba/matchers/directory.rb +1 -0
- data/lib/aruba/matchers/directory/be_an_existing_directory.rb +38 -0
- data/lib/aruba/matchers/directory/have_sub_directory.rb +53 -0
- data/lib/aruba/matchers/environment.rb +1 -0
- data/lib/aruba/matchers/file.rb +1 -0
- data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +36 -0
- data/lib/aruba/matchers/file/be_an_existing_executable.rb +37 -0
- data/lib/aruba/matchers/file/be_an_existing_file.rb +38 -0
- data/lib/aruba/matchers/file/have_file_content.rb +62 -0
- data/lib/aruba/matchers/file/have_file_size.rb +47 -0
- data/lib/aruba/matchers/file/have_same_file_content.rb +48 -0
- data/lib/aruba/matchers/path.rb +1 -0
- data/lib/aruba/matchers/path/a_path_matching_pattern.rb +25 -0
- data/lib/aruba/matchers/path/be_an_absolute_path.rb +36 -0
- data/lib/aruba/matchers/path/be_an_existing_path.rb +37 -0
- data/lib/aruba/matchers/path/have_permissions.rb +64 -0
- data/lib/aruba/matchers/path/match_path_pattern.rb +41 -0
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +25 -0
- data/lib/aruba/matchers/string.rb +1 -0
- data/lib/aruba/matchers/string/include_output_string.rb +36 -0
- data/lib/aruba/matchers/string/match_output_string.rb +37 -0
- data/lib/aruba/matchers/string/output_string_eq.rb +35 -0
- data/lib/aruba/platform.rb +25 -0
- data/lib/aruba/platforms/announcer.rb +232 -0
- data/lib/aruba/platforms/aruba_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +35 -0
- data/lib/aruba/platforms/aruba_logger.rb +81 -0
- data/lib/aruba/platforms/command_monitor.rb +229 -0
- data/lib/aruba/platforms/determine_disk_usage.rb +28 -0
- data/lib/aruba/platforms/determine_file_size.rb +22 -0
- data/lib/aruba/platforms/disk_usage_calculator.rb +20 -0
- data/lib/aruba/platforms/filesystem_status.rb +68 -0
- data/lib/aruba/platforms/local_environment.rb +29 -0
- data/lib/aruba/platforms/simple_table.rb +54 -0
- data/lib/aruba/platforms/unix_command_string.rb +27 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +220 -0
- data/lib/aruba/platforms/unix_platform.rb +276 -0
- data/lib/aruba/platforms/unix_which.rb +85 -0
- data/lib/aruba/platforms/windows_command_string.rb +31 -0
- data/lib/aruba/platforms/windows_environment_variables.rb +89 -0
- data/lib/aruba/platforms/windows_platform.rb +42 -0
- data/lib/aruba/platforms/windows_which.rb +106 -0
- data/lib/aruba/processes/basic_process.rb +143 -0
- data/lib/aruba/processes/debug_process.rb +69 -0
- data/lib/aruba/processes/in_process.rb +125 -0
- data/lib/aruba/processes/spawn_process.rb +278 -0
- data/lib/aruba/reporting.rb +126 -0
- data/lib/aruba/rspec.rb +107 -0
- data/lib/aruba/runtime.rb +96 -0
- data/lib/aruba/setup.rb +90 -0
- data/lib/aruba/spawn_process.rb +11 -0
- data/lib/aruba/version.rb +3 -0
- data/script/bootstrap +28 -0
- data/script/console +16 -0
- data/script/test +3 -0
- data/spec/aruba/api/environment/restore_env_spec.rb +65 -0
- data/spec/aruba/api/environment/set_env_spec.rb +42 -0
- data/spec/aruba/api/filesystem/file_size_spec.rb +28 -0
- data/spec/aruba/api/runtime_spec.rb +28 -0
- data/spec/aruba/api_spec.rb +1209 -0
- data/spec/aruba/aruba_path_spec.rb +103 -0
- data/spec/aruba/basic_configuration_spec.rb +5 -0
- data/spec/aruba/configuration_spec.rb +5 -0
- data/spec/aruba/hooks_spec.rb +17 -0
- data/spec/aruba/in_config_wrapper_spec.rb +25 -0
- data/spec/aruba/jruby_spec.rb +55 -0
- data/spec/aruba/matchers/command/have_output_size_spec.rb +25 -0
- data/spec/aruba/matchers/command_spec.rb +174 -0
- data/spec/aruba/matchers/directory_spec.rb +57 -0
- data/spec/aruba/matchers/file_spec.rb +127 -0
- data/spec/aruba/matchers/path_spec.rb +88 -0
- data/spec/aruba/platform/simple_table_spec.rb +23 -0
- data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
- data/spec/aruba/rspec_spec.rb +15 -0
- data/spec/aruba/runtime_spec.rb +29 -0
- data/spec/aruba/spawn_process_spec.rb +60 -0
- data/spec/event_bus/name_resolver_spec.rb +68 -0
- data/spec/event_bus_spec.rb +160 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/support/configs/.keep +0 -0
- data/spec/support/configs/aruba.rb +5 -0
- data/spec/support/configs/pry.rb +3 -0
- data/spec/support/configs/rspec.rb +15 -0
- data/spec/support/helpers/.keep +0 -0
- data/spec/support/helpers/reporting.rb +44 -0
- data/spec/support/matchers/.keep +0 -0
- data/spec/support/matchers/option.rb +35 -0
- data/spec/support/shared_contexts/.keep +0 -0
- data/spec/support/shared_contexts/aruba.rb +48 -0
- data/spec/support/shared_examples/.keep +0 -0
- data/spec/support/shared_examples/configuration.rb +116 -0
- data/spec/support/shared_examples/directory.rb +7 -0
- data/spec/support/shared_examples/file.rb +7 -0
- data/templates/css/console.css +24 -0
- data/templates/css/filesystem.css +42 -0
- data/templates/css/pygments-autumn.css +59 -0
- data/templates/files.erb +14 -0
- data/templates/images/LICENSE +22 -0
- data/templates/images/folder.png +0 -0
- data/templates/images/page_white.png +0 -0
- data/templates/images/page_white_gherkin.png +0 -0
- data/templates/images/page_white_ruby.png +0 -0
- data/templates/index.erb +20 -0
- data/templates/js/filesystem.js +5 -0
- data/templates/js/jquery-1.11.3.min.js +5 -0
- data/templates/main.erb +34 -0
- metadata +629 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
Feature: Set 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
|
+
`#set_environment_variable`. Using this sets the value of a
|
|
6
|
+
non-existing variable and overwrites an existing value. Each variable name
|
|
7
|
+
and each value is converted to a string. Otherwise `ruby` would complain
|
|
8
|
+
about an invalid argument. To make use of a variable you can either use `#run`
|
|
9
|
+
and the like or `#with_environment`. Besides setting a variable globally, you
|
|
10
|
+
can set one for a block of code only using `#with_environment`.
|
|
11
|
+
|
|
12
|
+
Background:
|
|
13
|
+
Given I use the fixture "cli-app"
|
|
14
|
+
|
|
15
|
+
Scenario: Non-existing variable
|
|
16
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
17
|
+
"""ruby
|
|
18
|
+
require 'spec_helper'
|
|
19
|
+
|
|
20
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
21
|
+
before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
|
|
22
|
+
|
|
23
|
+
before(:each) { run('env') }
|
|
24
|
+
before(:each) { stop_all_commands }
|
|
25
|
+
|
|
26
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=1' }
|
|
27
|
+
end
|
|
28
|
+
"""
|
|
29
|
+
When I run `rspec`
|
|
30
|
+
Then the specs should all pass
|
|
31
|
+
|
|
32
|
+
Scenario: Existing variable set from within the test
|
|
33
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
34
|
+
"""ruby
|
|
35
|
+
require 'spec_helper'
|
|
36
|
+
|
|
37
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
38
|
+
before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
|
|
39
|
+
before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '2' }
|
|
40
|
+
|
|
41
|
+
before(:each) { run('env') }
|
|
42
|
+
before(:each) { stop_all_commands }
|
|
43
|
+
|
|
44
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=2' }
|
|
45
|
+
end
|
|
46
|
+
"""
|
|
47
|
+
When I run `rspec`
|
|
48
|
+
Then the specs should all pass
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
Scenario: Existing variable set by some outer parent process
|
|
52
|
+
|
|
53
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
54
|
+
"""ruby
|
|
55
|
+
require 'spec_helper'
|
|
56
|
+
|
|
57
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
|
|
58
|
+
|
|
59
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
60
|
+
before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '2' }
|
|
61
|
+
|
|
62
|
+
before(:each) { run('env') }
|
|
63
|
+
before(:each) { stop_all_commands }
|
|
64
|
+
|
|
65
|
+
it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=2' }
|
|
66
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '1' }
|
|
67
|
+
end
|
|
68
|
+
"""
|
|
69
|
+
When I run `rspec`
|
|
70
|
+
Then the specs should all pass
|
|
71
|
+
|
|
72
|
+
Scenario: Set variable via ENV
|
|
73
|
+
|
|
74
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
75
|
+
"""ruby
|
|
76
|
+
require 'spec_helper'
|
|
77
|
+
|
|
78
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
79
|
+
before(:each) { ENV['REALLY_LONG_LONG_VARIABLE'] = '2' }
|
|
80
|
+
|
|
81
|
+
before(:each) { run('env') }
|
|
82
|
+
before(:each) { stop_all_commands }
|
|
83
|
+
|
|
84
|
+
it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=2' }
|
|
85
|
+
end
|
|
86
|
+
"""
|
|
87
|
+
When I run `rspec`
|
|
88
|
+
Then the specs should all pass
|
|
89
|
+
|
|
90
|
+
Scenario: Existing variable set in before block in RSpec
|
|
91
|
+
|
|
92
|
+
Setting environment variables with `#set_environment_variable('VAR', 'value')` takes
|
|
93
|
+
precedence before setting variables with `ENV['VAR'] = 'value'`.
|
|
94
|
+
|
|
95
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
96
|
+
"""ruby
|
|
97
|
+
require 'spec_helper'
|
|
98
|
+
|
|
99
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
100
|
+
before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '1' }
|
|
101
|
+
before(:each) { ENV['REALLY_LONG_LONG_VARIABLE'] = '2' }
|
|
102
|
+
|
|
103
|
+
before(:each) { run('env') }
|
|
104
|
+
before(:each) { stop_all_commands }
|
|
105
|
+
|
|
106
|
+
it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=1' }
|
|
107
|
+
end
|
|
108
|
+
"""
|
|
109
|
+
When I run `rspec`
|
|
110
|
+
Then the specs should all pass
|
|
111
|
+
|
|
112
|
+
Scenario: Run some ruby code in code with previously set environment
|
|
113
|
+
|
|
114
|
+
The `#with_environment`-block makes the change environment temporary
|
|
115
|
+
avaiable for the code run within the block.
|
|
116
|
+
|
|
117
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
118
|
+
"""ruby
|
|
119
|
+
require 'spec_helper'
|
|
120
|
+
|
|
121
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
|
|
122
|
+
|
|
123
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
124
|
+
before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '2' }
|
|
125
|
+
|
|
126
|
+
before(:each) { run('env') }
|
|
127
|
+
before(:each) { stop_all_commands }
|
|
128
|
+
|
|
129
|
+
it do
|
|
130
|
+
with_environment do
|
|
131
|
+
expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '2'
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '1' }
|
|
136
|
+
|
|
137
|
+
end
|
|
138
|
+
"""
|
|
139
|
+
When I run `rspec`
|
|
140
|
+
Then the specs should all pass
|
|
141
|
+
|
|
142
|
+
Scenario: Run some ruby code with local environment
|
|
143
|
+
|
|
144
|
+
If you need to set some environment variables only for the given block.
|
|
145
|
+
Pass it an `Hash` containing the environment variables.
|
|
146
|
+
|
|
147
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
148
|
+
"""ruby
|
|
149
|
+
require 'spec_helper'
|
|
150
|
+
|
|
151
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
|
|
152
|
+
|
|
153
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
154
|
+
before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '2' }
|
|
155
|
+
|
|
156
|
+
before(:each) { run('env') }
|
|
157
|
+
before(:each) { stop_all_commands }
|
|
158
|
+
|
|
159
|
+
it do
|
|
160
|
+
with_environment 'REALLY_LONG_LONG_VARIABLE' => '3' do
|
|
161
|
+
expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '3'
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
|
|
165
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '1' }
|
|
166
|
+
end
|
|
167
|
+
"""
|
|
168
|
+
When I run `rspec`
|
|
169
|
+
Then the specs should all pass
|
|
170
|
+
|
|
171
|
+
Scenario: Nested setup with rspec
|
|
172
|
+
|
|
173
|
+
It doesn't matter if you define an environment variable in some outer
|
|
174
|
+
scope, when you are using `RSpec`.
|
|
175
|
+
|
|
176
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
177
|
+
"""ruby
|
|
178
|
+
require 'spec_helper'
|
|
179
|
+
|
|
180
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
181
|
+
before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '1' }
|
|
182
|
+
|
|
183
|
+
describe 'Method XX' do
|
|
184
|
+
before(:each) { run('env') }
|
|
185
|
+
before(:each) { stop_all_commands }
|
|
186
|
+
|
|
187
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=1' }
|
|
188
|
+
end
|
|
189
|
+
|
|
190
|
+
describe 'Method YY' do
|
|
191
|
+
before(:each) { set_environment_variable 'LONG_LONG_VARIABLE', '2' }
|
|
192
|
+
|
|
193
|
+
before(:each) { run('env') }
|
|
194
|
+
before(:each) { stop_all_commands }
|
|
195
|
+
|
|
196
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=2' }
|
|
197
|
+
end
|
|
198
|
+
end
|
|
199
|
+
"""
|
|
200
|
+
When I run `rspec`
|
|
201
|
+
Then the specs should all pass
|
|
202
|
+
|
|
203
|
+
Scenario: When an error occures the ENV is not polluted
|
|
204
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
205
|
+
"""ruby
|
|
206
|
+
require 'spec_helper'
|
|
207
|
+
|
|
208
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
|
|
209
|
+
|
|
210
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
211
|
+
before(:each) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '2' }
|
|
212
|
+
|
|
213
|
+
before(:each) { run('env') }
|
|
214
|
+
before(:each) { stop_all_commands }
|
|
215
|
+
|
|
216
|
+
it do
|
|
217
|
+
begin
|
|
218
|
+
with_environment 'REALLY_LONG_LONG_VARIABLE' => '3' do
|
|
219
|
+
fail
|
|
220
|
+
end
|
|
221
|
+
rescue StandardError
|
|
222
|
+
end
|
|
223
|
+
|
|
224
|
+
expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '1'
|
|
225
|
+
end
|
|
226
|
+
|
|
227
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '1' }
|
|
228
|
+
end
|
|
229
|
+
"""
|
|
230
|
+
When I run `rspec`
|
|
231
|
+
Then the specs should all pass
|
|
232
|
+
|
|
233
|
+
Scenario: Run some ruby code with nested environment blocks
|
|
234
|
+
|
|
235
|
+
It is possible to use a `#with_environment`-block with a
|
|
236
|
+
`#with_environment`-block. Each previously set variable is available with
|
|
237
|
+
the most inner block.
|
|
238
|
+
|
|
239
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
240
|
+
"""ruby
|
|
241
|
+
require 'spec_helper'
|
|
242
|
+
|
|
243
|
+
ENV['LONG_LONG_VARIABLE'] = '1'
|
|
244
|
+
ENV['REALLY_LONG_LONG_VARIABLE'] = '1'
|
|
245
|
+
|
|
246
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
247
|
+
it do
|
|
248
|
+
with_environment 'REALLY_LONG_LONG_VARIABLE' => 2 do
|
|
249
|
+
with_environment 'LONG_LONG_VARIABLE' => 3 do
|
|
250
|
+
expect(ENV['LONG_LONG_VARIABLE']).to eq '3'
|
|
251
|
+
expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '2'
|
|
252
|
+
end
|
|
253
|
+
end
|
|
254
|
+
end
|
|
255
|
+
|
|
256
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '1' }
|
|
257
|
+
end
|
|
258
|
+
"""
|
|
259
|
+
When I run `rspec`
|
|
260
|
+
Then the specs should all pass
|
|
261
|
+
|
|
262
|
+
Scenario: Re-use `#with_environment` for multiple `RSpec`-`it`-blocks
|
|
263
|
+
|
|
264
|
+
If you chose to run wrap examples via `RSpec`'s `around`-hook, make sure you
|
|
265
|
+
use `before(:context) {}` instead of `before(:each)` to set an environment
|
|
266
|
+
variable. Only then the `before`-hook is run before the `around`-hook is
|
|
267
|
+
run.
|
|
268
|
+
|
|
269
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
270
|
+
"""ruby
|
|
271
|
+
require 'spec_helper'
|
|
272
|
+
|
|
273
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
274
|
+
# Please mind :context. This is run BEFORE the `around`-hook
|
|
275
|
+
before(:context) { set_environment_variable 'REALLY_LONG_LONG_VARIABLE', '1' }
|
|
276
|
+
|
|
277
|
+
context 'when no arguments are given' do
|
|
278
|
+
around(:each) do |example|
|
|
279
|
+
with_environment do
|
|
280
|
+
example.run
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
it { expect(ENV['REALLY_LONG_LONG_VARIABLE']).to eq '1' }
|
|
285
|
+
|
|
286
|
+
before(:each) { run('env') }
|
|
287
|
+
before(:each) { stop_all_commands }
|
|
288
|
+
|
|
289
|
+
it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=1' }
|
|
290
|
+
end
|
|
291
|
+
|
|
292
|
+
context 'when arguments given' do
|
|
293
|
+
around(:each) do |example|
|
|
294
|
+
with_environment 'LONG_LONG_VARIABLE' => 2 do
|
|
295
|
+
example.run
|
|
296
|
+
end
|
|
297
|
+
end
|
|
298
|
+
|
|
299
|
+
it { expect(ENV['LONG_LONG_VARIABLE']).to eq '2' }
|
|
300
|
+
|
|
301
|
+
before(:each) { run('env') }
|
|
302
|
+
before(:each) { stop_all_commands }
|
|
303
|
+
|
|
304
|
+
it { expect(last_command_started.output).to include 'REALLY_LONG_LONG_VARIABLE=1' }
|
|
305
|
+
end
|
|
306
|
+
end
|
|
307
|
+
"""
|
|
308
|
+
When I run `rspec`
|
|
309
|
+
Then the specs should all pass
|
|
310
|
+
|
|
311
|
+
@unsupported-on-platform-windows
|
|
312
|
+
Scenario: Mixed-Case variable
|
|
313
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
314
|
+
"""ruby
|
|
315
|
+
require 'spec_helper'
|
|
316
|
+
|
|
317
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
318
|
+
before(:each) { set_environment_variable 'long_LONG_VARIABLE', '1' }
|
|
319
|
+
|
|
320
|
+
before(:each) { run('env') }
|
|
321
|
+
before(:each) { stop_all_commands }
|
|
322
|
+
|
|
323
|
+
it { expect(last_command_started.output).to include 'long_LONG_VARIABLE=1' }
|
|
324
|
+
end
|
|
325
|
+
"""
|
|
326
|
+
When I run `rspec`
|
|
327
|
+
Then the specs should all pass
|
|
328
|
+
|
|
329
|
+
@unsupported-on-platform-unix
|
|
330
|
+
@unsupported-on-platform-mac
|
|
331
|
+
Scenario: Mixed-Case variable
|
|
332
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
333
|
+
"""ruby
|
|
334
|
+
require 'spec_helper'
|
|
335
|
+
|
|
336
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
337
|
+
before(:each) { set_environment_variable 'long_LONG_VARIABLE', '1' }
|
|
338
|
+
|
|
339
|
+
before(:each) { run('env') }
|
|
340
|
+
before(:each) { stop_all_commands }
|
|
341
|
+
|
|
342
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=1' }
|
|
343
|
+
end
|
|
344
|
+
"""
|
|
345
|
+
When I run `rspec`
|
|
346
|
+
Then the specs should all pass
|
|
347
|
+
|
|
348
|
+
Scenario: External ruby file / ruby gem modifying ENV
|
|
349
|
+
|
|
350
|
+
There are some Rubygems around which need to modify ENV['NODE_PATH'] like
|
|
351
|
+
[`ruby-stylus`](https://github.com/forgecrafted/ruby-stylus/blob/e7293362dc8cbf550f7c317d721ba6b9087e8833/lib/stylus.rb#L168).
|
|
352
|
+
This is supported by aruba as well.
|
|
353
|
+
|
|
354
|
+
Given a file named "spec/environment_spec.rb" with:
|
|
355
|
+
"""ruby
|
|
356
|
+
require 'spec_helper'
|
|
357
|
+
|
|
358
|
+
$LOAD_PATH << File.expand_path('../../lib', __FILE__)
|
|
359
|
+
|
|
360
|
+
RSpec.describe 'Environment command', :type => :aruba do
|
|
361
|
+
before(:each) do
|
|
362
|
+
require 'my_library'
|
|
363
|
+
end
|
|
364
|
+
|
|
365
|
+
before(:each) { run('env') }
|
|
366
|
+
before(:each) { stop_all_commands }
|
|
367
|
+
|
|
368
|
+
it { expect(last_command_started.output).to include 'LONG_LONG_VARIABLE=1' }
|
|
369
|
+
end
|
|
370
|
+
"""
|
|
371
|
+
And a file named "lib/my_library.rb" with:
|
|
372
|
+
"""
|
|
373
|
+
ENV['LONG_LONG_VARIABLE'] = '1'
|
|
374
|
+
"""
|
|
375
|
+
When I run `rspec`
|
|
376
|
+
Then the specs should all pass
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
Feature: Change current working directory
|
|
2
|
+
|
|
3
|
+
If you need to run some code in a different directory you can use the `cd`
|
|
4
|
+
command. It comes in two flavors:
|
|
5
|
+
|
|
6
|
+
\* First can simply use `cd 'some-dir'`
|
|
7
|
+
\* Second can use the block notation `cd('some-dir') { Dir.getwd }`
|
|
8
|
+
|
|
9
|
+
If you chose to use the latter one, the result of your block is returned. The
|
|
10
|
+
current working directory is only changed for the code inside the block -
|
|
11
|
+
it's use is side effect free.
|
|
12
|
+
|
|
13
|
+
Background:
|
|
14
|
+
Given I use a fixture named "cli-app"
|
|
15
|
+
|
|
16
|
+
Scenario: Existing directory
|
|
17
|
+
Given a file named "spec/cd_spec.rb" with:
|
|
18
|
+
"""ruby
|
|
19
|
+
require 'spec_helper'
|
|
20
|
+
|
|
21
|
+
RSpec.describe 'cd to directory', :type => :aruba do
|
|
22
|
+
before(:each) do
|
|
23
|
+
create_directory 'new_dir.d'
|
|
24
|
+
cd 'new_dir.d'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
before(:each) { run_simple 'pwd' }
|
|
28
|
+
|
|
29
|
+
it { expect(last_command_started.output).to include 'new_dir.d' }
|
|
30
|
+
end
|
|
31
|
+
"""
|
|
32
|
+
When I run `rspec`
|
|
33
|
+
Then the specs should all pass
|
|
34
|
+
|
|
35
|
+
Scenario: Non-Existing directory
|
|
36
|
+
Given a file named "spec/cd_spec.rb" with:
|
|
37
|
+
"""ruby
|
|
38
|
+
require 'spec_helper'
|
|
39
|
+
|
|
40
|
+
RSpec.describe 'cd to directory', :type => :aruba do
|
|
41
|
+
before(:each) { cd 'new_dir.d' }
|
|
42
|
+
before(:each) { run_simple 'pwd' }
|
|
43
|
+
|
|
44
|
+
it { expect(last_command_started.output).to include 'new_dir.d' }
|
|
45
|
+
it { expect(last_command_started).to be_executed_in_time }
|
|
46
|
+
end
|
|
47
|
+
"""
|
|
48
|
+
When I run `rspec`
|
|
49
|
+
Then the specs should not pass
|
|
50
|
+
|
|
51
|
+
Scenario: With block in it-block
|
|
52
|
+
Given a file named "spec/cd_spec.rb" with:
|
|
53
|
+
"""ruby
|
|
54
|
+
require 'spec_helper'
|
|
55
|
+
|
|
56
|
+
RSpec.describe 'cd to directory', :type => :aruba do
|
|
57
|
+
before(:each) do
|
|
58
|
+
create_directory 'new_dir.d/subdir.d'
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
it do
|
|
62
|
+
cd('new_dir.d/subdir.d') { expect(Dir.getwd).to include 'new_dir.d/subdir.d' }
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
"""
|
|
66
|
+
When I run `rspec`
|
|
67
|
+
Then the specs should all pass
|
|
68
|
+
|
|
69
|
+
Scenario: With block in before-block
|
|
70
|
+
|
|
71
|
+
Running `cd` with a block does not change:
|
|
72
|
+
|
|
73
|
+
\* The current directory - `Dir.getwd`
|
|
74
|
+
\* Aruba's current directory
|
|
75
|
+
|
|
76
|
+
Given a file named "spec/cd_spec.rb" with:
|
|
77
|
+
"""ruby
|
|
78
|
+
require 'spec_helper'
|
|
79
|
+
|
|
80
|
+
RSpec.describe 'cd to directory', :type => :aruba do
|
|
81
|
+
before(:each) do
|
|
82
|
+
create_directory 'new_dir.d/subdir.d'
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
before :each do
|
|
86
|
+
cd('new_dir.d/subdir.d') do
|
|
87
|
+
# you code
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
it { expect(Dir.getwd).not_to include 'new_dir.d/subdir.d' }
|
|
92
|
+
it { expect(expand_path('.')).not_to include 'new_dir.d/subdir.d' }
|
|
93
|
+
end
|
|
94
|
+
"""
|
|
95
|
+
When I run `rspec`
|
|
96
|
+
Then the specs should all pass
|
|
97
|
+
|
|
98
|
+
Scenario: The result of the block is returned
|
|
99
|
+
|
|
100
|
+
If you need to run some code in a different directory, you can also use the
|
|
101
|
+
block-notation of `cd`.
|
|
102
|
+
|
|
103
|
+
Given a file named "spec/cd_spec.rb" with:
|
|
104
|
+
"""ruby
|
|
105
|
+
require 'spec_helper'
|
|
106
|
+
|
|
107
|
+
RSpec.describe 'cd to directory', :type => :aruba do
|
|
108
|
+
before(:each) do
|
|
109
|
+
create_directory 'new_dir.d/subdir.d'
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
before :each do
|
|
113
|
+
@my_output = cd('new_dir.d/subdir.d') { Dir.getwd }
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
it { expect(@my_output).to include 'new_dir.d/subdir.d' }
|
|
117
|
+
end
|
|
118
|
+
"""
|
|
119
|
+
When I run `rspec`
|
|
120
|
+
Then the specs should all pass
|
|
121
|
+
|
|
122
|
+
Scenario: It changes the PWD- and OLDPWD-ENV-variable for a given block
|
|
123
|
+
|
|
124
|
+
If you need to run some code in a different directory, you can also use the
|
|
125
|
+
block-notation of `cd`.
|
|
126
|
+
|
|
127
|
+
Given a file named "spec/cd_spec.rb" with:
|
|
128
|
+
"""ruby
|
|
129
|
+
require 'spec_helper'
|
|
130
|
+
|
|
131
|
+
RSpec.describe 'cd to directory', :type => :aruba do
|
|
132
|
+
before(:each) do
|
|
133
|
+
create_directory 'new_dir.d'
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
before :each do
|
|
137
|
+
cd('new_dir.d/') do
|
|
138
|
+
@pwd = ENV['PWD']
|
|
139
|
+
@oldpwd = ENV['OLDPWD']
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
|
|
143
|
+
it { expect(@pwd).to end_with 'new_dir.d' }
|
|
144
|
+
it { expect(@oldpwd).to end_with 'cli-app' }
|
|
145
|
+
end
|
|
146
|
+
"""
|
|
147
|
+
When I run `rspec`
|
|
148
|
+
Then the specs should all pass
|
|
149
|
+
|
|
150
|
+
Scenario: Nested cd calls
|
|
151
|
+
|
|
152
|
+
If you need to run some code in a different directory, you can also use the
|
|
153
|
+
block-notation of `cd`.
|
|
154
|
+
|
|
155
|
+
Given a file named "spec/cd_spec.rb" with:
|
|
156
|
+
"""ruby
|
|
157
|
+
require 'spec_helper'
|
|
158
|
+
|
|
159
|
+
RSpec.describe 'cd to directory', :type => :aruba do
|
|
160
|
+
before(:each) do
|
|
161
|
+
create_directory 'new_dir.d/subdir.d'
|
|
162
|
+
end
|
|
163
|
+
|
|
164
|
+
before :each do
|
|
165
|
+
cd('new_dir.d') do
|
|
166
|
+
@oldpwd_1 = ENV['OLDPWD']
|
|
167
|
+
@pwd_1 = ENV['PWD']
|
|
168
|
+
|
|
169
|
+
cd('subdir.d') do
|
|
170
|
+
@oldpwd_2 = ENV['OLDPWD']
|
|
171
|
+
@pwd_2 = ENV['PWD']
|
|
172
|
+
end
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
it { expect(@oldpwd_1).to be_end_with 'cli-app' }
|
|
177
|
+
it { expect(@pwd_1).to be_end_with 'new_dir.d' }
|
|
178
|
+
|
|
179
|
+
it { expect(@oldpwd_2).to be_end_with 'new_dir.d' }
|
|
180
|
+
it { expect(@pwd_2).to be_end_with 'subdir.d' }
|
|
181
|
+
end
|
|
182
|
+
"""
|
|
183
|
+
When I run `rspec`
|
|
184
|
+
Then the specs should all pass
|