lint_trap 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +97 -0
- data/Dockerfile +222 -0
- data/Gemfile +2 -0
- data/Rakefile +45 -0
- data/circle.yml +22 -0
- data/config/checkstyle/checkstyle_logger-all.jar +0 -0
- data/config/checkstyle/sun_checks.xml +177 -0
- data/config/coffeelint/lint_trap.coffee +12 -0
- data/config/jshint/formatter.js +22 -0
- data/config/rubocop/formatter.rb +22 -0
- data/config/scsslint/scsslint +34 -0
- data/lib/lint_trap/command.rb +39 -0
- data/lib/lint_trap/container/base.rb +30 -0
- data/lib/lint_trap/container/docker.rb +46 -0
- data/lib/lint_trap/container/fake.rb +28 -0
- data/lib/lint_trap/language/base.rb +18 -0
- data/lib/lint_trap/language/coffeescript.rb +13 -0
- data/lib/lint_trap/language/cpp.rb +17 -0
- data/lib/lint_trap/language/css.rb +13 -0
- data/lib/lint_trap/language/go.rb +13 -0
- data/lib/lint_trap/language/java.rb +13 -0
- data/lib/lint_trap/language/javascript.rb +13 -0
- data/lib/lint_trap/language/json.rb +13 -0
- data/lib/lint_trap/language/python.rb +13 -0
- data/lib/lint_trap/language/ruby.rb +13 -0
- data/lib/lint_trap/language/scss.rb +13 -0
- data/lib/lint_trap/language.rb +50 -0
- data/lib/lint_trap/linter/base.rb +58 -0
- data/lib/lint_trap/linter/checkstyle.rb +24 -0
- data/lib/lint_trap/linter/coffeelint.rb +21 -0
- data/lib/lint_trap/linter/cppcheck.rb +18 -0
- data/lib/lint_trap/linter/csslint.rb +23 -0
- data/lib/lint_trap/linter/golint.rb +19 -0
- data/lib/lint_trap/linter/jshint.rb +20 -0
- data/lib/lint_trap/linter/jsonlint.rb +18 -0
- data/lib/lint_trap/linter/pylint.rb +19 -0
- data/lib/lint_trap/linter/rubocop.rb +22 -0
- data/lib/lint_trap/linter/scsslint.rb +22 -0
- data/lib/lint_trap/linter.rb +42 -0
- data/lib/lint_trap/{parsers/base_parser.rb → parser/base.rb} +8 -9
- data/lib/lint_trap/{parsers/csslint_parser.rb → parser/csslint.rb} +4 -5
- data/lib/lint_trap/{parsers/line_parser.rb → parser/line.rb} +14 -5
- data/lib/lint_trap/parser/standard.rb +22 -0
- data/lib/lint_trap/parser/vim_quickfix.rb +19 -0
- data/lib/lint_trap/version.rb +1 -1
- data/lib/lint_trap.rb +5 -14
- data/lint_trap.gemspec +3 -0
- data/spec/command_spec.rb +38 -0
- data/spec/container/docker_spec.rb +34 -0
- data/spec/container/fake_spec.rb +29 -0
- data/spec/fixtures/Good.java +6 -0
- data/spec/fixtures/bad.coffee +1 -0
- data/spec/fixtures/bad.cpp +5 -0
- data/spec/fixtures/bad.css +4 -0
- data/spec/fixtures/bad.go +7 -0
- data/spec/fixtures/bad.java +3 -0
- data/spec/fixtures/bad.js +3 -0
- data/spec/fixtures/bad.json +4 -0
- data/spec/fixtures/bad.py +2 -0
- data/spec/fixtures/bad.rb +4 -0
- data/spec/fixtures/bad.scss +3 -0
- data/spec/fixtures/good.coffee +1 -0
- data/spec/fixtures/good.cpp +4 -0
- data/spec/fixtures/good.css +3 -0
- data/spec/fixtures/good.go +7 -0
- data/spec/fixtures/good.js +5 -0
- data/spec/fixtures/good.json +4 -0
- data/spec/fixtures/good.py +6 -0
- data/spec/fixtures/good.rb +5 -0
- data/spec/fixtures/good.scss +3 -0
- data/spec/fixtures/lint.txt +1 -0
- data/spec/integration/checkstyle_spec.rb +52 -0
- data/spec/integration/coffeelint_spec.rb +44 -0
- data/spec/integration/cppcheck_spec.rb +60 -0
- data/spec/integration/csslint_spec.rb +44 -0
- data/spec/integration/golint_spec.rb +44 -0
- data/spec/integration/jshint_spec.rb +70 -0
- data/spec/integration/jsonlint_spec.rb +60 -0
- data/spec/integration/pylint_spec.rb +51 -0
- data/spec/integration/rubocop_spec.rb +52 -0
- data/spec/integration/scsslint_spec.rb +44 -0
- data/spec/language/coffeescript_spec.rb +8 -0
- data/spec/language/cpp_spec.rb +8 -0
- data/spec/language/css_spec.rb +8 -0
- data/spec/language/go_spec.rb +8 -0
- data/spec/language/java_spec.rb +8 -0
- data/spec/language/javascript_spec.rb +8 -0
- data/spec/language/json_spec.rb +8 -0
- data/spec/language/python_spec.rb +8 -0
- data/spec/language/ruby_spec.rb +8 -0
- data/spec/language/scss_spec.rb +8 -0
- data/spec/language_spec.rb +143 -0
- data/spec/lint_trap_spec.rb +0 -16
- data/spec/linter/checkstyle_spec.rb +45 -0
- data/spec/linter/coffeelint_spec.rb +46 -0
- data/spec/linter/cppcheck_spec.rb +26 -0
- data/spec/linter/csslint_spec.rb +44 -0
- data/spec/linter/golint_spec.rb +22 -0
- data/spec/linter/jshint_spec.rb +44 -0
- data/spec/linter/jsonlint_spec.rb +22 -0
- data/spec/linter/pylint_spec.rb +46 -0
- data/spec/linter/rubocop_spec.rb +48 -0
- data/spec/linter/scsslint_spec.rb +44 -0
- data/spec/linter_spec.rb +67 -0
- data/spec/parser/csslint_spec.rb +25 -0
- data/spec/{parsers/standard_parser_spec.rb → parser/standard_spec.rb} +4 -3
- data/spec/{parsers/vim_quickfix_parser_spec.rb → parser/vim_quickfix_spec.rb} +5 -4
- data/spec/spec_helper.rb +8 -0
- data/spec/support/fixture_file_helper.rb +8 -0
- metadata +193 -18
- data/lib/lint_trap/parser_factory.rb +0 -32
- data/lib/lint_trap/parsers/null_parser.rb +0 -11
- data/lib/lint_trap/parsers/standard_parser.rb +0 -23
- data/lib/lint_trap/parsers/vim_quickfix_parser.rb +0 -20
- data/spec/parser_factory_spec.rb +0 -17
- data/spec/parsers/csslint_parser_spec.rb +0 -26
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Linter::CSSLint do
|
4
|
+
let(:container){LintTrap::Container::Fake.new}
|
5
|
+
let(:config){nil}
|
6
|
+
let(:files){%w(good.css bad.css)}
|
7
|
+
subject(:linter){described_class.new(container: container, config: config)}
|
8
|
+
let(:command){instance_double(LintTrap::Command)}
|
9
|
+
|
10
|
+
describe '#lint' do
|
11
|
+
context 'when config is provided' do
|
12
|
+
let(:config){'.csslintrc'}
|
13
|
+
|
14
|
+
it 'runs the lint command with the correct arguments' do
|
15
|
+
expect(LintTrap::Command).to receive(:new).with(
|
16
|
+
'csslint',
|
17
|
+
[
|
18
|
+
'--format=compact',
|
19
|
+
'--config=.csslintrc'
|
20
|
+
],
|
21
|
+
files
|
22
|
+
).and_return(command)
|
23
|
+
expect(command).to receive(:run).with(container)
|
24
|
+
|
25
|
+
linter.lint(files)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'when config is not provided' do
|
30
|
+
it 'runs the lint command with the correct arguments' do
|
31
|
+
expect(LintTrap::Command).to receive(:new).with(
|
32
|
+
'csslint',
|
33
|
+
[
|
34
|
+
'--format=compact'
|
35
|
+
],
|
36
|
+
files
|
37
|
+
).and_return(command)
|
38
|
+
expect(command).to receive(:run).with(container)
|
39
|
+
|
40
|
+
linter.lint(files)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Linter::GoLint do
|
4
|
+
let(:container){LintTrap::Container::Fake.new}
|
5
|
+
let(:config){nil}
|
6
|
+
let(:files){%w(good.go bad.go)}
|
7
|
+
subject(:linter){described_class.new(container: container, config: config)}
|
8
|
+
let(:command){instance_double(LintTrap::Command)}
|
9
|
+
|
10
|
+
describe '#lint' do
|
11
|
+
it 'runs the lint command with the correct arguments' do
|
12
|
+
expect(LintTrap::Command).to receive(:new).with(
|
13
|
+
'golint',
|
14
|
+
[],
|
15
|
+
files
|
16
|
+
).and_return(command)
|
17
|
+
expect(command).to receive(:run).with(container)
|
18
|
+
|
19
|
+
linter.lint(files)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Linter::JSHint do
|
4
|
+
let(:container){LintTrap::Container::Fake.new}
|
5
|
+
let(:config){nil}
|
6
|
+
let(:files){%w(good.js bad.js)}
|
7
|
+
subject(:linter){described_class.new(container: container, config: config)}
|
8
|
+
let(:command){instance_double(LintTrap::Command)}
|
9
|
+
|
10
|
+
describe '#lint' do
|
11
|
+
context 'when config is provided' do
|
12
|
+
let(:config){'.jshintrc'}
|
13
|
+
|
14
|
+
it 'runs the lint command with the correct arguments' do
|
15
|
+
expect(LintTrap::Command).to receive(:new).with(
|
16
|
+
'jshint',
|
17
|
+
[
|
18
|
+
'--reporter', container.config_path(described_class::FORMATTER),
|
19
|
+
'--config', config
|
20
|
+
],
|
21
|
+
files
|
22
|
+
).and_return(command)
|
23
|
+
expect(command).to receive(:run).with(container)
|
24
|
+
|
25
|
+
linter.lint(files)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'when config is not provided' do
|
30
|
+
it 'runs the lint command with the correct arguments' do
|
31
|
+
expect(LintTrap::Command).to receive(:new).with(
|
32
|
+
'jshint',
|
33
|
+
[
|
34
|
+
'--reporter', container.config_path(described_class::FORMATTER)
|
35
|
+
],
|
36
|
+
files
|
37
|
+
).and_return(command)
|
38
|
+
expect(command).to receive(:run).with(container)
|
39
|
+
|
40
|
+
linter.lint(files)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Linter::JSONLint do
|
4
|
+
let(:container){LintTrap::Container::Fake.new}
|
5
|
+
let(:config){nil}
|
6
|
+
let(:files){%w(good.go bad.go)}
|
7
|
+
subject(:linter){described_class.new(container: container, config: config)}
|
8
|
+
let(:command){instance_double(LintTrap::Command)}
|
9
|
+
|
10
|
+
describe '#lint' do
|
11
|
+
it 'runs the lint command with the correct arguments' do
|
12
|
+
expect(LintTrap::Command).to receive(:new).with(
|
13
|
+
'durable-json-lint',
|
14
|
+
['--format', '{{file}}:{{line}}:{{column}}:::error:{{{description}}}'],
|
15
|
+
files
|
16
|
+
).and_return(command)
|
17
|
+
expect(command).to receive(:run).with(container)
|
18
|
+
|
19
|
+
linter.lint(files)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Linter::PyLint do
|
4
|
+
let(:container){LintTrap::Container::Fake.new}
|
5
|
+
let(:config){nil}
|
6
|
+
let(:files){%w(good.py bad.py)}
|
7
|
+
subject(:linter){described_class.new(container: container, config: config)}
|
8
|
+
let(:command){instance_double(LintTrap::Command)}
|
9
|
+
|
10
|
+
describe '#lint' do
|
11
|
+
context 'when config is provided' do
|
12
|
+
let(:config){'.pylintrc'}
|
13
|
+
|
14
|
+
it 'runs the lint command with the correct arguments' do
|
15
|
+
expect(LintTrap::Command).to receive(:new).with(
|
16
|
+
'pylint',
|
17
|
+
[
|
18
|
+
'-r', 'no',
|
19
|
+
'--msg-template', '"{abspath}:{line}:{column}::{symbol}:{category}:{msg}"',
|
20
|
+
'--rcfile', config
|
21
|
+
],
|
22
|
+
files
|
23
|
+
).and_return(command)
|
24
|
+
expect(command).to receive(:run).with(container)
|
25
|
+
|
26
|
+
linter.lint(files)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context 'when config is not provided' do
|
31
|
+
it 'runs the lint command with the correct arguments' do
|
32
|
+
expect(LintTrap::Command).to receive(:new).with(
|
33
|
+
'pylint',
|
34
|
+
[
|
35
|
+
'-r', 'no',
|
36
|
+
'--msg-template', '"{abspath}:{line}:{column}::{symbol}:{category}:{msg}"'
|
37
|
+
],
|
38
|
+
files
|
39
|
+
).and_return(command)
|
40
|
+
expect(command).to receive(:run).with(container)
|
41
|
+
|
42
|
+
linter.lint(files)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Linter::RuboCop do
|
4
|
+
let(:container){LintTrap::Container::Fake.new}
|
5
|
+
let(:config){nil}
|
6
|
+
let(:files){%w(good.rb bad.rb)}
|
7
|
+
subject(:linter){described_class.new(container: container, config: config)}
|
8
|
+
let(:command){instance_double(LintTrap::Command)}
|
9
|
+
|
10
|
+
describe '#lint' do
|
11
|
+
context 'when config is provided' do
|
12
|
+
let(:config){'.rubocop.yml'}
|
13
|
+
|
14
|
+
it 'runs the lint command with the correct arguments' do
|
15
|
+
expect(LintTrap::Command).to receive(:new).with(
|
16
|
+
'rubocop',
|
17
|
+
[
|
18
|
+
'--require', container.config_path(described_class::FORMATTER),
|
19
|
+
'--format', 'LintTrap::Rubocop::Formatter',
|
20
|
+
'--no-color',
|
21
|
+
'--config', config
|
22
|
+
],
|
23
|
+
files
|
24
|
+
).and_return(command)
|
25
|
+
expect(command).to receive(:run).with(container)
|
26
|
+
|
27
|
+
linter.lint(files)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'when config is not provided' do
|
32
|
+
it 'runs the lint command with the correct arguments' do
|
33
|
+
expect(LintTrap::Command).to receive(:new).with(
|
34
|
+
'rubocop',
|
35
|
+
[
|
36
|
+
'--require', container.config_path(described_class::FORMATTER),
|
37
|
+
'--format', 'LintTrap::Rubocop::Formatter',
|
38
|
+
'--no-color'
|
39
|
+
],
|
40
|
+
files
|
41
|
+
).and_return(command)
|
42
|
+
expect(command).to receive(:run).with(container)
|
43
|
+
|
44
|
+
linter.lint(files)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Linter::SCSSLint do
|
4
|
+
let(:container){LintTrap::Container::Fake.new}
|
5
|
+
let(:config){nil}
|
6
|
+
let(:files){%w(good.scss bad.scss)}
|
7
|
+
subject(:linter){described_class.new(container: container, config: config)}
|
8
|
+
let(:command){instance_double(LintTrap::Command)}
|
9
|
+
|
10
|
+
describe '#lint' do
|
11
|
+
context 'when config is provided' do
|
12
|
+
let(:config){'.scss-lint.yml'}
|
13
|
+
|
14
|
+
it 'runs the lint command with the correct arguments' do
|
15
|
+
expect(LintTrap::Command).to receive(:new).with(
|
16
|
+
container.config_path(described_class::COMMAND),
|
17
|
+
[
|
18
|
+
'--format=LintTrap',
|
19
|
+
'--config', '.scss-lint.yml'
|
20
|
+
],
|
21
|
+
files
|
22
|
+
).and_return(command)
|
23
|
+
expect(command).to receive(:run).with(container)
|
24
|
+
|
25
|
+
linter.lint(files)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
context 'when config is not provided' do
|
30
|
+
it 'runs the lint command with the correct arguments' do
|
31
|
+
expect(LintTrap::Command).to receive(:new).with(
|
32
|
+
container.config_path(described_class::COMMAND),
|
33
|
+
[
|
34
|
+
'--format=LintTrap'
|
35
|
+
],
|
36
|
+
files
|
37
|
+
).and_return(command)
|
38
|
+
expect(command).to receive(:run).with(container)
|
39
|
+
|
40
|
+
linter.lint(files)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
data/spec/linter_spec.rb
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Linter do
|
4
|
+
describe '.find' do
|
5
|
+
subject(:language){described_class.find(linter_name)}
|
6
|
+
|
7
|
+
context 'when given CheckStyle' do
|
8
|
+
let(:linter_name){'CheckStyle'}
|
9
|
+
|
10
|
+
it{is_expected.to eq(described_class::CheckStyle)}
|
11
|
+
end
|
12
|
+
|
13
|
+
context 'when given CoffeeLint' do
|
14
|
+
let(:linter_name){'CoffeeLint'}
|
15
|
+
|
16
|
+
it{is_expected.to eq(described_class::CoffeeLint)}
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'when given CPPCheck' do
|
20
|
+
let(:linter_name){'CPPCheck'}
|
21
|
+
|
22
|
+
it{is_expected.to eq(described_class::CPPCheck)}
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'when given CSSLint' do
|
26
|
+
let(:linter_name){'CSSLint'}
|
27
|
+
|
28
|
+
it{is_expected.to eq(described_class::CSSLint)}
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'when given GoLint' do
|
32
|
+
let(:linter_name){'GoLint'}
|
33
|
+
|
34
|
+
it{is_expected.to eq(described_class::GoLint)}
|
35
|
+
end
|
36
|
+
|
37
|
+
context 'when given JSHint' do
|
38
|
+
let(:linter_name){'JSHint'}
|
39
|
+
|
40
|
+
it{is_expected.to eq(described_class::JSHint)}
|
41
|
+
end
|
42
|
+
|
43
|
+
context 'when given JSONLint' do
|
44
|
+
let(:linter_name){'JSONLint'}
|
45
|
+
|
46
|
+
it{is_expected.to eq(described_class::JSONLint)}
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'when given PyLint' do
|
50
|
+
let(:linter_name){'PyLint'}
|
51
|
+
|
52
|
+
it{is_expected.to eq(described_class::PyLint)}
|
53
|
+
end
|
54
|
+
|
55
|
+
context 'when given RuboCop' do
|
56
|
+
let(:linter_name){'RuboCop'}
|
57
|
+
|
58
|
+
it{is_expected.to eq(described_class::RuboCop)}
|
59
|
+
end
|
60
|
+
|
61
|
+
context 'when given SCSSLint' do
|
62
|
+
let(:linter_name){'SCSSLint'}
|
63
|
+
|
64
|
+
it{is_expected.to eq(described_class::SCSSLint)}
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe LintTrap::Parser::CSSLint do
|
4
|
+
let(:parser_output) do
|
5
|
+
'bad.css: line 2, col 5, Error - Using width with border can sometimes'\
|
6
|
+
" make elements larger than you expect.\n\n"
|
7
|
+
end
|
8
|
+
let(:io){StringIO.new(parser_output)}
|
9
|
+
let(:container){LintTrap::Container::Fake.new}
|
10
|
+
subject(:parser){described_class.new(io, container)}
|
11
|
+
|
12
|
+
describe '.parse' do
|
13
|
+
it 'parses violations from io' do
|
14
|
+
expect{|b| parser.parse(&b)}.to yield_successive_args(
|
15
|
+
file: 'bad.css',
|
16
|
+
line: '2',
|
17
|
+
column: '5',
|
18
|
+
length: nil,
|
19
|
+
rule: nil,
|
20
|
+
severity: 'Error',
|
21
|
+
message: 'Using width with border can sometimes make elements larger than you expect.'
|
22
|
+
)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe LintTrap::
|
3
|
+
describe LintTrap::Parser::Standard do
|
4
4
|
let(:parser_output) do
|
5
5
|
"bad.java:1:0::com.puppycrawl.tools.checkstyle.checks.javadoc.JavadocTypeCheck:error:"\
|
6
6
|
"Missing a Javadoc comment.\n"\
|
@@ -11,11 +11,12 @@ describe LintTrap::Parsers::StandardParser do
|
|
11
11
|
"bad.scss:2:3:12:BorderZero:warning:`border: 0;` is preferred over `border: none;`\n"
|
12
12
|
end
|
13
13
|
let(:io){StringIO.new(parser_output)}
|
14
|
-
|
14
|
+
let(:container){LintTrap::Container::Fake.new}
|
15
|
+
subject(:parser){described_class.new(io, container)}
|
15
16
|
|
16
17
|
describe '.parse' do
|
17
18
|
it 'parses violations from io' do
|
18
|
-
expect{|b| parser.parse(
|
19
|
+
expect{|b| parser.parse(&b)}.to yield_successive_args(
|
19
20
|
{
|
20
21
|
file: 'bad.java',
|
21
22
|
line: '1',
|
@@ -1,15 +1,16 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
-
describe LintTrap::
|
3
|
+
describe LintTrap::Parser::VimQuickfix do
|
4
4
|
let(:parser_output) do
|
5
5
|
"bad.go:5:1: exported function Main should have comment or be unexported\n"
|
6
6
|
end
|
7
7
|
let(:io){StringIO.new(parser_output)}
|
8
|
-
|
8
|
+
let(:container){LintTrap::Container::Fake.new}
|
9
|
+
subject(:parser){described_class.new(io, container)}
|
9
10
|
|
10
|
-
describe '
|
11
|
+
describe '#parse' do
|
11
12
|
it 'parses violations from io' do
|
12
|
-
expect{|b| parser.parse(
|
13
|
+
expect{|b| parser.parse(&b)}.to yield_successive_args(
|
13
14
|
{
|
14
15
|
file: 'bad.go',
|
15
16
|
line: '5',
|
data/spec/spec_helper.rb
CHANGED
@@ -1,2 +1,10 @@
|
|
1
1
|
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
2
|
+
require 'rspec/its'
|
2
3
|
require 'lint_trap'
|
4
|
+
require_relative 'support/fixture_file_helper'
|
5
|
+
|
6
|
+
ENV['DEBUG_LINTING'] = ENV['CI']
|
7
|
+
|
8
|
+
RSpec.configure do |config|
|
9
|
+
config.include FixtureFileHelper
|
10
|
+
end
|