From fb94b0e6df4da3026b9fb4714ee7ceab6bbfa9bc Mon Sep 17 00:00:00 2001 From: Markus Doits Date: Mon, 25 Jul 2016 14:36:23 +0200 Subject: Respect `.eslintignore` If an `.eslintignore` is present, it's patterns are now respected. See http://eslint.org/docs/user-guide/configuring#ignoring-files-and-directories for more info. Due to the file format of `.eslintignore`, the gem `globby` has to be used for those patterns (which respects negations etc.). --- spec/fixtures/eslintignore.git/.eslintignore | 2 ++ spec/fixtures/eslintignore.git/git/HEAD | 1 + spec/fixtures/eslintignore.git/git/config | 7 +++++++ spec/fixtures/eslintignore.git/git/index | Bin 0 -> 353 bytes spec/fixtures/eslintignore.git/git/logs/HEAD | 3 +++ .../eslintignore.git/git/logs/refs/heads/eslintignore | 2 ++ spec/fixtures/eslintignore.git/git/logs/refs/heads/master | 1 + .../git/objects/2d/1b9966feb19d665a9e5bb6a5bde410203a68f7 | Bin 0 -> 73 bytes .../git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 | Bin 0 -> 15 bytes .../git/objects/5f/fc9b3c7f8e8d8f2e8c91cb69c9698405d1ca53 | Bin 0 -> 185 bytes .../git/objects/69/7ffd3c693fce9abcb871b9b47e2d116e6241d3 | Bin 0 -> 88 bytes .../git/objects/d4/3de0396c81608113f99f7afd00f7f363e1cae8 | 2 ++ .../git/objects/d8/5195b5ff74cc05d121b758f00da43018f53b6f | Bin 0 -> 42 bytes .../git/objects/ec/7b4537cbd327a580ee44b74ff02fffc74feb46 | Bin 0 -> 63 bytes .../fixtures/eslintignore.git/git/refs/heads/eslintignore | 1 + spec/fixtures/eslintignore.git/git/refs/heads/master | 1 + spec/fixtures/eslintignore.git/ignored/ignored.js | 5 +++++ spec/fixtures/eslintignore.git/ignored/not_ignored.js | 5 +++++ spec/pronto/eslint_spec.rb | 9 +++++++++ spec/spec_helper.rb | 14 ++++++++------ 20 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 spec/fixtures/eslintignore.git/.eslintignore create mode 100644 spec/fixtures/eslintignore.git/git/HEAD create mode 100644 spec/fixtures/eslintignore.git/git/config create mode 100644 spec/fixtures/eslintignore.git/git/index create mode 100644 spec/fixtures/eslintignore.git/git/logs/HEAD create mode 100644 spec/fixtures/eslintignore.git/git/logs/refs/heads/eslintignore create mode 100644 spec/fixtures/eslintignore.git/git/logs/refs/heads/master create mode 100644 spec/fixtures/eslintignore.git/git/objects/2d/1b9966feb19d665a9e5bb6a5bde410203a68f7 create mode 100644 spec/fixtures/eslintignore.git/git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 create mode 100644 spec/fixtures/eslintignore.git/git/objects/5f/fc9b3c7f8e8d8f2e8c91cb69c9698405d1ca53 create mode 100644 spec/fixtures/eslintignore.git/git/objects/69/7ffd3c693fce9abcb871b9b47e2d116e6241d3 create mode 100644 spec/fixtures/eslintignore.git/git/objects/d4/3de0396c81608113f99f7afd00f7f363e1cae8 create mode 100644 spec/fixtures/eslintignore.git/git/objects/d8/5195b5ff74cc05d121b758f00da43018f53b6f create mode 100644 spec/fixtures/eslintignore.git/git/objects/ec/7b4537cbd327a580ee44b74ff02fffc74feb46 create mode 100644 spec/fixtures/eslintignore.git/git/refs/heads/eslintignore create mode 100644 spec/fixtures/eslintignore.git/git/refs/heads/master create mode 100644 spec/fixtures/eslintignore.git/ignored/ignored.js create mode 100644 spec/fixtures/eslintignore.git/ignored/not_ignored.js (limited to 'spec') diff --git a/spec/fixtures/eslintignore.git/.eslintignore b/spec/fixtures/eslintignore.git/.eslintignore new file mode 100644 index 0000000..d85195b --- /dev/null +++ b/spec/fixtures/eslintignore.git/.eslintignore @@ -0,0 +1,2 @@ +ignored/**/*.js +!ignored/not_ignored.js diff --git a/spec/fixtures/eslintignore.git/git/HEAD b/spec/fixtures/eslintignore.git/git/HEAD new file mode 100644 index 0000000..fac958f --- /dev/null +++ b/spec/fixtures/eslintignore.git/git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/eslintignore diff --git a/spec/fixtures/eslintignore.git/git/config b/spec/fixtures/eslintignore.git/git/config new file mode 100644 index 0000000..6c9406b --- /dev/null +++ b/spec/fixtures/eslintignore.git/git/config @@ -0,0 +1,7 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = false + logallrefupdates = true + ignorecase = true + precomposeunicode = true diff --git a/spec/fixtures/eslintignore.git/git/index b/spec/fixtures/eslintignore.git/git/index new file mode 100644 index 0000000..8c5575c Binary files /dev/null and b/spec/fixtures/eslintignore.git/git/index differ diff --git a/spec/fixtures/eslintignore.git/git/logs/HEAD b/spec/fixtures/eslintignore.git/git/logs/HEAD new file mode 100644 index 0000000..8750baa --- /dev/null +++ b/spec/fixtures/eslintignore.git/git/logs/HEAD @@ -0,0 +1,3 @@ +0000000000000000000000000000000000000000 d43de0396c81608113f99f7afd00f7f363e1cae8 Markus Doits 1469450052 +0200 commit (initial): empty init commit +d43de0396c81608113f99f7afd00f7f363e1cae8 d43de0396c81608113f99f7afd00f7f363e1cae8 Markus Doits 1469450062 +0200 checkout: moving from master to eslintignore +d43de0396c81608113f99f7afd00f7f363e1cae8 5ffc9b3c7f8e8d8f2e8c91cb69c9698405d1ca53 Markus Doits 1469450067 +0200 commit: add .eslintignore and files with errors diff --git a/spec/fixtures/eslintignore.git/git/logs/refs/heads/eslintignore b/spec/fixtures/eslintignore.git/git/logs/refs/heads/eslintignore new file mode 100644 index 0000000..3467ecc --- /dev/null +++ b/spec/fixtures/eslintignore.git/git/logs/refs/heads/eslintignore @@ -0,0 +1,2 @@ +0000000000000000000000000000000000000000 d43de0396c81608113f99f7afd00f7f363e1cae8 Markus Doits 1469450062 +0200 branch: Created from HEAD +d43de0396c81608113f99f7afd00f7f363e1cae8 5ffc9b3c7f8e8d8f2e8c91cb69c9698405d1ca53 Markus Doits 1469450067 +0200 commit: add .eslintignore and files with errors diff --git a/spec/fixtures/eslintignore.git/git/logs/refs/heads/master b/spec/fixtures/eslintignore.git/git/logs/refs/heads/master new file mode 100644 index 0000000..8105749 --- /dev/null +++ b/spec/fixtures/eslintignore.git/git/logs/refs/heads/master @@ -0,0 +1 @@ +0000000000000000000000000000000000000000 d43de0396c81608113f99f7afd00f7f363e1cae8 Markus Doits 1469450052 +0200 commit (initial): empty init commit diff --git a/spec/fixtures/eslintignore.git/git/objects/2d/1b9966feb19d665a9e5bb6a5bde410203a68f7 b/spec/fixtures/eslintignore.git/git/objects/2d/1b9966feb19d665a9e5bb6a5bde410203a68f7 new file mode 100644 index 0000000..f5fbdc5 Binary files /dev/null and b/spec/fixtures/eslintignore.git/git/objects/2d/1b9966feb19d665a9e5bb6a5bde410203a68f7 differ diff --git a/spec/fixtures/eslintignore.git/git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 b/spec/fixtures/eslintignore.git/git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 new file mode 100644 index 0000000..adf6411 Binary files /dev/null and b/spec/fixtures/eslintignore.git/git/objects/4b/825dc642cb6eb9a060e54bf8d69288fbee4904 differ diff --git a/spec/fixtures/eslintignore.git/git/objects/5f/fc9b3c7f8e8d8f2e8c91cb69c9698405d1ca53 b/spec/fixtures/eslintignore.git/git/objects/5f/fc9b3c7f8e8d8f2e8c91cb69c9698405d1ca53 new file mode 100644 index 0000000..832698f Binary files /dev/null and b/spec/fixtures/eslintignore.git/git/objects/5f/fc9b3c7f8e8d8f2e8c91cb69c9698405d1ca53 differ diff --git a/spec/fixtures/eslintignore.git/git/objects/69/7ffd3c693fce9abcb871b9b47e2d116e6241d3 b/spec/fixtures/eslintignore.git/git/objects/69/7ffd3c693fce9abcb871b9b47e2d116e6241d3 new file mode 100644 index 0000000..c23a96f Binary files /dev/null and b/spec/fixtures/eslintignore.git/git/objects/69/7ffd3c693fce9abcb871b9b47e2d116e6241d3 differ diff --git a/spec/fixtures/eslintignore.git/git/objects/d4/3de0396c81608113f99f7afd00f7f363e1cae8 b/spec/fixtures/eslintignore.git/git/objects/d4/3de0396c81608113f99f7afd00f7f363e1cae8 new file mode 100644 index 0000000..e3c829c --- /dev/null +++ b/spec/fixtures/eslintignore.git/git/objects/d4/3de0396c81608113f99f7afd00f7f363e1cae8 @@ -0,0 +1,2 @@ +xK +0@]&!n=D>S mZI o#|xihi@i%ZdCqtz#cmpm:"u!څ)ib2_D֓A4Uzק,SE \ No newline at end of file diff --git a/spec/fixtures/eslintignore.git/git/objects/d8/5195b5ff74cc05d121b758f00da43018f53b6f b/spec/fixtures/eslintignore.git/git/objects/d8/5195b5ff74cc05d121b758f00da43018f53b6f new file mode 100644 index 0000000..ee9657e Binary files /dev/null and b/spec/fixtures/eslintignore.git/git/objects/d8/5195b5ff74cc05d121b758f00da43018f53b6f differ diff --git a/spec/fixtures/eslintignore.git/git/objects/ec/7b4537cbd327a580ee44b74ff02fffc74feb46 b/spec/fixtures/eslintignore.git/git/objects/ec/7b4537cbd327a580ee44b74ff02fffc74feb46 new file mode 100644 index 0000000..9a642e0 Binary files /dev/null and b/spec/fixtures/eslintignore.git/git/objects/ec/7b4537cbd327a580ee44b74ff02fffc74feb46 differ diff --git a/spec/fixtures/eslintignore.git/git/refs/heads/eslintignore b/spec/fixtures/eslintignore.git/git/refs/heads/eslintignore new file mode 100644 index 0000000..d02562a --- /dev/null +++ b/spec/fixtures/eslintignore.git/git/refs/heads/eslintignore @@ -0,0 +1 @@ +5ffc9b3c7f8e8d8f2e8c91cb69c9698405d1ca53 diff --git a/spec/fixtures/eslintignore.git/git/refs/heads/master b/spec/fixtures/eslintignore.git/git/refs/heads/master new file mode 100644 index 0000000..5dcf161 --- /dev/null +++ b/spec/fixtures/eslintignore.git/git/refs/heads/master @@ -0,0 +1 @@ +d43de0396c81608113f99f7afd00f7f363e1cae8 diff --git a/spec/fixtures/eslintignore.git/ignored/ignored.js b/spec/fixtures/eslintignore.git/ignored/ignored.js new file mode 100644 index 0000000..2d1b996 --- /dev/null +++ b/spec/fixtures/eslintignore.git/ignored/ignored.js @@ -0,0 +1,5 @@ +function HelloWorld(name) +{ + if (foo) foo++; + alert(name); +} diff --git a/spec/fixtures/eslintignore.git/ignored/not_ignored.js b/spec/fixtures/eslintignore.git/ignored/not_ignored.js new file mode 100644 index 0000000..2d1b996 --- /dev/null +++ b/spec/fixtures/eslintignore.git/ignored/not_ignored.js @@ -0,0 +1,5 @@ +function HelloWorld(name) +{ + if (foo) foo++; + alert(name); +} diff --git a/spec/pronto/eslint_spec.rb b/spec/pronto/eslint_spec.rb index 7af0aa2..1117e15 100644 --- a/spec/pronto/eslint_spec.rb +++ b/spec/pronto/eslint_spec.rb @@ -25,6 +25,15 @@ module Pronto its(:count) { should == 9 } its(:'first.msg') { should == "Expected { after 'if' condition." } end + + context 'repo with ignored and not ignored file, each with five warnings' do + include_context 'eslintignore repo' + + let(:patches) { repo.diff('master') } + + its(:count) { should == 5 } + its(:'first.msg') { should == "Use the function form of 'use strict'." } + end end end end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 4d1ff71..5769c2d 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -2,13 +2,15 @@ require 'rspec' require 'rspec/its' require 'pronto/eslint' -RSpec.shared_context 'test repo' do - let(:git) { 'spec/fixtures/test.git/git' } - let(:dot_git) { 'spec/fixtures/test.git/.git' } +%w(test eslintignore).each do |repo_name| + RSpec.shared_context "#{repo_name} repo" do + let(:git) { "spec/fixtures/#{repo_name}.git/git" } + let(:dot_git) { "spec/fixtures/#{repo_name}.git/.git" } - before { FileUtils.mv(git, dot_git) } - let(:repo) { Pronto::Git::Repository.new('spec/fixtures/test.git') } - after { FileUtils.mv(dot_git, git) } + before { FileUtils.mv(git, dot_git) } + let(:repo) { Pronto::Git::Repository.new("spec/fixtures/#{repo_name}.git") } + after { FileUtils.mv(dot_git, git) } + end end RSpec.configure do |config| -- cgit v1.2.3