From 460e4ea7cda823fde7de08116dd6f7f0d69c3943 Mon Sep 17 00:00:00 2001
From: ddieulivol <ddieulivol@gitlab.com>
Date: Tue, 11 Apr 2023 09:08:06 +0200
Subject: [PATCH] Only return valid ruby spec files

---
 .../js_to_system_specs_mappings_spec.rb       | 24 +++++++++++++++++++
 .../mappings/js_to_system_specs_mappings.rb   |  2 +-
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb b/spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb
index 156d656e0a1de..c36d14cd267d8 100644
--- a/spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb
+++ b/spec/tooling/lib/tooling/mappings/js_to_system_specs_mappings_spec.rb
@@ -181,6 +181,30 @@
       instance.system_specs_for_edition(edition)
     end
 
+    let(:edition) { nil }
+
+    context 'when a file is not a ruby spec' do
+      before do
+        File.write("#{system_specs_base_folder}/issues_spec.tar.gz", "a test")
+      end
+
+      it 'does not return that file' do
+        expect(subject).to be_empty
+      end
+    end
+
+    context 'when a file is a ruby spec' do
+      let(:spec_pathname) { "#{system_specs_base_folder}/issues_spec.rb" }
+
+      before do
+        File.write(spec_pathname, "a test")
+      end
+
+      it 'returns that file' do
+        expect(subject).to match_array(spec_pathname)
+      end
+    end
+
     context 'when FOSS' do
       let(:edition) { nil }
 
diff --git a/tooling/lib/tooling/mappings/js_to_system_specs_mappings.rb b/tooling/lib/tooling/mappings/js_to_system_specs_mappings.rb
index f0fb5293a68b0..0c61b921f839b 100644
--- a/tooling/lib/tooling/mappings/js_to_system_specs_mappings.rb
+++ b/tooling/lib/tooling/mappings/js_to_system_specs_mappings.rb
@@ -61,7 +61,7 @@ def construct_js_keywords(js_files)
       def system_specs_for_edition(edition)
         all_files_in_folders_glob = File.join(@system_specs_base_folder, '**', '*')
         all_files_in_folders_glob = File.join(edition, all_files_in_folders_glob) if edition
-        Dir[all_files_in_folders_glob].select { |f| File.file?(f) }
+        Dir[all_files_in_folders_glob].select { |f| File.file?(f) && f.end_with?('_spec.rb') }
       end
 
       private
-- 
GitLab