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>2023-11-22 00:14:46 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-11-22 00:14:46 +0300
commita3e6d34643e760d1a8b8bd1e7e32d8d74c1ea678 (patch)
tree1228f600e98bfe626c313ffa61a60a4b7d162426 /jest.config.snapshots.js
parentd5ff0674315196e88f48dc0838486b44cd005628 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'jest.config.snapshots.js')
-rw-r--r--jest.config.snapshots.js46
1 files changed, 46 insertions, 0 deletions
diff --git a/jest.config.snapshots.js b/jest.config.snapshots.js
new file mode 100644
index 00000000000..eb74ae4947a
--- /dev/null
+++ b/jest.config.snapshots.js
@@ -0,0 +1,46 @@
+const fs = require('fs');
+const path = require('path');
+const baseConfig = require('./jest.config.base');
+
+function findSnapshotTestsFromDir(dir, results = []) {
+ fs.readdirSync(dir).forEach((file) => {
+ const fullPath = path.join(dir, file);
+ if (fs.lstatSync(fullPath).isDirectory()) {
+ findSnapshotTestsFromDir(fullPath, results);
+ } else {
+ const fileContent = fs.readFileSync(fullPath, 'utf8');
+ if (/toMatchSnapshot|toMatchInlineSnapshot/.test(fileContent)) {
+ results.push(`<rootDir>/${fullPath}`);
+ }
+ }
+ });
+ return results;
+}
+
+function saveArrayToFile(array, fileName) {
+ fs.writeFile(fileName, JSON.stringify(array, null, 2), (err) => {
+ if (err) {
+ console.error(`Error writing Array data to ${fileName}:`, err);
+ }
+ });
+}
+
+module.exports = () => {
+ const testMatch = [
+ ...findSnapshotTestsFromDir('spec/frontend'),
+ ...findSnapshotTestsFromDir('ee/spec/frontend'),
+ ];
+
+ const { CI, SNAPSHOT_TEST_MATCH_FILE } = process.env;
+ if (CI && SNAPSHOT_TEST_MATCH_FILE) {
+ saveArrayToFile(testMatch, SNAPSHOT_TEST_MATCH_FILE);
+ }
+
+ return {
+ ...baseConfig('spec/frontend'),
+ roots: ['<rootDir>/spec/frontend'],
+ rootsEE: ['<rootDir>/ee/spec/frontend'],
+ rootsJH: ['<rootDir>/jh/spec/frontend'],
+ testMatch,
+ };
+};