polishgeeks-dev-tools 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +22 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +6 -0
- data/Gemfile +2 -0
- data/Gemfile.lock +193 -0
- data/README.md +112 -0
- data/Rakefile +20 -0
- data/config/haml-lint.yml +74 -0
- data/config/rubocop.yml +35 -0
- data/config/yardopts +7 -0
- data/lib/polishgeeks-dev-tools.rb +43 -0
- data/lib/polishgeeks/dev-tools/command/allowed_extensions.rb +62 -0
- data/lib/polishgeeks/dev-tools/command/base.rb +73 -0
- data/lib/polishgeeks/dev-tools/command/brakeman.rb +46 -0
- data/lib/polishgeeks/dev-tools/command/coverage.rb +43 -0
- data/lib/polishgeeks/dev-tools/command/examples_comparator.rb +75 -0
- data/lib/polishgeeks/dev-tools/command/expires_in.rb +74 -0
- data/lib/polishgeeks/dev-tools/command/haml_lint.rb +28 -0
- data/lib/polishgeeks/dev-tools/command/readme.rb +32 -0
- data/lib/polishgeeks/dev-tools/command/rspec.rb +38 -0
- data/lib/polishgeeks/dev-tools/command/rspec_files_names.rb +58 -0
- data/lib/polishgeeks/dev-tools/command/rspec_files_structure.rb +134 -0
- data/lib/polishgeeks/dev-tools/command/rubocop.rb +50 -0
- data/lib/polishgeeks/dev-tools/command/rubycritic.rb +17 -0
- data/lib/polishgeeks/dev-tools/command/simplecov.rb +32 -0
- data/lib/polishgeeks/dev-tools/command/tasks_files_names.rb +76 -0
- data/lib/polishgeeks/dev-tools/command/yard.rb +35 -0
- data/lib/polishgeeks/dev-tools/command/yml_parser.rb +85 -0
- data/lib/polishgeeks/dev-tools/config.rb +91 -0
- data/lib/polishgeeks/dev-tools/hash.rb +24 -0
- data/lib/polishgeeks/dev-tools/logger.rb +63 -0
- data/lib/polishgeeks/dev-tools/output_storer.rb +17 -0
- data/lib/polishgeeks/dev-tools/runner.rb +27 -0
- data/lib/polishgeeks/dev-tools/shell.rb +16 -0
- data/lib/polishgeeks/dev-tools/tasks/dev-tools.rake +15 -0
- data/lib/polishgeeks/dev-tools/version.rb +8 -0
- data/polishgeeks_dev_tools.gemspec +36 -0
- data/spec/lib/polishgeeks-dev-tools_spec.rb +35 -0
- data/spec/lib/polishgeeks/dev-tools/command/allowed_extensions_spec.rb +66 -0
- data/spec/lib/polishgeeks/dev-tools/command/base_spec.rb +127 -0
- data/spec/lib/polishgeeks/dev-tools/command/brakeman_spec.rb +95 -0
- data/spec/lib/polishgeeks/dev-tools/command/coverage_spec.rb +121 -0
- data/spec/lib/polishgeeks/dev-tools/command/examples_comparator_spec.rb +171 -0
- data/spec/lib/polishgeeks/dev-tools/command/expires_in_spec.rb +69 -0
- data/spec/lib/polishgeeks/dev-tools/command/haml_lint_spec.rb +79 -0
- data/spec/lib/polishgeeks/dev-tools/command/readme_spec.rb +38 -0
- data/spec/lib/polishgeeks/dev-tools/command/rspec_files_names_spec.rb +91 -0
- data/spec/lib/polishgeeks/dev-tools/command/rspec_files_structure_spec.rb +262 -0
- data/spec/lib/polishgeeks/dev-tools/command/rspec_spec.rb +63 -0
- data/spec/lib/polishgeeks/dev-tools/command/rubocop_spec.rb +127 -0
- data/spec/lib/polishgeeks/dev-tools/command/rubycritic_spec.rb +27 -0
- data/spec/lib/polishgeeks/dev-tools/command/simplecov_spec.rb +53 -0
- data/spec/lib/polishgeeks/dev-tools/command/tasks_files_names_spec.rb +108 -0
- data/spec/lib/polishgeeks/dev-tools/command/yard_spec.rb +86 -0
- data/spec/lib/polishgeeks/dev-tools/command/yml_parser_spec.rb +104 -0
- data/spec/lib/polishgeeks/dev-tools/config_spec.rb +78 -0
- data/spec/lib/polishgeeks/dev-tools/hash_spec.rb +37 -0
- data/spec/lib/polishgeeks/dev-tools/logger_spec.rb +162 -0
- data/spec/lib/polishgeeks/dev-tools/output_storer_spec.rb +20 -0
- data/spec/lib/polishgeeks/dev-tools/runner_spec.rb +57 -0
- data/spec/lib/polishgeeks/dev-tools/shell_spec.rb +13 -0
- data/spec/lib/polishgeeks/dev-tools/version_spec.rb +7 -0
- data/spec/spec_helper.rb +28 -0
- metadata +330 -0
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PolishGeeks::DevTools::Command::ExpiresIn do
|
4
|
+
subject { described_class.new }
|
5
|
+
|
6
|
+
let(:config) { double }
|
7
|
+
|
8
|
+
describe '#execute' do
|
9
|
+
it 'should execute the command' do
|
10
|
+
subject.execute
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#label' do
|
15
|
+
it { expect(subject.label).to eq 'Expires in' }
|
16
|
+
end
|
17
|
+
|
18
|
+
describe '#error_message' do
|
19
|
+
context 'when output is not empty' do
|
20
|
+
let(:file_name) { rand.to_s }
|
21
|
+
let(:output) { [file_name] }
|
22
|
+
let(:expected) { "Following files use expire_in instead of expires_in:\n\n#{file_name}\n" }
|
23
|
+
before do
|
24
|
+
subject.instance_variable_set('@output', output)
|
25
|
+
end
|
26
|
+
it { expect(subject.error_message).to eq expected }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe '#valid?' do
|
31
|
+
context 'when output is empty' do
|
32
|
+
before do
|
33
|
+
subject.instance_variable_set('@output', '')
|
34
|
+
end
|
35
|
+
it { expect(subject.valid?).to eq true }
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe '#excludes' do
|
40
|
+
context 'when expire_files_ignored is not set' do
|
41
|
+
let(:config) { double(expires_in_files_ignored: nil) }
|
42
|
+
|
43
|
+
before do
|
44
|
+
expect(PolishGeeks::DevTools)
|
45
|
+
.to receive(:config)
|
46
|
+
.and_return(config)
|
47
|
+
end
|
48
|
+
|
49
|
+
it { expect(subject.send(:excludes)).to eq [] }
|
50
|
+
end
|
51
|
+
|
52
|
+
context 'when expire_files_ignored is set' do
|
53
|
+
let(:expires_in_files_ignored) { rand }
|
54
|
+
let(:config) do
|
55
|
+
double(
|
56
|
+
expires_in_files_ignored: expires_in_files_ignored
|
57
|
+
)
|
58
|
+
end
|
59
|
+
|
60
|
+
before do
|
61
|
+
expect(PolishGeeks::DevTools)
|
62
|
+
.to receive(:config)
|
63
|
+
.and_return(config)
|
64
|
+
end
|
65
|
+
|
66
|
+
it { expect(subject.send(:excludes)).to eq expires_in_files_ignored }
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PolishGeeks::DevTools::Command::HamlLint do
|
4
|
+
subject { described_class.new }
|
5
|
+
|
6
|
+
describe '#execute' do
|
7
|
+
let(:path) { '/' }
|
8
|
+
before do
|
9
|
+
expect(ENV)
|
10
|
+
.to receive(:[])
|
11
|
+
.with('BUNDLE_GEMFILE')
|
12
|
+
.and_return(path)
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'when app config exists' do
|
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)
|
22
|
+
.with("bundle exec haml-lint -c #{path}.haml-lint.yml app/views")
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'should execute the command' do
|
26
|
+
subject.execute
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when app config does not exist' do
|
31
|
+
let(:path) { Dir.pwd }
|
32
|
+
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)
|
41
|
+
.with("bundle exec haml-lint -c #{path}/config/haml-lint.yml app/views")
|
42
|
+
end
|
43
|
+
|
44
|
+
it 'should execute the command' do
|
45
|
+
subject.execute
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
describe '#valid?' do
|
51
|
+
context 'when there are some issues' do
|
52
|
+
before do
|
53
|
+
subject.instance_variable_set('@output', '[W] SpaceInsideHashAttributes')
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'should be false' do
|
57
|
+
expect(subject.valid?).to eq false
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'when there are no issues' do
|
62
|
+
before do
|
63
|
+
subject.instance_variable_set('@output', '')
|
64
|
+
end
|
65
|
+
|
66
|
+
it 'should be true' do
|
67
|
+
expect(subject.valid?).to eq true
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
describe '.generator?' do
|
73
|
+
it { expect(described_class.generator?).to eq false }
|
74
|
+
end
|
75
|
+
|
76
|
+
describe '.validator?' do
|
77
|
+
it { expect(described_class.validator?).to eq true }
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PolishGeeks::DevTools::Command::Readme do
|
4
|
+
subject { described_class.new }
|
5
|
+
|
6
|
+
let(:config) { double }
|
7
|
+
|
8
|
+
describe '#execute' do
|
9
|
+
it 'should execute the command' do
|
10
|
+
subject.execute
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
describe '#label' do
|
15
|
+
let(:expected) { 'README.rb required' }
|
16
|
+
|
17
|
+
it { expect(subject.label).to eq expected }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '#error_message' do
|
21
|
+
let(:expected) { "README.rb doesn't exist!" }
|
22
|
+
let(:output) { false }
|
23
|
+
|
24
|
+
it { expect(subject.error_message).to eq expected }
|
25
|
+
end
|
26
|
+
|
27
|
+
describe '#valid?' do
|
28
|
+
context 'when README.md exist' do
|
29
|
+
before do
|
30
|
+
subject.instance_variable_set('@output', true)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should return true' do
|
34
|
+
expect(subject.valid?).to be true
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PolishGeeks::DevTools::Command::RspecFilesNames do
|
4
|
+
subject { described_class.new }
|
5
|
+
|
6
|
+
let(:config) { double }
|
7
|
+
|
8
|
+
describe '#execute' do
|
9
|
+
let(:path) { rand.to_s }
|
10
|
+
|
11
|
+
before do
|
12
|
+
described_class::CHECKED_DIRS.each do |name|
|
13
|
+
expect(File)
|
14
|
+
.to receive(:join)
|
15
|
+
.with(::PolishGeeks::DevTools.app_root, 'spec', name)
|
16
|
+
.and_return(path)
|
17
|
+
end
|
18
|
+
|
19
|
+
expect(Dir)
|
20
|
+
.to receive(:glob)
|
21
|
+
.with("#{path}/**/*")
|
22
|
+
.exactly(described_class::CHECKED_DIRS.count).times
|
23
|
+
.and_return(files)
|
24
|
+
|
25
|
+
expect(File)
|
26
|
+
.to receive(:file?)
|
27
|
+
.and_return(true)
|
28
|
+
.exactly(described_class::CHECKED_DIRS.count).times
|
29
|
+
|
30
|
+
subject.execute
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'when we dont have invalid files' do
|
34
|
+
let(:files) { ['test_spec.rb'] }
|
35
|
+
|
36
|
+
it 'should set appropriate variables' do
|
37
|
+
expect(subject.output).to eq []
|
38
|
+
expect(subject.counter).to eq(described_class::CHECKED_DIRS.count * files.count)
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
context 'when we have invalid files' do
|
43
|
+
let(:files) { ['test_spe.rb'] }
|
44
|
+
|
45
|
+
it 'should set appropriate variables' do
|
46
|
+
expect(subject.output).to eq(files * described_class::CHECKED_DIRS.count)
|
47
|
+
expect(subject.counter).to eq(described_class::CHECKED_DIRS.count * files.count)
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe '#valid?' do
|
53
|
+
before do
|
54
|
+
subject.instance_variable_set('@output', output)
|
55
|
+
end
|
56
|
+
|
57
|
+
context 'when output is empty' do
|
58
|
+
let(:output) { [] }
|
59
|
+
|
60
|
+
it { expect(subject.valid?).to eq true }
|
61
|
+
end
|
62
|
+
|
63
|
+
context 'when output is not empty' do
|
64
|
+
let(:output) { ['file_name'] }
|
65
|
+
|
66
|
+
it { expect(subject.valid?).to eq false }
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe '#label' do
|
71
|
+
let(:counter) { rand(1000) }
|
72
|
+
let(:expected) { "Rspec files names: #{counter} files checked" }
|
73
|
+
|
74
|
+
before do
|
75
|
+
subject.instance_variable_set('@counter', counter)
|
76
|
+
end
|
77
|
+
|
78
|
+
it { expect(subject.label).to eq expected }
|
79
|
+
end
|
80
|
+
|
81
|
+
describe '#error_message' do
|
82
|
+
let(:output) { [rand.to_s, rand.to_s] }
|
83
|
+
let(:expected) { "Following files have invalid name: \n #{output.join("\n")}\n" }
|
84
|
+
|
85
|
+
before do
|
86
|
+
subject.instance_variable_set('@output', output)
|
87
|
+
end
|
88
|
+
|
89
|
+
it { expect(subject.error_message).to eq expected }
|
90
|
+
end
|
91
|
+
end
|
@@ -0,0 +1,262 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe PolishGeeks::DevTools::Command::RspecFilesStructure do
|
4
|
+
subject { described_class.new }
|
5
|
+
|
6
|
+
describe '#execute' do
|
7
|
+
let(:analyzed_files_result) { double }
|
8
|
+
let(:rspec_files_result) { double }
|
9
|
+
let(:substract_result) { double }
|
10
|
+
let(:substract_rspec_result) { double }
|
11
|
+
let(:expected) { Hash(app: substract_result, rspec: substract_rspec_result) }
|
12
|
+
|
13
|
+
before do
|
14
|
+
expect(subject)
|
15
|
+
.to receive(:analyzed_files)
|
16
|
+
.twice
|
17
|
+
.and_return(analyzed_files_result)
|
18
|
+
|
19
|
+
expect(subject)
|
20
|
+
.to receive(:rspec_files)
|
21
|
+
.exactly(2).times
|
22
|
+
.and_return(rspec_files_result)
|
23
|
+
|
24
|
+
expect(analyzed_files_result)
|
25
|
+
.to receive(:-)
|
26
|
+
.and_return(substract_result)
|
27
|
+
|
28
|
+
expect(rspec_files_result)
|
29
|
+
.to receive(:-)
|
30
|
+
.and_return(substract_rspec_result)
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should be subtraction' do
|
34
|
+
subject.execute
|
35
|
+
|
36
|
+
expect(subject.instance_variable_get(:@output)).to eq expected
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe '#analyzed_files' do
|
41
|
+
let(:config) { double(rspec_files_structure_ignored: nil) }
|
42
|
+
|
43
|
+
before do
|
44
|
+
expect(PolishGeeks::DevTools)
|
45
|
+
.to receive(:config)
|
46
|
+
.and_return(config)
|
47
|
+
.at_least(:once)
|
48
|
+
end
|
49
|
+
|
50
|
+
it { expect(subject.send(:analyzed_files)).to_not be_empty }
|
51
|
+
|
52
|
+
context 'when we gather files for analyze' do
|
53
|
+
let(:file) { double }
|
54
|
+
let(:files_collection) { [file] }
|
55
|
+
|
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!)
|
68
|
+
|
69
|
+
expect(subject)
|
70
|
+
.to receive(:sanitize)
|
71
|
+
.with(file)
|
72
|
+
|
73
|
+
subject.send(:analyzed_files)
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
describe '#rspec_files' do
|
79
|
+
let(:config) { double(rspec_files_structure_ignored: nil) }
|
80
|
+
|
81
|
+
before do
|
82
|
+
expect(PolishGeeks::DevTools)
|
83
|
+
.to receive(:config)
|
84
|
+
.and_return(config)
|
85
|
+
.at_least(:once)
|
86
|
+
end
|
87
|
+
|
88
|
+
it { expect(subject.send(:rspec_files)).to_not be_empty }
|
89
|
+
|
90
|
+
context 'when we gather rspec files' do
|
91
|
+
let(:file) { double }
|
92
|
+
let(:files_collection) { [file] }
|
93
|
+
|
94
|
+
before do
|
95
|
+
expect(described_class::RSPEC_FILES)
|
96
|
+
.to receive(:map)
|
97
|
+
.and_return(files_collection)
|
98
|
+
end
|
99
|
+
|
100
|
+
it 'should flatten, uniq and sanitize' do
|
101
|
+
expect(files_collection)
|
102
|
+
.to receive(:flatten!)
|
103
|
+
|
104
|
+
expect(files_collection)
|
105
|
+
.to receive(:uniq!)
|
106
|
+
|
107
|
+
expect(subject)
|
108
|
+
.to receive(:sanitize)
|
109
|
+
.with(file)
|
110
|
+
|
111
|
+
subject.send(:rspec_files)
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
describe '#valid?' do
|
117
|
+
before do
|
118
|
+
subject.instance_variable_set('@output', output)
|
119
|
+
end
|
120
|
+
|
121
|
+
context 'when output is empty' do
|
122
|
+
let(:output) { Hash(app: [], rspec: []) }
|
123
|
+
|
124
|
+
it { expect(subject.valid?).to eq true }
|
125
|
+
end
|
126
|
+
|
127
|
+
context 'when output is not empty' do
|
128
|
+
let(:output) { Hash(app: [double], rspec: [double]) }
|
129
|
+
|
130
|
+
it { expect(subject.valid?).to eq false }
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
134
|
+
describe '#label' do
|
135
|
+
context 'when we run rspec_files_structure' do
|
136
|
+
let(:analyzed_files_result) { double(count: rand(1000)) }
|
137
|
+
|
138
|
+
before do
|
139
|
+
expect(subject)
|
140
|
+
.to receive(:analyzed_files)
|
141
|
+
.and_return(analyzed_files_result)
|
142
|
+
end
|
143
|
+
|
144
|
+
it 'should return the label' do
|
145
|
+
expected = "Rspec files structure (#{analyzed_files_result.count} checked)"
|
146
|
+
expect(subject.label).to eq expected
|
147
|
+
end
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
describe '#error_message' do
|
152
|
+
context 'when files don\'t have corresponding Rspec files' do
|
153
|
+
let(:message) { rand.to_s }
|
154
|
+
let(:expected) { message + message }
|
155
|
+
before do
|
156
|
+
expect(subject)
|
157
|
+
.to receive(:files_error_message)
|
158
|
+
.and_return(message)
|
159
|
+
expect(subject)
|
160
|
+
.to receive(:rspec_error_message)
|
161
|
+
.and_return(message)
|
162
|
+
end
|
163
|
+
|
164
|
+
it 'should return the error message' do
|
165
|
+
expect(subject.error_message).to eq expected
|
166
|
+
end
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
describe '#excludes' do
|
171
|
+
context 'when rspec_files_structure_ignored is not set' do
|
172
|
+
let(:config) { double(rspec_files_structure_ignored: nil) }
|
173
|
+
|
174
|
+
before do
|
175
|
+
expect(PolishGeeks::DevTools)
|
176
|
+
.to receive(:config)
|
177
|
+
.and_return(config)
|
178
|
+
end
|
179
|
+
|
180
|
+
it { expect(subject.send(:excludes)).to eq [] }
|
181
|
+
end
|
182
|
+
|
183
|
+
context 'when rspec_files_structure_ignored is set' do
|
184
|
+
let(:rspec_files_structure_ignored) { rand }
|
185
|
+
let(:config) do
|
186
|
+
double(
|
187
|
+
rspec_files_structure_ignored: rspec_files_structure_ignored
|
188
|
+
)
|
189
|
+
end
|
190
|
+
|
191
|
+
before do
|
192
|
+
expect(PolishGeeks::DevTools)
|
193
|
+
.to receive(:config)
|
194
|
+
.and_return(config)
|
195
|
+
end
|
196
|
+
|
197
|
+
it { expect(subject.send(:excludes)).to eq rspec_files_structure_ignored }
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
describe '#sanitize' do
|
202
|
+
let(:base) { rand.to_s }
|
203
|
+
|
204
|
+
context 'app root' do
|
205
|
+
let(:string) { "#{PolishGeeks::DevTools.app_root}/#{base}" }
|
206
|
+
|
207
|
+
it ' should be removed' do
|
208
|
+
expect(subject.send(:sanitize, string)).to eq base
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
212
|
+
context '_spec' do
|
213
|
+
let(:string) { "#{base}_spec.rb" }
|
214
|
+
|
215
|
+
it ' should be removed' do
|
216
|
+
expect(subject.send(:sanitize, string)).to eq "#{base}.rb"
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
context 'spec/' do
|
221
|
+
let(:string) { "spec/#{base}" }
|
222
|
+
|
223
|
+
it ' should be removed' do
|
224
|
+
expect(subject.send(:sanitize, string)).to eq base
|
225
|
+
end
|
226
|
+
end
|
227
|
+
|
228
|
+
context 'app/' do
|
229
|
+
let(:string) { "app/#{base}" }
|
230
|
+
|
231
|
+
it ' should be removed' do
|
232
|
+
expect(subject.send(:sanitize, string)).to eq base
|
233
|
+
end
|
234
|
+
end
|
235
|
+
end
|
236
|
+
|
237
|
+
describe '#files_error_message' do
|
238
|
+
let(:output) { Hash(app: ['test.rb'], rspec: ['test_rspec.rb']) }
|
239
|
+
|
240
|
+
before do
|
241
|
+
subject.instance_variable_set(:@output, output)
|
242
|
+
end
|
243
|
+
|
244
|
+
it 'should return the error message' do
|
245
|
+
expect(subject.send(:files_error_message))
|
246
|
+
.to eq "Following files don't have corresponding Rspec files:\n\ntest.rb\n"
|
247
|
+
end
|
248
|
+
end
|
249
|
+
|
250
|
+
describe '#rspec_error_message' do
|
251
|
+
let(:output) { Hash(app: ['test.rb'], rspec: ['test_rspec.rb']) }
|
252
|
+
|
253
|
+
before do
|
254
|
+
subject.instance_variable_set(:@output, output)
|
255
|
+
end
|
256
|
+
|
257
|
+
it 'should return the error message' do
|
258
|
+
expect(subject.send(:rspec_error_message))
|
259
|
+
.to eq "\n\nFollowing Rspec don't have corresponding files:\n\ntest_rspec_spec.rb\n"
|
260
|
+
end
|
261
|
+
end
|
262
|
+
end
|