polishgeeks-dev-tools 1.2.1 → 1.3.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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +3 -2
  4. data/CHANGELOG.md +69 -0
  5. data/Gemfile.lock +76 -81
  6. data/README.md +28 -22
  7. data/Rakefile +4 -3
  8. data/config/rubocop.yml +16 -16
  9. data/config/rubocop_todo.yml +14 -0
  10. data/lib/polish_geeks/dev_tools.rb +26 -0
  11. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/allowed_extensions.rb +4 -4
  12. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/base.rb +18 -3
  13. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/brakeman.rb +5 -2
  14. data/lib/polish_geeks/dev_tools/commands/bundler_audit.rb +23 -0
  15. data/lib/{polishgeeks/dev-tools/commands/empty_method.rb → polish_geeks/dev_tools/commands/empty_methods.rb} +3 -13
  16. data/lib/{polishgeeks/dev-tools/commands/empty_method → polish_geeks/dev_tools/commands/empty_methods}/file_parser.rb +1 -1
  17. data/lib/{polishgeeks/dev-tools/commands/empty_method → polish_geeks/dev_tools/commands/empty_methods}/string_refinements.rb +2 -2
  18. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/examples_comparator.rb +13 -7
  19. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/expires_in.rb +6 -6
  20. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/final_blank_line.rb +1 -11
  21. data/lib/polish_geeks/dev_tools/commands/gemfile.rb +39 -0
  22. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/haml_lint.rb +0 -0
  23. data/lib/polish_geeks/dev_tools/commands/required_files.rb +38 -0
  24. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/rspec.rb +24 -5
  25. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/rspec_files_names.rb +1 -1
  26. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/rspec_files_structure.rb +22 -9
  27. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/rubocop.rb +10 -8
  28. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/rubycritic.rb +0 -0
  29. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/simplecov.rb +0 -0
  30. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/tasks_files_names.rb +0 -0
  31. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/yard.rb +0 -0
  32. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/yml_parser.rb +0 -0
  33. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/config.rb +24 -16
  34. data/lib/polish_geeks/dev_tools/config_manager.rb +68 -0
  35. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/errors.rb +0 -0
  36. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/hash.rb +0 -0
  37. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/logger.rb +3 -3
  38. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/output_storer.rb +0 -0
  39. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/runner.rb +0 -0
  40. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/shell.rb +0 -0
  41. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/tasks/dev-tools.rake +0 -0
  42. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/validators/base.rb +2 -2
  43. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/validators/rails.rb +0 -0
  44. data/lib/polish_geeks/dev_tools/validators/rubocop.rb +12 -0
  45. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/validators/simplecov.rb +1 -1
  46. data/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/version.rb +1 -1
  47. data/lib/polishgeeks-dev-tools.rb +6 -31
  48. data/polishgeeks_dev_tools.gemspec +6 -5
  49. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/allowed_extensions_spec.rb +5 -17
  50. data/spec/lib/polish_geeks/dev_tools/commands/base_spec.rb +90 -0
  51. data/spec/lib/polish_geeks/dev_tools/commands/brakeman_spec.rb +99 -0
  52. data/spec/lib/polish_geeks/dev_tools/commands/bundler_audit_spec.rb +52 -0
  53. data/spec/lib/{polishgeeks/dev-tools/commands/empty_method → polish_geeks/dev_tools/commands/empty_methods}/file_parser_spec.rb +1 -1
  54. data/spec/lib/{polishgeeks/dev-tools/commands/empty_method → polish_geeks/dev_tools/commands/empty_methods}/string_refinements_spec.rb +1 -1
  55. data/spec/lib/{polishgeeks/dev-tools/commands/empty_method_spec.rb → polish_geeks/dev_tools/commands/empty_methods_spec.rb} +7 -54
  56. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/examples_comparator_spec.rb +8 -8
  57. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/expires_in_spec.rb +1 -1
  58. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/final_blank_line_spec.rb +2 -45
  59. data/spec/lib/polish_geeks/dev_tools/commands/gemfile_spec.rb +91 -0
  60. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/haml_lint_spec.rb +13 -21
  61. data/spec/lib/polish_geeks/dev_tools/commands/required_files_spec.rb +51 -0
  62. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/rspec_files_names_spec.rb +2 -2
  63. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/rspec_files_structure_spec.rb +19 -32
  64. data/spec/lib/polish_geeks/dev_tools/commands/rspec_spec.rb +106 -0
  65. data/spec/lib/polish_geeks/dev_tools/commands/rubocop_spec.rb +131 -0
  66. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/rubycritic_spec.rb +5 -3
  67. data/spec/lib/polish_geeks/dev_tools/commands/simplecov_spec.rb +136 -0
  68. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/tasks_files_names_spec.rb +8 -8
  69. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/yard_spec.rb +10 -10
  70. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/commands/yml_parser_spec.rb +2 -2
  71. data/spec/lib/polish_geeks/dev_tools/config_manager_spec.rb +124 -0
  72. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/config_spec.rb +3 -3
  73. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/errors_spec.rb +0 -0
  74. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/hash_spec.rb +8 -8
  75. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/logger_spec.rb +9 -9
  76. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/output_storer_spec.rb +1 -1
  77. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/runner_spec.rb +0 -0
  78. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/shell_spec.rb +1 -1
  79. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/validators/base_spec.rb +0 -0
  80. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/validators/rails_spec.rb +0 -0
  81. data/spec/lib/polish_geeks/dev_tools/validators/rubocop_spec.rb +29 -0
  82. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/validators/simplecov_spec.rb +1 -1
  83. data/spec/lib/{polishgeeks/dev-tools → polish_geeks/dev_tools}/version_spec.rb +0 -0
  84. data/spec/lib/{polishgeeks-dev-tools_spec.rb → polish_geeks/dev_tools_spec.rb} +2 -2
  85. data/spec/spec_helper.rb +1 -1
  86. metadata +141 -99
  87. data/lib/polishgeeks/dev-tools/commands/readme.rb +0 -32
  88. data/spec/lib/polishgeeks/dev-tools/commands/base_spec.rb +0 -55
  89. data/spec/lib/polishgeeks/dev-tools/commands/brakeman_spec.rb +0 -96
  90. data/spec/lib/polishgeeks/dev-tools/commands/readme_spec.rb +0 -38
  91. data/spec/lib/polishgeeks/dev-tools/commands/rspec_spec.rb +0 -63
  92. data/spec/lib/polishgeeks/dev-tools/commands/rubocop_spec.rb +0 -127
  93. data/spec/lib/polishgeeks/dev-tools/commands/simplecov_spec.rb +0 -134
@@ -27,7 +27,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExamplesComparator do
27
27
  context 'when compared files structure is the same' do
28
28
  let(:compare_result) { true }
29
29
 
30
- it 'should put a successful message into output' do
30
+ it 'puts a successful message into output' do
31
31
  subject.execute
32
32
 
33
33
  expect(subject.output).to include 'success'
@@ -37,7 +37,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExamplesComparator do
37
37
  context 'when compared files structure is not the same' do
38
38
  let(:compare_result) { false }
39
39
 
40
- it 'should put a failed message into output' do
40
+ it 'puts a failed message into output' do
41
41
  subject.execute
42
42
  expect(subject.output).to include 'failed'
43
43
  end
@@ -49,7 +49,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExamplesComparator do
49
49
  "#{File.expand_path(PolishGeeks::DevTools.app_root + '/config')}/**/*.yml.example"
50
50
  end
51
51
 
52
- it 'should be equal to expected message' do
52
+ it 'is equal to expected message' do
53
53
  expect(subject.send(:config_path)).to eq expected
54
54
  end
55
55
  end
@@ -58,7 +58,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExamplesComparator do
58
58
  let(:compare_header) { rand.to_s }
59
59
  let(:expected) { "\e[32m success\e[0m - #{compare_header}\n" }
60
60
 
61
- it 'should be equal to expected message' do
61
+ it 'is equal to expected message' do
62
62
  expect(subject.send(:successful_compare, compare_header)).to eq expected
63
63
  end
64
64
  end
@@ -67,7 +67,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExamplesComparator do
67
67
  let(:compare_header) { rand.to_s }
68
68
  let(:expected) { "\e[31m failed\e[0m - #{compare_header} - structure not equal\n" }
69
69
 
70
- it 'should be equal to expected message' do
70
+ it 'is equal to expected message' do
71
71
  expect(subject.send(:failed_compare, compare_header)).to eq expected
72
72
  end
73
73
  end
@@ -75,7 +75,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExamplesComparator do
75
75
  describe '#compare_header' do
76
76
  let(:expected) { "#{File.basename(example_file)} and #{File.basename(dedicated_file)}" }
77
77
 
78
- it 'should be equal to expected message' do
78
+ it 'is equal to expected message' do
79
79
  expect(subject.send(:compare_header, example_file, dedicated_file)).to eq expected
80
80
  end
81
81
  end
@@ -145,7 +145,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExamplesComparator do
145
145
  subject.instance_variable_set(:@output, 'OK')
146
146
  end
147
147
 
148
- it 'should return true' do
148
+ it 'returns true' do
149
149
  expect(subject.valid?).to eq true
150
150
  end
151
151
  end
@@ -155,7 +155,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExamplesComparator do
155
155
  subject.instance_variable_set(:@output, 'failed')
156
156
  end
157
157
 
158
- it 'should return false' do
158
+ it 'returns false' do
159
159
  expect(subject.valid?).to eq false
160
160
  end
161
161
  end
@@ -6,7 +6,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::ExpiresIn do
6
6
  let(:config) { double }
7
7
 
8
8
  describe '#execute' do
9
- it 'should execute the command' do
9
+ it 'executes the command' do
10
10
  subject.execute
11
11
  end
12
12
  end
@@ -21,7 +21,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::FinalBlankLine do
21
21
  subject.execute
22
22
  end
23
23
 
24
- it 'should set appropriate variables' do
24
+ it 'sets appropriate variables' do
25
25
  expect(subject.output).to eq []
26
26
  expect(subject.counter).to eq(files.count)
27
27
  end
@@ -43,7 +43,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::FinalBlankLine do
43
43
  subject.execute
44
44
  end
45
45
 
46
- it 'should set appropriate variables' do
46
+ it 'sets appropriate variables' do
47
47
  expect(subject.output).to eq files
48
48
  expect(subject.counter).to eq(files.count)
49
49
  end
@@ -157,49 +157,6 @@ RSpec.describe PolishGeeks::DevTools::Commands::FinalBlankLine do
157
157
  end
158
158
  end
159
159
 
160
- describe '#files_from_path' do
161
- let(:app_root) { PolishGeeks::DevTools.app_root }
162
-
163
- context 'path is a directory' do
164
- let(:path) { rand.to_s }
165
- let(:file_in_path) { "#{app_root}/#{rand}" }
166
- let(:dir_in_path) { "#{app_root}/#{rand}" }
167
- before do
168
- expect(File)
169
- .to receive(:file?)
170
- .with("#{app_root}/#{path}")
171
- .and_return(false)
172
-
173
- expect(Dir)
174
- .to receive(:glob)
175
- .with("#{app_root}/#{path}")
176
- .and_return([file_in_path, dir_in_path])
177
-
178
- expect(File)
179
- .to receive(:file?)
180
- .with(file_in_path)
181
- .and_return(true)
182
-
183
- expect(File)
184
- .to receive(:file?)
185
- .with(dir_in_path)
186
- .and_return(false)
187
- end
188
- it { expect(subject.send(:files_from_path, path)).to eq [file_in_path] }
189
- end
190
-
191
- context 'path is a file' do
192
- let(:path) { rand.to_s }
193
- before do
194
- expect(File)
195
- .to receive(:file?)
196
- .with("#{app_root}/#{path}")
197
- .and_return(true)
198
- end
199
- it { expect(subject.send(:files_from_path, path)).to eq ["#{app_root}/#{path}"] }
200
- end
201
- end
202
-
203
160
  describe '#sanitize' do
204
161
  let(:file) { rand.to_s }
205
162
  let(:app_root) { PolishGeeks::DevTools.app_root }
@@ -0,0 +1,91 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe PolishGeeks::DevTools::Commands::Gemfile do
4
+ subject { described_class.new }
5
+
6
+ describe '#execute' do
7
+ let(:wrong_gem) { rand.to_s }
8
+ let(:gemfile) { double }
9
+ let(:output) { [rand.to_s] }
10
+
11
+ before do
12
+ expect(File)
13
+ .to receive(:join)
14
+ .with(::PolishGeeks::DevTools.app_root, 'Gemfile')
15
+ .and_return(gemfile)
16
+ end
17
+
18
+ context 'gemfile file exists' do
19
+ before do
20
+ expect(File)
21
+ .to receive(:exist?)
22
+ .with(gemfile)
23
+ .and_return(true)
24
+
25
+ expect(IO)
26
+ .to receive(:readlines)
27
+ .with(gemfile)
28
+ .and_return([wrong_gem])
29
+
30
+ expect(wrong_gem)
31
+ .to receive(:match)
32
+ .with(described_class::CHECKED_REGEXP)
33
+ .and_return(true)
34
+ end
35
+
36
+ it 'set wrong gems to output' do
37
+ subject.execute
38
+ expect(subject.output).to eq [wrong_gem]
39
+ end
40
+ end
41
+
42
+ context 'gemfile file does not exist' do
43
+ before do
44
+ expect(File)
45
+ .to receive(:exist?)
46
+ .with(gemfile)
47
+ .and_return(false)
48
+ end
49
+
50
+ it 'set empty array to output' do
51
+ subject.execute
52
+ expect(subject.output).to eq []
53
+ end
54
+ end
55
+ end
56
+
57
+ describe '#label' do
58
+ it { expect(subject.label).to eq 'Gemfile checking' }
59
+ end
60
+
61
+ describe '#error_message' do
62
+ let(:output) { [rand.to_s, rand.to_s] }
63
+
64
+ before do
65
+ subject.instance_variable_set('@output', output)
66
+ end
67
+
68
+ it 'contains output with wrong gems' do
69
+ expect(subject.error_message)
70
+ .to eq "Gemfile contains gems from local path: \n#{output.join('')}"
71
+ end
72
+ end
73
+
74
+ describe '#valid?' do
75
+ context 'when output is empty' do
76
+ before do
77
+ subject.instance_variable_set('@output', [])
78
+ end
79
+
80
+ it { expect(subject.valid?).to be true }
81
+ end
82
+
83
+ context 'when output is not empty' do
84
+ before do
85
+ subject.instance_variable_set('@output', [rand.to_s])
86
+ end
87
+
88
+ it { expect(subject.valid?).to be false }
89
+ end
90
+ end
91
+ end
@@ -4,25 +4,22 @@ RSpec.describe PolishGeeks::DevTools::Commands::HamlLint do
4
4
  subject { described_class.new }
5
5
 
6
6
  describe '#execute' do
7
+ let(:instance) { instance_double(PolishGeeks::DevTools::Shell) }
7
8
  let(:path) { '/' }
9
+
8
10
  before do
9
- expect(ENV)
10
- .to receive(:[])
11
- .with('BUNDLE_GEMFILE')
12
- .and_return(path)
11
+ expect(ENV).to receive(:[]).with('BUNDLE_GEMFILE') { path }
12
+ allow(PolishGeeks::DevTools::Shell).to receive(:new) { instance }
13
13
  end
14
14
 
15
15
  context 'when app config exists' do
16
16
  before do
17
- expect(File)
18
- .to receive(:exist?)
19
- .and_return(true)
20
- expect_any_instance_of(PolishGeeks::DevTools::Shell)
21
- .to receive(:execute)
17
+ expect(File).to receive(:exist?) { true }
18
+ expect(instance).to receive(:execute)
22
19
  .with("bundle exec haml-lint -c #{path}.haml-lint.yml app/views")
23
20
  end
24
21
 
25
- it 'should execute the command' do
22
+ it 'executes the command' do
26
23
  subject.execute
27
24
  end
28
25
  end
@@ -30,18 +27,13 @@ RSpec.describe PolishGeeks::DevTools::Commands::HamlLint do
30
27
  context 'when app config does not exist' do
31
28
  let(:path) { Dir.pwd }
32
29
  before do
33
- expect(PolishGeeks::DevTools)
34
- .to receive(:gem_root)
35
- .and_return(path)
36
- expect(File)
37
- .to receive(:exist?)
38
- .and_return(false)
39
- expect_any_instance_of(PolishGeeks::DevTools::Shell)
40
- .to receive(:execute)
30
+ expect(PolishGeeks::DevTools).to receive(:gem_root) { path }
31
+ expect(File).to receive(:exist?) { false }
32
+ expect(instance).to receive(:execute)
41
33
  .with("bundle exec haml-lint -c #{path}/config/haml-lint.yml app/views")
42
34
  end
43
35
 
44
- it 'should execute the command' do
36
+ it 'executes the command' do
45
37
  subject.execute
46
38
  end
47
39
  end
@@ -53,7 +45,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::HamlLint do
53
45
  subject.instance_variable_set('@output', '[W] SpaceInsideHashAttributes')
54
46
  end
55
47
 
56
- it 'should be false' do
48
+ it 'is false' do
57
49
  expect(subject.valid?).to eq false
58
50
  end
59
51
  end
@@ -63,7 +55,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::HamlLint do
63
55
  subject.instance_variable_set('@output', '')
64
56
  end
65
57
 
66
- it 'should be true' do
58
+ it 'is true' do
67
59
  expect(subject.valid?).to eq true
68
60
  end
69
61
  end
@@ -0,0 +1,51 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe PolishGeeks::DevTools::Commands::RequiredFiles do
4
+ subject { described_class.new }
5
+
6
+ let(:config) { double }
7
+
8
+ describe '#execute' do
9
+ context 'when required_files_include is set' do
10
+ let(:required_files_include) { 'REVIEW.md' }
11
+ let(:config) do
12
+ double(
13
+ required_files_include: [required_files_include]
14
+ )
15
+ end
16
+
17
+ before do
18
+ expect(PolishGeeks::DevTools)
19
+ .to receive(:config)
20
+ .and_return(config)
21
+ subject.execute
22
+ end
23
+
24
+ it { expect(subject.error_message.match(/REVIEW.md not exist/)).not_to be_nil }
25
+ end
26
+
27
+ context 'when required_files_include is empty' do
28
+ it { expect(subject.error_message).to be_nil }
29
+ end
30
+ end
31
+
32
+ describe '#valid?' do
33
+ context 'when file exist' do
34
+ before { subject.instance_variable_set('@output', []) }
35
+
36
+ it { expect(subject.valid?).to be true }
37
+ end
38
+ end
39
+
40
+ describe '#error_message' do
41
+ context 'when output is not empty' do
42
+ let(:file_name) { rand.to_s }
43
+ let(:output) { [file_name] }
44
+ let(:expected) { "Following files does not exist or are empty:\n#{file_name}\n" }
45
+ before do
46
+ subject.instance_variable_set('@output', output)
47
+ end
48
+ it { expect(subject.error_message).to eq expected }
49
+ end
50
+ end
51
+ end
@@ -33,7 +33,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesNames do
33
33
  context 'when we dont have invalid files' do
34
34
  let(:files) { ['test_spec.rb'] }
35
35
 
36
- it 'should set appropriate variables' do
36
+ it 'sets appropriate variables' do
37
37
  expect(subject.output).to eq []
38
38
  expect(subject.counter).to eq(described_class::CHECKED_DIRS.count * files.count)
39
39
  end
@@ -42,7 +42,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesNames do
42
42
  context 'when we have invalid files' do
43
43
  let(:files) { ['test_spe.rb'] }
44
44
 
45
- it 'should set appropriate variables' do
45
+ it 'sets appropriate variables' do
46
46
  expect(subject.output).to eq(files * described_class::CHECKED_DIRS.count)
47
47
  expect(subject.counter).to eq(described_class::CHECKED_DIRS.count * files.count)
48
48
  end
@@ -1,4 +1,5 @@
1
1
  require 'spec_helper'
2
+ require 'tempfile'
2
3
 
3
4
  RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
4
5
  subject { described_class.new }
@@ -17,7 +18,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
17
18
  .and_return(analyzed_files_result)
18
19
 
19
20
  expect(subject)
20
- .to receive(:rspec_files)
21
+ .to receive(:analyzed_rspec_files)
21
22
  .exactly(2).times
22
23
  .and_return(rspec_files_result)
23
24
 
@@ -30,7 +31,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
30
31
  .and_return(substract_rspec_result)
31
32
  end
32
33
 
33
- it 'should be subtraction' do
34
+ it 'is subtraction' do
34
35
  subject.execute
35
36
 
36
37
  expect(subject.instance_variable_get(:@output)).to eq expected
@@ -47,35 +48,25 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
47
48
  .at_least(:once)
48
49
  end
49
50
 
50
- it { expect(subject.send(:analyzed_files)).to_not be_empty }
51
+ it { expect(subject.send(:analyzed_files)).not_to be_empty }
51
52
 
52
53
  context 'when we gather files for analyze' do
53
- let(:file) { double }
54
+ let(:file) { Tempfile.new }
54
55
  let(:files_collection) { [file] }
55
56
 
56
- before do
57
- expect(described_class::FILES_CHECKED)
58
- .to receive(:map)
59
- .and_return(files_collection)
60
- end
61
-
62
- it 'should flatten, uniq and sanitize' do
63
- expect(files_collection)
64
- .to receive(:flatten!)
65
-
66
- expect(files_collection)
67
- .to receive(:uniq!)
57
+ before { expect(subject).to receive(:checked_files) { files_collection } }
68
58
 
69
- expect(subject)
70
- .to receive(:sanitize)
71
- .with(file)
59
+ it 'flatten,s uniq and sanitize' do
60
+ expect(files_collection).to receive(:flatten!)
61
+ expect(files_collection).to receive(:uniq!)
62
+ expect(subject).to receive(:sanitize).with(file)
72
63
 
73
64
  subject.send(:analyzed_files)
74
65
  end
75
66
  end
76
67
  end
77
68
 
78
- describe '#rspec_files' do
69
+ describe '#analyzed_rspec_files' do
79
70
  let(:config) { double(rspec_files_structure_ignored: nil) }
80
71
 
81
72
  before do
@@ -85,19 +76,15 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
85
76
  .at_least(:once)
86
77
  end
87
78
 
88
- it { expect(subject.send(:rspec_files)).to_not be_empty }
79
+ it { expect(subject.send(:analyzed_rspec_files)).not_to be_empty }
89
80
 
90
81
  context 'when we gather rspec files' do
91
82
  let(:file) { double }
92
83
  let(:files_collection) { [file] }
93
84
 
94
- before do
95
- expect(described_class::RSPEC_FILES)
96
- .to receive(:map)
97
- .and_return(files_collection)
98
- end
85
+ before { expect(subject).to receive(:rspec_files) { files_collection } }
99
86
 
100
- it 'should flatten, uniq and sanitize' do
87
+ it 'flatten,s uniq and sanitize' do
101
88
  expect(files_collection)
102
89
  .to receive(:flatten!)
103
90
 
@@ -108,7 +95,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
108
95
  .to receive(:sanitize)
109
96
  .with(file)
110
97
 
111
- subject.send(:rspec_files)
98
+ subject.send(:analyzed_rspec_files)
112
99
  end
113
100
  end
114
101
  end
@@ -141,7 +128,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
141
128
  .and_return(analyzed_files_result)
142
129
  end
143
130
 
144
- it 'should return the label' do
131
+ it 'returns the label' do
145
132
  expected = "Rspec files structure (#{analyzed_files_result.count} checked)"
146
133
  expect(subject.label).to eq expected
147
134
  end
@@ -161,7 +148,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
161
148
  .and_return(message)
162
149
  end
163
150
 
164
- it 'should return the error message' do
151
+ it 'returns the error message' do
165
152
  expect(subject.error_message).to eq expected
166
153
  end
167
154
  end
@@ -241,7 +228,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
241
228
  subject.instance_variable_set(:@output, output)
242
229
  end
243
230
 
244
- it 'should return the error message' do
231
+ it 'returns the error message' do
245
232
  expect(subject.send(:files_error_message))
246
233
  .to eq "Following files don't have corresponding Rspec files:\n\ntest.rb\n"
247
234
  end
@@ -254,7 +241,7 @@ RSpec.describe PolishGeeks::DevTools::Commands::RspecFilesStructure do
254
241
  subject.instance_variable_set(:@output, output)
255
242
  end
256
243
 
257
- it 'should return the error message' do
244
+ it 'returns the error message' do
258
245
  expect(subject.send(:rspec_error_message))
259
246
  .to eq "\n\nFollowing Rspec don't have corresponding files:\n\ntest_rspec_spec.rb\n"
260
247
  end