summaryrefslogtreecommitdiff
path: root/spec/tooling/lib/tooling/test_file_finder_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/tooling/lib/tooling/test_file_finder_spec.rb')
-rw-r--r--spec/tooling/lib/tooling/test_file_finder_spec.rb175
1 files changed, 0 insertions, 175 deletions
diff --git a/spec/tooling/lib/tooling/test_file_finder_spec.rb b/spec/tooling/lib/tooling/test_file_finder_spec.rb
deleted file mode 100644
index 683bc647b8a..00000000000
--- a/spec/tooling/lib/tooling/test_file_finder_spec.rb
+++ /dev/null
@@ -1,175 +0,0 @@
-# frozen_string_literal: true
-
-require_relative '../../../../tooling/lib/tooling/test_file_finder'
-
-RSpec.describe Tooling::TestFileFinder do
- subject { described_class.new(file) }
-
- describe '#test_files' do
- context 'when given non .rb files' do
- let(:file) { 'app/assets/images/emoji.png' }
-
- it 'does not return a test file' do
- expect(subject.test_files).to be_empty
- end
- end
-
- context 'when given file in app/' do
- let(:file) { 'app/finders/admin/projects_finder.rb' }
-
- it 'returns the matching app spec file' do
- expect(subject.test_files).to contain_exactly('spec/finders/admin/projects_finder_spec.rb')
- end
- end
-
- context 'when given file in lib/' do
- let(:file) { 'lib/banzai/color_parser.rb' }
-
- it 'returns the matching app spec file' do
- expect(subject.test_files).to contain_exactly('spec/lib/banzai/color_parser_spec.rb')
- end
- end
-
- context 'when given a file in tooling/' do
- let(:file) { 'tooling/lib/tooling/test_file_finder.rb' }
-
- it 'returns the matching tooling test' do
- expect(subject.test_files).to contain_exactly('spec/tooling/lib/tooling/test_file_finder_spec.rb')
- end
- end
-
- context 'when given a test file' do
- let(:file) { 'spec/lib/banzai/color_parser_spec.rb' }
-
- it 'returns the matching test file itself' do
- expect(subject.test_files).to contain_exactly('spec/lib/banzai/color_parser_spec.rb')
- end
- end
-
- context 'when given an app file in ee/' do
- let(:file) { 'ee/app/models/analytics/cycle_analytics/group_level.rb' }
-
- it 'returns the matching ee/ test file' do
- expect(subject.test_files).to contain_exactly('ee/spec/models/analytics/cycle_analytics/group_level_spec.rb')
- end
- end
-
- context 'when given an ee extension module file' do
- let(:file) { 'ee/app/models/ee/user.rb' }
-
- it 'returns the matching ee/ class test file, ee extension module test file and the foss class test file' do
- test_files = ['ee/spec/models/user_spec.rb', 'ee/spec/models/ee/user_spec.rb', 'spec/app/models/user_spec.rb']
- expect(subject.test_files).to contain_exactly(*test_files)
- end
- end
-
- context 'when given a test file in ee/' do
- let(:file) { 'ee/spec/models/container_registry/event_spec.rb' }
-
- it 'returns the test file itself' do
- expect(subject.test_files).to contain_exactly('ee/spec/models/container_registry/event_spec.rb')
- end
- end
-
- context 'when given a module test file in ee/' do
- let(:file) { 'ee/spec/models/ee/appearance_spec.rb' }
-
- it 'returns the matching module test file itself and the corresponding spec model test file' do
- test_files = ['ee/spec/models/ee/appearance_spec.rb', 'spec/models/appearance_spec.rb']
- expect(subject.test_files).to contain_exactly(*test_files)
- end
- end
-
- context 'when given a factory file' do
- let(:file) { 'spec/factories/users.rb' }
-
- it 'returns spec/factories_spec.rb file' do
- expect(subject.test_files).to contain_exactly('spec/factories_spec.rb')
- end
- end
-
- context 'when given an ee factory file' do
- let(:file) { 'ee/spec/factories/users.rb' }
-
- it 'returns spec/factories_spec.rb file' do
- expect(subject.test_files).to contain_exactly('spec/factories_spec.rb')
- end
- end
-
- context 'when given db/structure.sql' do
- let(:file) { 'db/structure.sql' }
-
- it 'returns spec/db/schema_spec.rb' do
- expect(subject.test_files).to contain_exactly('spec/db/schema_spec.rb')
- end
- end
-
- context 'when given an initializer' do
- let(:file) { 'config/initializers/action_mailer_hooks.rb' }
-
- it 'returns the matching initializer spec' do
- expect(subject.test_files).to contain_exactly('spec/initializers/action_mailer_hooks_spec.rb')
- end
- end
-
- context 'when given a haml view' do
- let(:file) { 'app/views/admin/users/_user.html.haml' }
-
- it 'returns the matching view spec' do
- expect(subject.test_files).to contain_exactly('spec/views/admin/users/_user.html.haml_spec.rb')
- end
- end
-
- context 'when given a haml view in ee/' do
- let(:file) { 'ee/app/views/admin/users/_user.html.haml' }
-
- it 'returns the matching view spec' do
- expect(subject.test_files).to contain_exactly('ee/spec/views/admin/users/_user.html.haml_spec.rb')
- end
- end
-
- context 'when given a migration file' do
- let(:file) { 'db/migrate/20191023152913_add_default_and_free_plans.rb' }
-
- it 'returns the matching migration spec' do
- test_files = %w[
- spec/migrations/add_default_and_free_plans_spec.rb
- spec/migrations/20191023152913_add_default_and_free_plans_spec.rb
- ]
- expect(subject.test_files).to contain_exactly(*test_files)
- end
- end
-
- context 'when given a post-migration file' do
- let(:file) { 'db/post_migrate/20200608072931_backfill_imported_snippet_repositories.rb' }
-
- it 'returns the matching migration spec' do
- test_files = %w[
- spec/migrations/backfill_imported_snippet_repositories_spec.rb
- spec/migrations/20200608072931_backfill_imported_snippet_repositories_spec.rb
- ]
- expect(subject.test_files).to contain_exactly(*test_files)
- end
- end
-
- context 'with foss_test_only: true' do
- subject { Tooling::TestFileFinder.new(file, foss_test_only: true) }
-
- context 'when given a module file in ee/' do
- let(:file) { 'ee/app/models/ee/user.rb' }
-
- it 'returns only the corresponding spec model test file in foss' do
- expect(subject.test_files).to contain_exactly('spec/app/models/user_spec.rb')
- end
- end
-
- context 'when given an app file in ee/' do
- let(:file) { 'ee/app/models/approval.rb' }
-
- it 'returns no test file in foss' do
- expect(subject.test_files).to be_empty
- end
- end
- end
- end
-end