Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-10-18 03:11:06 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2022-10-18 03:11:06 +0300
commit90e7f31698f6d67da00ed3a68a7392127746ced2 (patch)
tree8e537deb71b944bd0549454a7e2c68be61473fff /spec/rubocop
parent613fdca844c869a6404682ce983512b34f4ea114 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/rubocop')
-rw-r--r--spec/rubocop/cop_todo_spec.rb35
-rw-r--r--spec/rubocop/formatter/todo_formatter_spec.rb70
2 files changed, 98 insertions, 7 deletions
diff --git a/spec/rubocop/cop_todo_spec.rb b/spec/rubocop/cop_todo_spec.rb
index 3f9c378b303..c641001789f 100644
--- a/spec/rubocop/cop_todo_spec.rb
+++ b/spec/rubocop/cop_todo_spec.rb
@@ -66,6 +66,38 @@ RSpec.describe RuboCop::CopTodo do
end
end
+ describe '#generate?' do
+ subject { cop_todo.generate? }
+
+ context 'when empty todo' do
+ it { is_expected.to eq(false) }
+ end
+
+ context 'when previously disabled' do
+ before do
+ cop_todo.previously_disabled = true
+ end
+
+ it { is_expected.to eq(true) }
+ end
+
+ context 'when in grace period' do
+ before do
+ cop_todo.grace_period = true
+ end
+
+ it { is_expected.to eq(true) }
+ end
+
+ context 'with offenses recorded' do
+ before do
+ cop_todo.record('a.rb', 1)
+ end
+
+ it { is_expected.to eq(true) }
+ end
+ end
+
describe '#to_yaml' do
subject(:yaml) { cop_todo.to_yaml }
@@ -77,9 +109,8 @@ RSpec.describe RuboCop::CopTodo do
specify do
expect(yaml).to eq(<<~YAML)
---
- # Cop supports --auto-correct.
+ # Cop supports --autocorrect.
#{cop_name}:
- Exclude:
YAML
end
end
diff --git a/spec/rubocop/formatter/todo_formatter_spec.rb b/spec/rubocop/formatter/todo_formatter_spec.rb
index edd84632409..5494d518605 100644
--- a/spec/rubocop/formatter/todo_formatter_spec.rb
+++ b/spec/rubocop/formatter/todo_formatter_spec.rb
@@ -82,7 +82,7 @@ RSpec.describe RuboCop::Formatter::TodoFormatter do
expect(todo_yml('B/AutoCorrect')).to eq(<<~YAML)
---
- # Cop supports --auto-correct.
+ # Cop supports --autocorrect.
B/AutoCorrect:
Exclude:
- 'd.rb'
@@ -309,18 +309,78 @@ RSpec.describe RuboCop::Formatter::TodoFormatter do
context 'without offenses detected' do
before do
+ todo_dir.write('A/Cop', yaml) if yaml
+ todo_dir.inspect_all
+
formatter.started(%w[a.rb b.rb])
formatter.file_finished('a.rb', [])
formatter.file_finished('b.rb', [])
formatter.finished(%w[a.rb b.rb])
+
+ todo_dir.delete_inspected
end
- it 'does not output anything' do
- expect(stdout.string).to eq('')
+ context 'without existing TODOs' do
+ let(:yaml) { nil }
+
+ it 'does not output anything' do
+ expect(stdout.string).to eq('')
+ end
+
+ it 'does not write any YAML files' do
+ expect(rubocop_todo_dir_listing).to be_empty
+ end
end
- it 'does not write any YAML files' do
- expect(rubocop_todo_dir_listing).to be_empty
+ context 'with existing TODOs' do
+ context 'when existing offenses only' do
+ let(:yaml) do
+ <<~YAML
+ ---
+ A/Cop:
+ Exclude:
+ - x.rb
+ YAML
+ end
+
+ it 'does not output anything' do
+ expect(stdout.string).to eq('')
+ end
+
+ it 'does not write any YAML files' do
+ expect(rubocop_todo_dir_listing).to be_empty
+ end
+ end
+
+ context 'when in grace period' do
+ let(:yaml) do
+ <<~YAML
+ ---
+ A/Cop:
+ Details: grace period
+ Exclude:
+ - x.rb
+ YAML
+ end
+
+ it 'outputs its actions' do
+ expect(stdout.string).to eq(<<~OUTPUT)
+ Written to .rubocop_todo/a/cop.yml
+ OUTPUT
+ end
+
+ it 'creates YAML file with Details only', :aggregate_failures do
+ expect(rubocop_todo_dir_listing).to contain_exactly(
+ 'a/cop.yml'
+ )
+
+ expect(todo_yml('A/Cop')).to eq(<<~YAML)
+ ---
+ A/Cop:
+ Details: grace period
+ YAML
+ end
+ end
end
end