diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-11-22 00:14:46 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-11-22 00:14:46 +0300 |
commit | a3e6d34643e760d1a8b8bd1e7e32d8d74c1ea678 (patch) | |
tree | 1228f600e98bfe626c313ffa61a60a4b7d162426 /jest.config.snapshots.js | |
parent | d5ff0674315196e88f48dc0838486b44cd005628 (diff) |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'jest.config.snapshots.js')
-rw-r--r-- | jest.config.snapshots.js | 46 |
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, + }; +}; |