aruba 0.8.1 → 0.9.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.
- checksums.yaml +4 -4
- data/.rspec +1 -0
- data/.travis.yml +3 -1
- data/Gemfile +13 -10
- data/History.md +25 -7
- data/README.md +6 -1
- data/Rakefile +16 -3
- data/aruba.gemspec +10 -2
- data/bin/aruba +7 -0
- data/cucumber.yml +11 -2
- data/features/api/command/extract_text.feature +97 -0
- data/features/api/command/unescape_text.feature +119 -0
- data/features/api/core/expand_path.feature +16 -0
- data/features/api/{cd.feature → filesystem/cd.feature} +2 -1
- data/features/api/filesystem/create_directory.feature +57 -0
- data/features/api/filesystem/disk_usage.feature +151 -0
- data/features/api/filesystem/does_exist.feature +62 -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/cli/console.feature +52 -0
- data/features/configuration/console_history_file.feature +38 -0
- data/features/configuration/exit_timeout.feature +2 -1
- data/features/configuration/fixtures_path_prefix.feature +0 -1
- data/features/configuration/home_directory.feature +0 -1
- data/features/configuration/io_timeout.feature +0 -1
- data/features/configuration/keep_ansi.feature +1 -2
- 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 +0 -1
- data/features/configuration/working_directory.feature +2 -1
- data/features/fixtures/cli-app/README.md +5 -0
- data/features/fixtures/cli-app/lib/cli/app.rb +1 -1
- data/features/fixtures/cli-app/spec/spec_helper.rb +1 -2
- data/features/fixtures/cli-app/spec/support/aruba.rb +1 -0
- data/features/fixtures/empty-app/lib/cli/app.rb +1 -1
- data/features/fixtures/empty-app/spec/spec_helper.rb +1 -1
- data/features/step_definitions/aruba_dev_steps.rb +12 -1
- data/features/support/env.rb +1 -1
- data/lib/aruba/announcer.rb +1 -14
- data/lib/aruba/api.rb +6 -6
- data/lib/aruba/api/command.rb +74 -12
- data/lib/aruba/api/core.rb +18 -11
- data/lib/aruba/api/deprecated.rb +60 -72
- data/lib/aruba/api/filesystem.rb +41 -16
- data/lib/aruba/aruba_logger.rb +77 -0
- data/lib/aruba/aruba_path.rb +33 -0
- data/lib/aruba/basic_configuration.rb +2 -2
- data/lib/aruba/cli.rb +11 -0
- data/lib/aruba/config.rb +13 -3
- data/lib/aruba/config/jruby.rb +5 -2
- data/lib/aruba/console.rb +66 -0
- data/lib/aruba/console/help.rb +33 -0
- data/lib/aruba/contracts/is_power_of_two.rb +15 -0
- data/lib/aruba/cucumber.rb +27 -10
- data/lib/aruba/cucumber/hooks.rb +15 -8
- data/lib/aruba/disk_usage_calculator.rb +7 -0
- data/lib/aruba/file_size.rb +52 -0
- data/lib/aruba/in_process.rb +1 -1
- data/lib/aruba/jruby.rb +1 -1
- data/lib/aruba/matchers/command.rb +1 -1
- data/lib/aruba/matchers/directory.rb +1 -1
- data/lib/aruba/matchers/environment.rb +1 -1
- data/lib/aruba/matchers/file.rb +1 -1
- data/lib/aruba/matchers/path.rb +1 -1
- data/lib/aruba/matchers/path/match_path_pattern.rb +1 -1
- data/lib/aruba/matchers/rspec_matcher_include_regexp.rb +1 -1
- data/lib/aruba/platform.rb +14 -242
- data/lib/aruba/{creators → platforms}/aruba_file_creator.rb +3 -3
- data/lib/aruba/{creators → platforms}/aruba_fixed_size_file_creator.rb +2 -2
- data/lib/aruba/platforms/simple_table.rb +36 -0
- data/lib/aruba/platforms/unix_command_string.rb +24 -0
- data/lib/aruba/platforms/unix_environment_variables.rb +130 -0
- data/lib/aruba/platforms/unix_platform.rb +226 -0
- data/lib/aruba/platforms/unix_which.rb +83 -0
- data/lib/aruba/platforms/windows_command_string.rb +23 -0
- data/lib/aruba/platforms/windows_environment_variables.rb +83 -0
- data/lib/aruba/platforms/windows_platform.rb +39 -0
- data/lib/aruba/platforms/windows_which.rb +104 -0
- data/lib/aruba/process_monitor.rb +3 -3
- data/lib/aruba/processes/basic_process.rb +23 -3
- data/lib/aruba/processes/debug_process.rb +2 -2
- data/lib/aruba/processes/in_process.rb +1 -1
- data/lib/aruba/processes/spawn_process.rb +10 -4
- data/lib/aruba/reporting.rb +1 -1
- data/lib/aruba/rspec.rb +8 -6
- data/lib/aruba/runtime.rb +8 -5
- data/lib/aruba/version.rb +1 -1
- data/spec/aruba/api_spec.rb +25 -23
- data/spec/aruba/aruba_path_spec.rb +37 -0
- data/spec/aruba/jruby_spec.rb +1 -1
- data/spec/aruba/matchers/file_spec.rb +2 -2
- data/spec/aruba/matchers/path_spec.rb +3 -3
- data/spec/aruba/platform/simple_table_spec.rb +23 -0
- data/spec/aruba/platform/windows_environment_variables_spec.rb +500 -0
- data/spec/aruba/spawn_process_spec.rb +3 -1
- metadata +90 -12
- data/lib/aruba/contracts/is_a.rb +0 -21
- data/lib/aruba/environment.rb +0 -121
@@ -38,6 +38,22 @@ Feature: Expand paths with aruba
|
|
38
38
|
When I run `rspec`
|
39
39
|
Then the specs should all pass
|
40
40
|
|
41
|
+
Scenario: Warn if aruba's working directory does not exist
|
42
|
+
Given a file named "spec/expand_path_spec.rb" with:
|
43
|
+
"""
|
44
|
+
require 'spec_helper'
|
45
|
+
|
46
|
+
RSpec.describe 'Expand path', :type => :aruba do
|
47
|
+
before(:each) { remove('.') }
|
48
|
+
|
49
|
+
let(:path) { 'path/to/dir' }
|
50
|
+
|
51
|
+
it { expect { expand_path(path) }.to output(/working directory does not exist/).to_stderr }
|
52
|
+
end
|
53
|
+
"""
|
54
|
+
When I run `rspec`
|
55
|
+
Then the specs should all pass
|
56
|
+
|
41
57
|
Scenario: Use ~ in path
|
42
58
|
|
43
59
|
Now this useses the HOME-variable from your normal shell HOME-variable.
|
@@ -42,6 +42,7 @@ Feature: Change current working directory
|
|
42
42
|
before(:each) { run_simple 'pwd' }
|
43
43
|
|
44
44
|
it { expect(last_command.output).to include 'new_dir.d' }
|
45
|
+
it { expect(last_command).to be_executed_in_time }
|
45
46
|
end
|
46
47
|
"""
|
47
48
|
When I run `rspec`
|
@@ -162,7 +163,7 @@ Feature: Change current working directory
|
|
162
163
|
|
163
164
|
before :each do
|
164
165
|
@pwd = cd('new_dir.d') do
|
165
|
-
cd('subdir.d') {
|
166
|
+
cd('subdir.d') { run_simple('pwd') }
|
166
167
|
end
|
167
168
|
end
|
168
169
|
|
@@ -0,0 +1,57 @@
|
|
1
|
+
Feature: Create Directory
|
2
|
+
|
3
|
+
Use the `#create_directory`-method to create a directory within `aruba`'s
|
4
|
+
working directory.
|
5
|
+
|
6
|
+
```ruby
|
7
|
+
require 'spec_helper'
|
8
|
+
|
9
|
+
RSpec.configure do |config|
|
10
|
+
config.include Aruba::Api
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec.describe 'Create directory' do
|
14
|
+
let(:directory) { 'dir.d' }
|
15
|
+
before(:each) { create_directory(directory) }
|
16
|
+
|
17
|
+
it { expect(directory).to be_an_existing_directory }
|
18
|
+
end
|
19
|
+
```
|
20
|
+
|
21
|
+
Background:
|
22
|
+
Given I use a fixture named "cli-app"
|
23
|
+
|
24
|
+
Scenario: New directory
|
25
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
26
|
+
"""
|
27
|
+
require 'spec_helper'
|
28
|
+
|
29
|
+
RSpec.describe 'Create directory', :type => :aruba do
|
30
|
+
let(:directory) { 'dir.d' }
|
31
|
+
before(:each) { create_directory(directory) }
|
32
|
+
|
33
|
+
it { expect(directory).to be_an_existing_directory }
|
34
|
+
end
|
35
|
+
"""
|
36
|
+
When I run `rspec`
|
37
|
+
Then the specs should all pass
|
38
|
+
|
39
|
+
Scenario: Existing directory
|
40
|
+
|
41
|
+
It does not complain if a directory already exists.
|
42
|
+
|
43
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
44
|
+
"""
|
45
|
+
require 'spec_helper'
|
46
|
+
|
47
|
+
RSpec.describe 'Create directory', :type => :aruba do
|
48
|
+
let(:directory) { 'dir.d' }
|
49
|
+
|
50
|
+
before(:each) { create_directory(directory) }
|
51
|
+
before(:each) { create_directory(directory) }
|
52
|
+
|
53
|
+
it { expect(directory).to be_an_existing_directory }
|
54
|
+
end
|
55
|
+
"""
|
56
|
+
When I run `rspec`
|
57
|
+
Then the specs should all pass
|
@@ -0,0 +1,151 @@
|
|
1
|
+
Feature: Report disk usage
|
2
|
+
|
3
|
+
Sometimes you need to check, what amount of disk space a file consumes. We do
|
4
|
+
NOT support "directories" with `#disk_usage`. This does not work reliably
|
5
|
+
over different systems. Here can help `'#disk_usage`. But be careful, by
|
6
|
+
default it uses a block size of "512" (physical block size) to calculate the
|
7
|
+
usage. You may need to adjust this by using `Aruba.configure { |config|
|
8
|
+
config.physical_block_size = 4_096 }`. Don't get confused, if you check the
|
9
|
+
block size by using `File::Stat` (in ruby). It reports the block size of your
|
10
|
+
filesystem, which can be "4_096" for example.
|
11
|
+
|
12
|
+
We're gonna use the (correct) IEC-notation
|
13
|
+
(https://en.wikipedia.org/wiki/Binary_prefix) here:
|
14
|
+
|
15
|
+
\* kilo => kibi
|
16
|
+
\* mega => mebi
|
17
|
+
\* giga => gibi
|
18
|
+
|
19
|
+
Background:
|
20
|
+
Given I use a fixture named "cli-app"
|
21
|
+
|
22
|
+
Scenario: Show disk usage for file
|
23
|
+
Given a file named "spec/disk_usage_spec.rb" with:
|
24
|
+
"""
|
25
|
+
require 'spec_helper'
|
26
|
+
|
27
|
+
RSpec.describe 'disk usage', :type => :aruba do
|
28
|
+
let(:file) { 'file.txt' }
|
29
|
+
|
30
|
+
before(:each) do
|
31
|
+
write_file file, 'a'
|
32
|
+
end
|
33
|
+
|
34
|
+
let(:size_of_single_block) { File::Stat.new(expand_path(file)).blksize }
|
35
|
+
|
36
|
+
it { expect(disk_usage(file)).to eq size_of_single_block }
|
37
|
+
end
|
38
|
+
"""
|
39
|
+
When I run `rspec`
|
40
|
+
Then the specs should all pass
|
41
|
+
|
42
|
+
Scenario: Show disk usage for multiple files
|
43
|
+
|
44
|
+
`#disk_usage` creates the sum of all given objects' sizes.
|
45
|
+
|
46
|
+
Given a file named "spec/disk_usage_spec.rb" with:
|
47
|
+
"""
|
48
|
+
require 'spec_helper'
|
49
|
+
|
50
|
+
RSpec.describe 'disk usage', :type => :aruba do
|
51
|
+
let(:file1) { 'file1.txt' }
|
52
|
+
let(:file2) { 'file2.txt' }
|
53
|
+
|
54
|
+
before(:each) do
|
55
|
+
write_file file1, 'a'
|
56
|
+
write_file file2, 'a'
|
57
|
+
end
|
58
|
+
|
59
|
+
let(:size_of_single_block) { File::Stat.new(expand_path(file1)).blksize }
|
60
|
+
|
61
|
+
it { expect(disk_usage(file1, file2)).to eq size_of_single_block * 2 }
|
62
|
+
it { expect(disk_usage([file1, file2])).to eq size_of_single_block * 2 }
|
63
|
+
end
|
64
|
+
"""
|
65
|
+
When I run `rspec`
|
66
|
+
Then the specs should all pass
|
67
|
+
|
68
|
+
Scenario: Convert reported disk usage to KibiByte
|
69
|
+
Given a file named "spec/disk_usage_spec.rb" with:
|
70
|
+
"""
|
71
|
+
require 'spec_helper'
|
72
|
+
|
73
|
+
RSpec.describe 'disk usage', :type => :aruba do
|
74
|
+
let(:file) { 'file.txt' }
|
75
|
+
|
76
|
+
before(:each) do
|
77
|
+
write_file file, 'a'
|
78
|
+
end
|
79
|
+
|
80
|
+
let(:converted_size) { File::Stat.new(expand_path(file)).blksize.to_f / 1_024 }
|
81
|
+
|
82
|
+
it { expect(disk_usage(file).to_kibi_byte).to eq converted_size }
|
83
|
+
end
|
84
|
+
"""
|
85
|
+
When I run `rspec`
|
86
|
+
Then the specs should all pass
|
87
|
+
|
88
|
+
Scenario: Convert reported disk usage to MebiByte
|
89
|
+
Given a file named "spec/disk_usage_spec.rb" with:
|
90
|
+
"""
|
91
|
+
require 'spec_helper'
|
92
|
+
|
93
|
+
RSpec.describe 'disk usage', :type => :aruba do
|
94
|
+
let(:file) { 'file.txt' }
|
95
|
+
|
96
|
+
before(:each) do
|
97
|
+
write_file file, 'a'
|
98
|
+
end
|
99
|
+
|
100
|
+
let(:converted_size) { File::Stat.new(expand_path(file)).blksize.to_f / 1_024 / 1024 }
|
101
|
+
|
102
|
+
it { expect(disk_usage(file).to_mebi_byte).to eq converted_size }
|
103
|
+
end
|
104
|
+
"""
|
105
|
+
When I run `rspec`
|
106
|
+
Then the specs should all pass
|
107
|
+
|
108
|
+
Scenario: Convert reported disk usage to GibiByte
|
109
|
+
Given a file named "spec/disk_usage_spec.rb" with:
|
110
|
+
"""
|
111
|
+
require 'spec_helper'
|
112
|
+
|
113
|
+
RSpec.describe 'disk usage', :type => :aruba do
|
114
|
+
let(:file) { 'file.txt' }
|
115
|
+
|
116
|
+
before(:each) do
|
117
|
+
write_file file, 'a'
|
118
|
+
end
|
119
|
+
|
120
|
+
let(:converted_size) { File::Stat.new(expand_path(file)).blksize.to_f / 1_024 / 1_024 / 1_024 }
|
121
|
+
|
122
|
+
it { expect(disk_usage(file).to_gibi_byte).to eq converted_size }
|
123
|
+
end
|
124
|
+
"""
|
125
|
+
When I run `rspec`
|
126
|
+
Then the specs should all pass
|
127
|
+
|
128
|
+
Scenario: Compare two repored disk usages
|
129
|
+
Given a file named "spec/disk_usage_spec.rb" with:
|
130
|
+
"""
|
131
|
+
require 'spec_helper'
|
132
|
+
|
133
|
+
RSpec.describe 'disk usage', :type => :aruba do
|
134
|
+
let(:file1) { 'file1.txt' }
|
135
|
+
let(:file2) { 'file2.txt' }
|
136
|
+
|
137
|
+
before(:each) do
|
138
|
+
write_file file1, 'a' * 10_000
|
139
|
+
write_file file2, 'a'
|
140
|
+
end
|
141
|
+
|
142
|
+
before :each do
|
143
|
+
@size1 = disk_usage(file1)
|
144
|
+
@size2 = disk_usage(file2)
|
145
|
+
end
|
146
|
+
|
147
|
+
it { expect(@size1).to be > @size2 }
|
148
|
+
end
|
149
|
+
"""
|
150
|
+
When I run `rspec`
|
151
|
+
Then the specs should all pass
|
@@ -0,0 +1,62 @@
|
|
1
|
+
Feature: Check existence of files and directories
|
2
|
+
|
3
|
+
Use the `#exist?` to check if a path exists within
|
4
|
+
`aruba`'s working directory. , May also want to look for `#file?` or
|
5
|
+
`#directory?` for some more specific tests.
|
6
|
+
|
7
|
+
```ruby
|
8
|
+
require 'spec_helper'
|
9
|
+
|
10
|
+
RSpec.configure do |config|
|
11
|
+
config.include Aruba::Api
|
12
|
+
end
|
13
|
+
|
14
|
+
RSpec.describe 'Check if directory and file exist' do
|
15
|
+
let(:directory) { 'dir.d' }
|
16
|
+
let(:file) { 'file.txt' }
|
17
|
+
|
18
|
+
before(:each) { create_directory(directory) }
|
19
|
+
before(:each) { touch(file) }
|
20
|
+
|
21
|
+
it { expect(exist?(directory)).to be true }
|
22
|
+
it { expect(exist?(file)).to be true }
|
23
|
+
end
|
24
|
+
```
|
25
|
+
|
26
|
+
Background:
|
27
|
+
Given I use a fixture named "cli-app"
|
28
|
+
|
29
|
+
Scenario: Is file or directory and exists
|
30
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
31
|
+
"""
|
32
|
+
require 'spec_helper'
|
33
|
+
|
34
|
+
RSpec.describe 'Check if directory and file exist', :type => :aruba do
|
35
|
+
let(:directory) { 'dir.d' }
|
36
|
+
let(:file) { 'file.txt' }
|
37
|
+
|
38
|
+
before(:each) { create_directory(directory) }
|
39
|
+
before(:each) { touch(file) }
|
40
|
+
|
41
|
+
it { expect(exist?(directory)).to be true }
|
42
|
+
it { expect(exist?(file)).to be true }
|
43
|
+
end
|
44
|
+
"""
|
45
|
+
When I run `rspec`
|
46
|
+
Then the specs should all pass
|
47
|
+
|
48
|
+
Scenario: Is file or directory and does not exist
|
49
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
50
|
+
"""
|
51
|
+
require 'spec_helper'
|
52
|
+
|
53
|
+
RSpec.describe 'Check if directory and file exist', :type => :aruba do
|
54
|
+
let(:directory) { 'dir.d' }
|
55
|
+
let(:file) { 'file.txt' }
|
56
|
+
|
57
|
+
it { expect(exist?(directory)).to be false }
|
58
|
+
it { expect(exist?(file)).to be false }
|
59
|
+
end
|
60
|
+
"""
|
61
|
+
When I run `rspec`
|
62
|
+
Then the specs should all pass
|
@@ -0,0 +1,48 @@
|
|
1
|
+
Feature: Check if path is absolute
|
2
|
+
|
3
|
+
Use the `#absolute?`-method to check if a path is an absolute path.
|
4
|
+
|
5
|
+
```ruby
|
6
|
+
require 'spec_helper'
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
config.include Aruba::Api
|
10
|
+
end
|
11
|
+
|
12
|
+
RSpec.describe 'Check if directory or file is absolute' do
|
13
|
+
let(:path) { '/path/to/file.txt' }
|
14
|
+
|
15
|
+
it { expect(absolute?(path)).to be true }
|
16
|
+
end
|
17
|
+
```
|
18
|
+
|
19
|
+
Background:
|
20
|
+
Given I use a fixture named "cli-app"
|
21
|
+
|
22
|
+
Scenario: Is path absolute
|
23
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
24
|
+
"""
|
25
|
+
require 'spec_helper'
|
26
|
+
|
27
|
+
RSpec.describe 'Check if directory or file is absolute', :type => :aruba do
|
28
|
+
let(:path) { '/path/to/file.txt' }
|
29
|
+
|
30
|
+
it { expect(absolute?(path)).to be true }
|
31
|
+
end
|
32
|
+
"""
|
33
|
+
When I run `rspec`
|
34
|
+
Then the specs should all pass
|
35
|
+
|
36
|
+
Scenario: Path should be absolute, but it's relative
|
37
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
38
|
+
"""
|
39
|
+
require 'spec_helper'
|
40
|
+
|
41
|
+
RSpec.describe 'Check if directory or file is absolute', :type => :aruba do
|
42
|
+
let(:path) { 'file.txt' }
|
43
|
+
|
44
|
+
it { expect(absolute?(path)).to be false }
|
45
|
+
end
|
46
|
+
"""
|
47
|
+
When I run `rspec`
|
48
|
+
Then the specs should all pass
|
@@ -0,0 +1,53 @@
|
|
1
|
+
Feature: Check existence of directories
|
2
|
+
|
3
|
+
Use the `#directory?` to check if a path is a directory and exists within
|
4
|
+
`aruba`'s working directory.
|
5
|
+
|
6
|
+
```ruby
|
7
|
+
require 'spec_helper'
|
8
|
+
|
9
|
+
RSpec.configure do |config|
|
10
|
+
config.include Aruba::Api
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec.describe 'Check if directory and file exist' do
|
14
|
+
let(:directory) { 'dir.d' }
|
15
|
+
|
16
|
+
before(:each) { create_directory(directory) }
|
17
|
+
|
18
|
+
it { expect(directory?(directory)).to be true }
|
19
|
+
end
|
20
|
+
```
|
21
|
+
|
22
|
+
Background:
|
23
|
+
Given I use a fixture named "cli-app"
|
24
|
+
|
25
|
+
Scenario: Is directory and exist
|
26
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
27
|
+
"""
|
28
|
+
require 'spec_helper'
|
29
|
+
|
30
|
+
RSpec.describe 'Check if directory and file exist', :type => :aruba do
|
31
|
+
let(:directory) { 'dir.d' }
|
32
|
+
before(:each) { create_directory(directory) }
|
33
|
+
|
34
|
+
it { expect(directory?(directory)).to be true }
|
35
|
+
end
|
36
|
+
"""
|
37
|
+
When I run `rspec`
|
38
|
+
Then the specs should all pass
|
39
|
+
|
40
|
+
Scenario: Is file, but should be directory and exist
|
41
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
42
|
+
"""
|
43
|
+
require 'spec_helper'
|
44
|
+
|
45
|
+
RSpec.describe 'Check if directory and file exist', :type => :aruba do
|
46
|
+
let(:file) { 'file.txt' }
|
47
|
+
before(:each) { touch(file) }
|
48
|
+
|
49
|
+
it { expect(directory?(file)).to be false }
|
50
|
+
end
|
51
|
+
"""
|
52
|
+
When I run `rspec`
|
53
|
+
Then the specs should all pass
|
@@ -0,0 +1,54 @@
|
|
1
|
+
Feature: Check existence of files
|
2
|
+
|
3
|
+
Use the `#file?` to check if a path is a file and exists within `aruba`'s
|
4
|
+
working directory.
|
5
|
+
|
6
|
+
```ruby
|
7
|
+
require 'spec_helper'
|
8
|
+
|
9
|
+
RSpec.configure do |config|
|
10
|
+
config.include Aruba::Api
|
11
|
+
end
|
12
|
+
|
13
|
+
RSpec.describe 'Check if directory and file exist' do
|
14
|
+
let(:file) { 'file.txt' }
|
15
|
+
|
16
|
+
before(:each) { touch(file) }
|
17
|
+
|
18
|
+
it { expect(file?(file)).to be true }
|
19
|
+
end
|
20
|
+
```
|
21
|
+
|
22
|
+
Background:
|
23
|
+
Given I use a fixture named "cli-app"
|
24
|
+
|
25
|
+
Scenario: Is file and exist
|
26
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
27
|
+
"""
|
28
|
+
require 'spec_helper'
|
29
|
+
|
30
|
+
RSpec.describe 'Check if directory and file exist', :type => :aruba do
|
31
|
+
let(:file) { 'file.txt' }
|
32
|
+
|
33
|
+
before(:each) { touch(file) }
|
34
|
+
|
35
|
+
it { expect(file?(file)).to be true }
|
36
|
+
end
|
37
|
+
"""
|
38
|
+
When I run `rspec`
|
39
|
+
Then the specs should all pass
|
40
|
+
|
41
|
+
Scenario: Is directory, but should be file and exist
|
42
|
+
Given a file named "spec/create_directory_spec.rb" with:
|
43
|
+
"""
|
44
|
+
require 'spec_helper'
|
45
|
+
|
46
|
+
RSpec.describe 'Check if directory and file exist', :type => :aruba do
|
47
|
+
let(:directory) { 'dir.d' }
|
48
|
+
before(:each) { create_directory(directory) }
|
49
|
+
|
50
|
+
it { expect(file?(directory)).to be false }
|
51
|
+
end
|
52
|
+
"""
|
53
|
+
When I run `rspec`
|
54
|
+
Then the specs should all pass
|