'playwright',
'nightwatch'
]
-const featureFlagsDenylist = [['cypress', 'playwright', 'nightwatch']]
+const featureFlagsDenylist = [
+ ['cypress', 'playwright'],
+ ['playwright', 'nightwatch'],
+ ['cypress', 'nightwatch'],
+ ['cypress', 'playwright', 'nightwatch']
+]
// The following code & comments are generated by GitHub CoPilot.
function fullCombination(arr) {
let flagCombinations = fullCombination(featureFlags)
flagCombinations.push(['default'])
-// Filter out combinations that are not allowed
-flagCombinations = flagCombinations.filter(
- (combination) =>
- !featureFlagsDenylist.some((denylist) => denylist.every((flag) => combination.includes(flag)))
-)
-
// `--with-tests` are equivalent of `--vitest --cypress`
// Previously it means `--cypress` without `--vitest`.
// Here we generate the snapshots only for the sake of easier comparison with older templates.
flagCombinations.push(...withTestsFlags)
const playgroundDir = path.resolve(__dirname, '../playground/')
-const bin = path.posix.relative('../playground/', '../outfile.cjs')
-
cd(playgroundDir)
+
+// remove all previous combinations
for (const flags of flagCombinations) {
const projectName = flags.join('-')
console.log(`Removing previously generated project ${projectName}`)
fs.rmSync(projectName, { recursive: true, force: true })
+}
+
+// Filter out combinations that are not allowed
+flagCombinations = flagCombinations.filter(
+ (combination) =>
+ !featureFlagsDenylist.some((denylist) => denylist.every((flag) => combination.includes(flag)))
+)
+
+const bin = path.posix.relative('../playground/', '../outfile.cjs')
+
+for (const flags of flagCombinations) {
+ const projectName = flags.join('-')
console.log(`Creating project ${projectName}`)
await $`node ${[bin, projectName, ...flags.map((flag) => `--${flag}`), '--force']}`