aruba 0.14.14 → 1.0.0

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 (299) hide show
  1. checksums.yaml +4 -4
  2. data/.cucumberproignore +3 -0
  3. data/.github/ISSUE_TEMPLATE.md +48 -0
  4. data/.github/PULL_REQUEST_TEMPLATE.md +41 -0
  5. data/.gitignore +1 -0
  6. data/.rspec +1 -1
  7. data/.rubocop.yml +20 -181
  8. data/.rubocop_todo.yml +262 -0
  9. data/.simplecov +7 -5
  10. data/.travis.yml +53 -28
  11. data/.yardopts +3 -0
  12. data/CHANGELOG.md +301 -2
  13. data/CONTRIBUTING.md +247 -45
  14. data/Dockerfile +67 -0
  15. data/Gemfile +5 -114
  16. data/LICENSE +1 -1
  17. data/README.md +57 -180
  18. data/Rakefile +63 -32
  19. data/appveyor.yml +8 -11
  20. data/aruba.gemspec +47 -41
  21. data/bin/console +7 -0
  22. data/bin/test +9 -0
  23. data/cucumber.yml +4 -24
  24. data/doc/dependency_decisions.yml +35 -13
  25. data/docker-compose.yml +26 -0
  26. data/{bin → exe}/aruba +1 -1
  27. data/fixtures/cli-app/Rakefile +1 -1
  28. data/fixtures/cli-app/bin/aruba-test-cli +1 -1
  29. data/fixtures/cli-app/cli-app.gemspec +1 -2
  30. data/fixtures/cli-app/features/support/aruba.rb +1 -0
  31. data/fixtures/cli-app/features/support/env.rb +1 -1
  32. data/fixtures/cli-app/lib/cli/app/suppress_simple_cov_output.rb +3 -3
  33. data/fixtures/cli-app/lib/cli/app/version.rb +1 -1
  34. data/fixtures/cli-app/lib/cli/app.rb +1 -5
  35. data/fixtures/cli-app/spec/spec_helper.rb +4 -7
  36. data/fixtures/empty-app/Rakefile +1 -1
  37. data/fixtures/empty-app/cli-app.gemspec +1 -2
  38. data/fixtures/empty-app/lib/cli/app/version.rb +1 -1
  39. data/fixtures/getting-started-app/Gemfile +1 -1
  40. data/lib/aruba/api/commands.rb +85 -143
  41. data/lib/aruba/api/core.rb +48 -41
  42. data/lib/aruba/api/environment.rb +16 -7
  43. data/lib/aruba/api/filesystem.rb +43 -30
  44. data/lib/aruba/api/text.rb +3 -9
  45. data/lib/aruba/api.rb +6 -11
  46. data/lib/aruba/aruba_path.rb +27 -89
  47. data/lib/aruba/basic_configuration.rb +4 -24
  48. data/lib/aruba/cli.rb +1 -1
  49. data/lib/aruba/command.rb +2 -0
  50. data/lib/aruba/config/jruby.rb +1 -1
  51. data/lib/aruba/config_wrapper.rb +1 -1
  52. data/lib/aruba/configuration.rb +92 -0
  53. data/lib/aruba/console/help.rb +1 -7
  54. data/lib/aruba/console.rb +5 -5
  55. data/lib/aruba/contracts/absolute_path.rb +2 -2
  56. data/lib/aruba/contracts/relative_path.rb +2 -2
  57. data/lib/aruba/cucumber/command.rb +133 -92
  58. data/lib/aruba/cucumber/environment.rb +1 -1
  59. data/lib/aruba/cucumber/file.rb +21 -23
  60. data/lib/aruba/cucumber/hooks.rb +18 -13
  61. data/lib/aruba/cucumber/testing_frameworks.rb +74 -50
  62. data/lib/aruba/cucumber.rb +0 -6
  63. data/lib/aruba/event_bus/name_resolver.rb +5 -16
  64. data/lib/aruba/hooks.rb +1 -1
  65. data/lib/aruba/in_config_wrapper.rb +5 -1
  66. data/lib/aruba/initializer.rb +36 -42
  67. data/lib/aruba/matchers/base/base_matcher.rb +2 -2
  68. data/lib/aruba/matchers/base/message_indenter.rb +19 -0
  69. data/lib/aruba/matchers/base/object_formatter.rb +2 -9
  70. data/lib/aruba/matchers/collection/include_an_object.rb +7 -9
  71. data/lib/aruba/matchers/command/be_successfully_executed.rb +6 -4
  72. data/lib/aruba/matchers/command/have_exit_status.rb +14 -4
  73. data/lib/aruba/matchers/command/have_finished_in_time.rb +3 -5
  74. data/lib/aruba/matchers/command/have_output.rb +10 -5
  75. data/lib/aruba/matchers/command/have_output_on_stderr.rb +2 -2
  76. data/lib/aruba/matchers/command/have_output_on_stdout.rb +2 -2
  77. data/lib/aruba/matchers/command/have_output_size.rb +2 -2
  78. data/lib/aruba/matchers/directory/be_an_existing_directory.rb +5 -7
  79. data/lib/aruba/matchers/directory/have_sub_directory.rb +4 -6
  80. data/lib/aruba/matchers/file/be_a_command_found_in_path.rb +2 -4
  81. data/lib/aruba/matchers/file/be_an_existing_executable.rb +4 -6
  82. data/lib/aruba/matchers/file/be_an_existing_file.rb +5 -7
  83. data/lib/aruba/matchers/file/have_file_content.rb +4 -4
  84. data/lib/aruba/matchers/file/have_file_size.rb +6 -8
  85. data/lib/aruba/matchers/file/have_same_file_content.rb +5 -8
  86. data/lib/aruba/matchers/path/a_path_matching_pattern.rb +2 -4
  87. data/lib/aruba/matchers/path/be_an_absolute_path.rb +3 -5
  88. data/lib/aruba/matchers/path/be_an_existing_path.rb +4 -6
  89. data/lib/aruba/matchers/path/have_permissions.rb +6 -8
  90. data/lib/aruba/matchers/string/include_output_string.rb +8 -10
  91. data/lib/aruba/matchers/string/match_output_string.rb +9 -11
  92. data/lib/aruba/matchers/string/output_string_eq.rb +8 -10
  93. data/lib/aruba/platform.rb +0 -8
  94. data/lib/aruba/platforms/announcer.rb +30 -72
  95. data/lib/aruba/platforms/aruba_file_creator.rb +2 -6
  96. data/lib/aruba/platforms/aruba_fixed_size_file_creator.rb +2 -2
  97. data/lib/aruba/platforms/aruba_logger.rb +23 -7
  98. data/lib/aruba/platforms/command_monitor.rb +11 -103
  99. data/lib/aruba/platforms/determine_disk_usage.rb +56 -14
  100. data/lib/aruba/platforms/filesystem_status.rb +10 -14
  101. data/lib/aruba/platforms/local_environment.rb +2 -2
  102. data/lib/aruba/platforms/simple_table.rb +3 -11
  103. data/lib/aruba/platforms/unix_command_string.rb +7 -11
  104. data/lib/aruba/platforms/unix_environment_variables.rb +18 -27
  105. data/lib/aruba/platforms/unix_platform.rb +16 -50
  106. data/lib/aruba/platforms/unix_which.rb +2 -1
  107. data/lib/aruba/platforms/windows_command_string.rb +15 -10
  108. data/lib/aruba/platforms/windows_environment_variables.rb +43 -44
  109. data/lib/aruba/platforms/windows_platform.rb +4 -0
  110. data/lib/aruba/platforms/windows_which.rb +4 -3
  111. data/lib/aruba/processes/basic_process.rb +18 -20
  112. data/lib/aruba/processes/debug_process.rb +12 -3
  113. data/lib/aruba/processes/in_process.rb +17 -8
  114. data/lib/aruba/processes/spawn_process.rb +36 -39
  115. data/lib/aruba/rspec.rb +14 -36
  116. data/lib/aruba/runtime.rb +3 -6
  117. data/lib/aruba/setup.rb +1 -1
  118. data/lib/aruba/tasks/docker_helpers.rb +154 -0
  119. data/lib/aruba/version.rb +1 -1
  120. metadata +190 -242
  121. data/features/.nav +0 -72
  122. data/features/01_getting_started_with_aruba/cleanup_working_directory.feature +0 -57
  123. data/features/01_getting_started_with_aruba/run_commands.feature +0 -217
  124. data/features/01_getting_started_with_aruba/supported_testing_frameworks.feature +0 -88
  125. data/features/02_configure_aruba/activate_announcer_on_command_failure.feature +0 -38
  126. data/features/02_configure_aruba/basics.feature +0 -151
  127. data/features/02_configure_aruba/command_runtime_environment.feature +0 -129
  128. data/features/02_configure_aruba/console_history_file.feature +0 -38
  129. data/features/02_configure_aruba/exit_timeout.feature +0 -60
  130. data/features/02_configure_aruba/fixtures_directories.feature +0 -38
  131. data/features/02_configure_aruba/fixtures_path_prefix.feature +0 -23
  132. data/features/02_configure_aruba/home_directory.feature +0 -80
  133. data/features/02_configure_aruba/io_timeout.feature +0 -30
  134. data/features/02_configure_aruba/keep_ansi.feature +0 -30
  135. data/features/02_configure_aruba/log_level.feature +0 -38
  136. data/features/02_configure_aruba/physical_block_size.feature +0 -53
  137. data/features/02_configure_aruba/remove_ansi_escape_sequences.feature +0 -38
  138. data/features/02_configure_aruba/root_directory.feature +0 -30
  139. data/features/02_configure_aruba/startup_wait_time.feature +0 -48
  140. data/features/02_configure_aruba/working_directory.feature +0 -38
  141. data/features/03_testing_frameworks/cucumber/announce_information_for_troubleshooting.feature +0 -306
  142. data/features/03_testing_frameworks/cucumber/disable_bunder.feature +0 -18
  143. data/features/03_testing_frameworks/cucumber/steps/command/check_for_exit_statuses.feature +0 -136
  144. data/features/03_testing_frameworks/cucumber/steps/command/check_output_of_command.feature +0 -514
  145. data/features/03_testing_frameworks/cucumber/steps/command/check_stderr_of_command.feature +0 -68
  146. data/features/03_testing_frameworks/cucumber/steps/command/check_stdout_of_command.feature +0 -109
  147. data/features/03_testing_frameworks/cucumber/steps/command/debug_your_command_in_aruba.feature +0 -118
  148. data/features/03_testing_frameworks/cucumber/steps/command/run_a_command.feature +0 -66
  149. data/features/03_testing_frameworks/cucumber/steps/command/run_command_in_process.feature +0 -485
  150. data/features/03_testing_frameworks/cucumber/steps/command/run_command_interactively.feature +0 -90
  151. data/features/03_testing_frameworks/cucumber/steps/command/run_commands_which_require_a_shell.feature +0 -79
  152. data/features/03_testing_frameworks/cucumber/steps/command/send_signal_to_command.feature +0 -83
  153. data/features/03_testing_frameworks/cucumber/steps/command/stop_command.feature +0 -285
  154. data/features/03_testing_frameworks/cucumber/steps/environment/append_environment_variable.feature +0 -52
  155. data/features/03_testing_frameworks/cucumber/steps/environment/modify_home_variable_for_testing.feature +0 -62
  156. data/features/03_testing_frameworks/cucumber/steps/environment/prepend_environment_variable.feature +0 -52
  157. data/features/03_testing_frameworks/cucumber/steps/environment/set_environment_variable.feature +0 -49
  158. data/features/03_testing_frameworks/cucumber/steps/filesystem/append_to_file.feature +0 -45
  159. data/features/03_testing_frameworks/cucumber/steps/filesystem/cd_to_directory.feature +0 -33
  160. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_existence_of_directory.feature +0 -57
  161. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_existence_of_file.feature +0 -43
  162. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_file_content.feature +0 -143
  163. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_non_existence_of_directory.feature +0 -69
  164. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_non_existence_of_file.feature +0 -80
  165. data/features/03_testing_frameworks/cucumber/steps/filesystem/check_permissions_of_file.feature +0 -39
  166. data/features/03_testing_frameworks/cucumber/steps/filesystem/compare_files.feature +0 -42
  167. data/features/03_testing_frameworks/cucumber/steps/filesystem/copy_file_or_directory.feature +0 -45
  168. data/features/03_testing_frameworks/cucumber/steps/filesystem/create_directory.feature +0 -57
  169. data/features/03_testing_frameworks/cucumber/steps/filesystem/create_file.feature +0 -76
  170. data/features/03_testing_frameworks/cucumber/steps/filesystem/move_file_or_directory.feature +0 -44
  171. data/features/03_testing_frameworks/cucumber/steps/filesystem/overwrite_file.feature +0 -72
  172. data/features/03_testing_frameworks/cucumber/steps/filesystem/remove_directory.feature +0 -38
  173. data/features/03_testing_frameworks/cucumber/steps/filesystem/remove_file.feature +0 -38
  174. data/features/03_testing_frameworks/cucumber/steps/filesystem/use_fixtures_for_setup_test.feature +0 -77
  175. data/features/03_testing_frameworks/rspec/hooks/define_after_hook_for_commands.feature +0 -43
  176. data/features/03_testing_frameworks/rspec/hooks/define_before_hook_for_commands.feature +0 -71
  177. data/features/03_testing_frameworks/rspec/setup_aruba_for_rspec.feature +0 -179
  178. data/features/04_aruba_api/command/find_a_started_command.feature +0 -83
  179. data/features/04_aruba_api/command/find_command_in_PATH.feature +0 -37
  180. data/features/04_aruba_api/command/read_stderr_of_command.feature +0 -46
  181. data/features/04_aruba_api/command/read_stdout_of_command.feature +0 -46
  182. data/features/04_aruba_api/command/run_command.feature +0 -423
  183. data/features/04_aruba_api/command/run_simple.feature +0 -254
  184. data/features/04_aruba_api/command/send_signal_to_command.feature +0 -53
  185. data/features/04_aruba_api/command/stop_all_commands.feature +0 -57
  186. data/features/04_aruba_api/command/stop_single_command.feature +0 -132
  187. data/features/04_aruba_api/command/terminate_all_commands.feature +0 -57
  188. data/features/04_aruba_api/command/use_last_command_started.feature +0 -50
  189. data/features/04_aruba_api/command/use_last_command_stopped.feature +0 -89
  190. data/features/04_aruba_api/core/expand_path.feature +0 -88
  191. data/features/04_aruba_api/environment/append_environment_variable.feature +0 -128
  192. data/features/04_aruba_api/environment/delete_environment_variable.feature +0 -63
  193. data/features/04_aruba_api/environment/prepend_environment_variable.feature +0 -128
  194. data/features/04_aruba_api/environment/set_environment_variable.feature +0 -376
  195. data/features/04_aruba_api/filesystem/cd_to_directory.feature +0 -184
  196. data/features/04_aruba_api/filesystem/check_existence_file_or_directory.feature +0 -62
  197. data/features/04_aruba_api/filesystem/check_if_path_is_absolute.feature +0 -48
  198. data/features/04_aruba_api/filesystem/check_if_path_is_directory.feature +0 -53
  199. data/features/04_aruba_api/filesystem/check_if_path_is_file.feature +0 -54
  200. data/features/04_aruba_api/filesystem/check_if_path_is_relative.feature +0 -48
  201. data/features/04_aruba_api/filesystem/create_directory.feature +0 -57
  202. data/features/04_aruba_api/filesystem/move_file_or_directory.feature +0 -119
  203. data/features/04_aruba_api/filesystem/report_disk_usage.feature +0 -152
  204. data/features/04_aruba_api/filesystem/use_fixtures.feature +0 -104
  205. data/features/04_aruba_api/text/extract_text.feature +0 -87
  206. data/features/04_aruba_api/text/replace_variables.feature +0 -45
  207. data/features/04_aruba_api/text/sanitize_text.feature +0 -228
  208. data/features/04_aruba_api/text/unescape_text.feature +0 -127
  209. data/features/05_use_rspec_matchers/command/check_timeouts.feature +0 -48
  210. data/features/05_use_rspec_matchers/directory/have_sub_directory.feature +0 -110
  211. data/features/05_use_rspec_matchers/file/be_a_command_found_in_path.feature +0 -115
  212. data/features/05_use_rspec_matchers/file/be_existing_executable.feature +0 -88
  213. data/features/05_use_rspec_matchers/file/be_existing_file.feature +0 -82
  214. data/features/05_use_rspec_matchers/file/have_file_content.feature +0 -123
  215. data/features/05_use_rspec_matchers/file/have_file_size.feature +0 -107
  216. data/features/05_use_rspec_matchers/path/be_an_absolute_path.feature +0 -74
  217. data/features/05_use_rspec_matchers/path/be_an_existing_path.feature +0 -97
  218. data/features/05_use_rspec_matchers/path/have_permissions.feature +0 -118
  219. data/features/06_use_aruba_cli/initialize_project_with_aruba.feature +0 -79
  220. data/features/06_use_aruba_cli/open_console.feature +0 -55
  221. data/features/08_other/improve_performance_if_using_jruby.feature +0 -37
  222. data/features/step_definitions/hooks.rb +0 -146
  223. data/features/support/aruba.rb +0 -7
  224. data/features/support/env.rb +0 -33
  225. data/features/support/simplecov_setup.rb +0 -11
  226. data/fixtures/spawn_process/stderr.sh +0 -3
  227. data/lib/aruba/api/deprecated.rb +0 -1155
  228. data/lib/aruba/config.rb +0 -107
  229. data/lib/aruba/cucumber/core.rb +0 -5
  230. data/lib/aruba/cucumber/deprecated.rb +0 -93
  231. data/lib/aruba/cucumber/rvm.rb +0 -3
  232. data/lib/aruba/in_process.rb +0 -16
  233. data/lib/aruba/jruby.rb +0 -4
  234. data/lib/aruba/matchers/deprecated/file.rb +0 -17
  235. data/lib/aruba/matchers/deprecated.rb +0 -1
  236. data/lib/aruba/matchers/path/match_path_pattern.rb +0 -41
  237. data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +0 -25
  238. data/lib/aruba/platforms/disk_usage_calculator.rb +0 -20
  239. data/lib/aruba/reporting.rb +0 -126
  240. data/lib/aruba/spawn_process.rb +0 -14
  241. data/script/bootstrap +0 -24
  242. data/script/console +0 -16
  243. data/script/test +0 -3
  244. data/spec/aruba/api/bundler_spec.rb +0 -15
  245. data/spec/aruba/api/commands_spec.rb +0 -30
  246. data/spec/aruba/api/core_spec.rb +0 -184
  247. data/spec/aruba/api/deprecated_spec.rb +0 -421
  248. data/spec/aruba/api/filesystem_spec.rb +0 -746
  249. data/spec/aruba/api/runtime_spec.rb +0 -28
  250. data/spec/aruba/api_spec.rb +0 -73
  251. data/spec/aruba/aruba_path_spec.rb +0 -103
  252. data/spec/aruba/basic_configuration_spec.rb +0 -5
  253. data/spec/aruba/configuration_spec.rb +0 -5
  254. data/spec/aruba/hooks_spec.rb +0 -17
  255. data/spec/aruba/in_config_wrapper_spec.rb +0 -25
  256. data/spec/aruba/jruby_spec.rb +0 -73
  257. data/spec/aruba/matchers/command/have_output_size_spec.rb +0 -25
  258. data/spec/aruba/matchers/command_spec.rb +0 -174
  259. data/spec/aruba/matchers/deprecated_spec.rb +0 -120
  260. data/spec/aruba/matchers/directory_spec.rb +0 -57
  261. data/spec/aruba/matchers/file_spec.rb +0 -208
  262. data/spec/aruba/matchers/path_spec.rb +0 -58
  263. data/spec/aruba/platform/simple_table_spec.rb +0 -23
  264. data/spec/aruba/platform/windows_environment_variables_spec.rb +0 -500
  265. data/spec/aruba/platforms/unix_command_string_spec.rb +0 -17
  266. data/spec/aruba/platforms/windows_command_string_spec.rb +0 -22
  267. data/spec/aruba/processes/spawn_process_spec.rb +0 -112
  268. data/spec/aruba/rspec_spec.rb +0 -15
  269. data/spec/aruba/runtime_spec.rb +0 -29
  270. data/spec/event_bus/name_resolver_spec.rb +0 -68
  271. data/spec/event_bus_spec.rb +0 -158
  272. data/spec/spec_helper.rb +0 -22
  273. data/spec/support/configs/.keep +0 -0
  274. data/spec/support/configs/aruba.rb +0 -5
  275. data/spec/support/configs/pry.rb +0 -3
  276. data/spec/support/configs/rspec.rb +0 -15
  277. data/spec/support/helpers/.keep +0 -0
  278. data/spec/support/helpers/reporting.rb +0 -44
  279. data/spec/support/matchers/.keep +0 -0
  280. data/spec/support/matchers/option.rb +0 -35
  281. data/spec/support/shared_contexts/.keep +0 -0
  282. data/spec/support/shared_contexts/aruba.rb +0 -49
  283. data/spec/support/shared_examples/.keep +0 -0
  284. data/spec/support/shared_examples/configuration.rb +0 -116
  285. data/spec/support/shared_examples/directory.rb +0 -7
  286. data/spec/support/shared_examples/file.rb +0 -7
  287. data/templates/css/console.css +0 -24
  288. data/templates/css/filesystem.css +0 -42
  289. data/templates/css/pygments-autumn.css +0 -59
  290. data/templates/files.erb +0 -14
  291. data/templates/images/LICENSE +0 -22
  292. data/templates/images/folder.png +0 -0
  293. data/templates/images/page_white.png +0 -0
  294. data/templates/images/page_white_gherkin.png +0 -0
  295. data/templates/images/page_white_ruby.png +0 -0
  296. data/templates/index.erb +0 -20
  297. data/templates/js/filesystem.js +0 -5
  298. data/templates/js/jquery-1.11.3.min.js +0 -5
  299. data/templates/main.erb +0 -34
@@ -1,179 +0,0 @@
1
- Feature: Getting started with RSpec and aruba
2
-
3
- Background:
4
- Given I use the fixture "empty-app"
5
-
6
- Scenario: Simple Integration
7
-
8
- To use the simple integration just require `aruba/rspec` in your
9
- `spec_helper.rb`. After that you only need to flag your tests with `type:
10
- :aruba` and some things are set up for.
11
-
12
- The simple integration adds some `before(:each)` hooks for you:
13
-
14
- \* Setup Aruba Test directory
15
- \* Clear environment (ENV)
16
- \* Make HOME variable configurable via `arub.config.home_directory`
17
- \* Configure `aruba` via `RSpec` metadata
18
- \* Activate announcers based on `RSpec` metadata
19
-
20
- Be careful, if you are going to use a `before(:all)` hook to set up
21
- files/directories. Those will be deleted by the `setup_aruba` call within
22
- the `before(:each)` hook. Look for some custom integration further down the
23
- documentation for a solution.
24
-
25
- Given a file named "spec/spec_helper.rb" with:
26
- """
27
- require 'aruba/rspec'
28
- """
29
- And a file named "spec/getting_started_spec.rb" with:
30
- """
31
- require 'spec_helper'
32
-
33
- RSpec.describe 'Integrate Aruba into RSpec', :type => :aruba do
34
- context 'when to be or not be...' do
35
- it { expect(aruba).to be }
36
- end
37
-
38
- context 'when write file' do
39
- let(:file) { 'file.txt' }
40
-
41
- before(:each) { write_file file, 'Hello World' }
42
-
43
- it { expect(file).to be_an_existing_file }
44
- it { expect([file]).to include an_existing_file }
45
- end
46
- end
47
- """
48
- When I run `rspec`
49
- Then the specs should all pass
50
-
51
- Scenario: Simple Custom Integration
52
-
53
- There might be some use cases where you want to build an aruba integration
54
- of your own. You need to include the API and make sure, that you run
55
-
56
- \* `restore_env` (only for aruba < 1.0.0)
57
- \* `setup_aruba`
58
-
59
- before any method of aruba is used.
60
-
61
- Given a file named "spec/spec_helper.rb" with:
62
- """
63
- require 'aruba/api'
64
-
65
- RSpec.configure do |config|
66
- config.include Aruba::Api
67
- end
68
- """
69
- And a file named "spec/getting_started_spec.rb" with:
70
- """
71
- require 'spec_helper'
72
-
73
- RSpec.describe 'Custom Integration of aruba' do
74
- let(:file) { 'file.txt' }
75
-
76
- before(:each) { setup_aruba }
77
- before(:each) { write_file file, 'Hello World' }
78
-
79
- it { expect(file).to be_an_existing_file }
80
- end
81
- """
82
- When I run `rspec`
83
- Then the specs should all pass
84
-
85
- Scenario: Custom Integration using before(:all) hook
86
-
87
- You can even use `aruba` within a `before(:all)` hook. But again, make sure
88
- that `setup_aruba` is run before you use any method of `aruba`. Using
89
- `setup_aruba` both in a `before(:all)` and a `before(:each)` hook is not
90
- possible and therefore not supported:
91
-
92
- Running `setup_aruba` removes `tmp/aruba`, creates a new `tmp/aruba`, and
93
- makes that the working directory. Running it within a `before(:all)` hook,
94
- running some `aruba` method and, then running `setup_aruba` again within a
95
- `before(:each)` hook, will remove the files and directories created within
96
- the `before(:all)` hook.
97
-
98
- Given a file named "spec/spec_helper.rb" with:
99
- """
100
- require 'aruba/api'
101
-
102
- RSpec.configure do |config|
103
- config.include Aruba::Api
104
- end
105
- """
106
- And a file named "spec/getting_started_spec.rb" with:
107
- """
108
- require 'spec_helper'
109
-
110
- RSpec.describe 'Custom Integration of aruba' do
111
- before(:all) { setup_aruba }
112
- before(:all) { write_file 'file.txt', 'Hello World' }
113
-
114
- it { expect('file.txt').to be_an_existing_file }
115
- end
116
- """
117
- When I run `rspec`
118
- Then the specs should all pass
119
-
120
- Scenario: Setup aruba before use any of it's methods
121
-
122
- From 1.0.0 it will be required, that you setup aruba before you use it.
123
-
124
- Given a file named "spec/spec_helper.rb" with:
125
- """
126
- require 'aruba/api'
127
-
128
- RSpec.configure do |config|
129
- config.include Aruba::Api
130
- end
131
- """
132
- And a file named "spec/getting_started_spec.rb" with:
133
- """
134
- require 'spec_helper'
135
-
136
- RSpec.describe 'Custom Integration of aruba' do
137
- let(:file) { 'file.txt' }
138
-
139
- before(:each) { setup_aruba }
140
-
141
- it { expect(true).to be true }
142
- end
143
- """
144
- And an empty file named "tmp/aruba/garbage.txt"
145
- When I run `rspec`
146
- Then the specs should all pass
147
- And the file "tmp/aruba/garbage.txt" should not exist anymore
148
-
149
- Scenario: Fail-safe use if "setup_aruba" is not used
150
-
151
- If you forgot to run `setup_aruba` before the first method of aruba is
152
- used, you might see an error. Although we did our best to prevent this.
153
-
154
- Make sure that you run `setup_aruba` before any method of aruba is used. At
155
- best before each and every test.
156
-
157
- This will be not supported anymore from 1.0.0 on.
158
-
159
- Given a file named "spec/spec_helper.rb" with:
160
- """
161
- require 'aruba/api'
162
-
163
- RSpec.configure do |config|
164
- config.include Aruba::Api
165
- end
166
- """
167
- And a file named "spec/getting_started_spec.rb" with:
168
- """
169
- require 'spec_helper'
170
-
171
- RSpec.describe 'Custom Integration of aruba' do
172
- let(:file) { 'file.txt' }
173
-
174
- it { expect { write_file file, 'Hello World' }.not_to raise_error }
175
- it { expect(aruba.current_directory.directory?).to be true }
176
- end
177
- """
178
- When I run `rspec`
179
- Then the specs should all pass
@@ -1,83 +0,0 @@
1
- Feature: Find a started command
2
-
3
- This feature is experimental and may change without further notice.
4
-
5
- Background:
6
- Given I use a fixture named "cli-app"
7
-
8
- Scenario: Existing command
9
- Given a file named "spec/run_spec.rb" with:
10
- """ruby
11
- require 'spec_helper'
12
-
13
- RSpec.describe 'Run command', :type => :aruba do
14
- before(:each) { run_command('echo hello') }
15
- let(:command) { find_command('echo hello') }
16
-
17
- before(:each) { stop_all_commands }
18
-
19
- it { expect(command).to be_successfully_executed }
20
- it { expect(command.commandline).to eq 'echo hello' }
21
- end
22
- """
23
- When I run `rspec`
24
- Then the specs should all pass
25
-
26
- Scenario: Non-Existing command
27
- Given a file named "spec/run_spec.rb" with:
28
- """ruby
29
- require 'spec_helper'
30
-
31
- RSpec.describe 'Run command', :type => :aruba do
32
- let(:command) { find_command('echo hello') }
33
-
34
- it { expect{ command }.to raise_error Aruba::CommandNotFoundError }
35
- it { expect{ command.commandline }.to raise_error Aruba::CommandNotFoundError }
36
- end
37
- """
38
- When I run `rspec`
39
- Then the specs should all pass
40
-
41
- Scenario: Multiple commands
42
- Given a file named "spec/run_spec.rb" with:
43
- """ruby
44
- require 'spec_helper'
45
-
46
- RSpec.describe 'Run command', :type => :aruba do
47
- before(:each) { run_command('echo hello1') }
48
- before(:each) { run_command('echo hello2') }
49
- let(:command) { find_command('echo hello1') }
50
-
51
- before(:each) { stop_all_commands }
52
-
53
- it { expect(command).to be_successfully_executed }
54
- it { expect(command.commandline).to eq 'echo hello1' }
55
- end
56
- """
57
- When I run `rspec`
58
- Then the specs should all pass
59
-
60
- Scenario: Multiple commands with same commandline
61
-
62
- If searches in reverse. So it finds the last command started with the given commandline.
63
-
64
- Given a file named "spec/run_spec.rb" with:
65
- """ruby
66
- require 'spec_helper'
67
-
68
- RSpec.describe 'Run command', :type => :aruba do
69
- before(:each) { set_environment_variable 'ENV_VAR', '1' }
70
- before(:each) { run_command('bash -c "echo -n $ENV_VAR"') }
71
- before(:each) { set_environment_variable 'ENV_VAR', '2' }
72
- before(:each) { run_command('bash -c "echo -n $ENV_VAR"') }
73
-
74
- let(:command) { find_command('bash -c "echo -n $ENV_VAR"') }
75
-
76
- before(:each) { stop_all_commands }
77
-
78
- it { expect(command).to be_successfully_executed }
79
- it { expect(command.stdout).to eq '2' }
80
- end
81
- """
82
- When I run `rspec`
83
- Then the specs should all pass
@@ -1,37 +0,0 @@
1
- Feature: Get path to command
2
-
3
- Sometimes you only know a commands name, but not where to find it. Here comes
4
- `which` to the rescue.
5
-
6
- Background:
7
- Given I use a fixture named "cli-app"
8
-
9
- Scenario: Existing executable
10
- Given an executable named "bin/aruba-test-cli" with:
11
- """bash
12
- #!/bin/bash
13
- exit 0
14
- """
15
- And a file named "spec/which_spec.rb" with:
16
- """ruby
17
- require 'spec_helper'
18
-
19
- RSpec.describe 'Find path for command', :type => :aruba do
20
- it { expect(which('aruba-test-cli')).to match %r{tmp/aruba/cli-app/bin/aruba-test-cli} }
21
- end
22
- """
23
- When I run `rspec`
24
- Then the specs should all pass
25
-
26
- Scenario: Non-existing executable
27
- Given a file named "bin/aruba-test-cli" does not exist
28
- And a file named "spec/which_spec.rb" with:
29
- """ruby
30
- require 'spec_helper'
31
-
32
- RSpec.describe 'Find path for command', :type => :aruba do
33
- it { expect(which('aruba-test-cli')).to be_nil }
34
- end
35
- """
36
- When I run `rspec`
37
- Then the specs should all pass
@@ -1,46 +0,0 @@
1
- Feature: Access STDERR of command
2
-
3
- You may need to `#stop_all_commands` before accessing `#stderr` of a single
4
- command - e.g. `#last_command_started`.
5
-
6
- Background:
7
- Given I use a fixture named "cli-app"
8
- And the default aruba io wait timeout is 0.1 seconds
9
-
10
- Scenario: Existing executable
11
- Given an executable named "bin/aruba-test-cli" with:
12
- """bash
13
- #!/bin/bash
14
- echo 'Hello, Aruba!' >&2
15
- """
16
- And a file named "spec/run_spec.rb" with:
17
- """ruby
18
- require 'spec_helper'
19
-
20
- RSpec.describe 'Run command', :type => :aruba do
21
- before(:each) { run_command('aruba-test-cli') }
22
- before(:each) { stop_all_commands }
23
- it { expect(last_command_started.stderr).to start_with 'Hello' }
24
- end
25
- """
26
- When I run `rspec`
27
- Then the specs should all pass
28
-
29
- Scenario: Waiting for output to appear
30
- Given an executable named "bin/aruba-test-cli" with:
31
- """bash
32
- #!/bin/bash
33
- sleep 0.1
34
- echo 'Hello, Aruba' >&2
35
- """
36
- And a file named "spec/run_spec.rb" with:
37
- """ruby
38
- require 'spec_helper'
39
-
40
- RSpec.describe 'Run command', :type => :aruba, :io_wait_timeout => 0.2 do
41
- before(:each) { run_command('aruba-test-cli') }
42
- it { expect(last_command_started.stderr).to start_with 'Hello' }
43
- end
44
- """
45
- When I run `rspec`
46
- Then the specs should all pass
@@ -1,46 +0,0 @@
1
- Feature: Access STDOUT of command
2
-
3
- You may need to `#stop_all_commands` before accessing `#stdout` of a single
4
- command - e.g. `#last_command_started`.
5
-
6
- Background:
7
- Given I use a fixture named "cli-app"
8
- And the default aruba io wait timeout is 1 seconds
9
-
10
- Scenario: Existing executable
11
- Given an executable named "bin/aruba-test-cli" with:
12
- """bash
13
- #!/bin/bash
14
- echo 'Hello, Aruba!'
15
- """
16
- And a file named "spec/run_spec.rb" with:
17
- """ruby
18
- require 'spec_helper'
19
-
20
- RSpec.describe 'Run command', :type => :aruba do
21
- before(:each) { run_command('aruba-test-cli') }
22
- before(:each) { stop_all_commands }
23
- it { expect(last_command_started.stdout).to start_with 'Hello' }
24
- end
25
- """
26
- When I run `rspec`
27
- Then the specs should all pass
28
-
29
- Scenario: Waiting for output to appear
30
- Given an executable named "bin/aruba-test-cli" with:
31
- """bash
32
- #!/bin/bash
33
- sleep 0.1
34
- echo 'Hello, Aruba'
35
- """
36
- And a file named "spec/run_spec.rb" with:
37
- """ruby
38
- require 'spec_helper'
39
-
40
- RSpec.describe 'Run command', :type => :aruba, :io_wait_timeout => 0.2 do
41
- before(:each) { run_command('aruba-test-cli') }
42
- it { expect(last_command_started.stdout).to start_with 'Hello' }
43
- end
44
- """
45
- When I run `rspec`
46
- Then the specs should all pass