Quellcode durchsuchen

[github] code spaces: add extra-split-tests.json (#33015)

* [github] code spaces: add extra-split-tests.json

* [github] address review feedback

* [github] add missing bind mount

* [monorepo] mount split test configs with :ro

* [monorepo] only mount backup/split-tests into web

GitOrigin-RevId: 6334a44599a2c8bb79bf1ad698e656c8bee3992b
Jakob Ackermann vor 3 Monaten
Ursprung
Commit
f3ec774e6b

+ 17 - 1
services/web/scripts/devcontainer_setup.mjs

@@ -11,6 +11,13 @@ import {
 } from './e2e_test_setup.mjs'
 import { Project } from '../app/src/models/Project.mjs'
 import OError from '@overleaf/o-error'
+import fs from 'node:fs'
+import Path from 'node:path'
+import { fileURLToPath } from 'node:url'
+
+const MONOREPO = Path.dirname(
+  Path.dirname(Path.dirname(Path.dirname(fileURLToPath(import.meta.url))))
+)
 
 const { email: USER_EMAIL, password: PASSWORD } = minimist(
   process.argv.slice(2),
@@ -146,8 +153,17 @@ async function main() {
   if (process.env.NODE_ENV !== 'development') {
     throw new Error('only available in dev-env')
   }
+  const extraSplitTests = JSON.parse(
+    await fs.promises.readFile(
+      Path.join(MONOREPO, '.devcontainer/extra-split-tests.json'),
+      'utf-8'
+    )
+  )
   await waitForDb()
-  await Promise.all([provisionUsers(), provisionSplitTests(true)])
+  await Promise.all([
+    provisionUsers(),
+    provisionSplitTests(true, extraSplitTests),
+  ])
 }
 
 if (import.meta.main) {

+ 6 - 2
services/web/scripts/e2e_test_setup.mjs

@@ -139,7 +139,7 @@ async function purgeNewUsers() {
   )
 }
 
-export async function provisionSplitTests(merge = false) {
+export async function provisionSplitTests(merge = false, extraSplitTests = []) {
   const backup = Path.join(
     MONOREPO,
     'backup',
@@ -159,7 +159,8 @@ export async function provisionSplitTests(merge = false) {
   // Imported from production via https://www.overleaf.com/admin/split-test -> "Copy all split tests" -> "Copy for E2E test setup"
   const SPLIT_TESTS = JSON.parse(
     await fs.promises.readFile(
-      Path.join(MONOREPO, 'tools/saas-e2e/split-tests.json')
+      Path.join(MONOREPO, 'tools/saas-e2e/split-tests.json'),
+      'utf-8'
     )
   )
   // Add WIP split test, we can update the JSON blob once this is in production
@@ -188,6 +189,9 @@ export async function provisionSplitTests(merge = false) {
   } else {
     await SplitTestManager.replaceSplitTests(SPLIT_TESTS)
   }
+  if (extraSplitTests.length > 0) {
+    await SplitTestManager.mergeSplitTests(extraSplitTests, false)
+  }
 }
 
 async function checkNoTableScan() {