Explorar el Código

refactor(build): introduce e2e test flag

daiwei hace 1 mes
padre
commit
420a504ec8

+ 2 - 2
package.json

@@ -18,9 +18,9 @@
     "format-check": "oxfmt --check",
     "test": "vitest",
     "test-unit": "vitest --project unit*",
-    "test-e2e": "node scripts/build.js vue -f global+esm-browser-vapor -d && vitest --project e2e",
+    "test-e2e": "node scripts/build.js -e vue -f global+esm-browser-vapor -d && vitest --project e2e",
     "test-e2e-vapor": "pnpm run prepare-e2e-vapor && vitest --project e2e-vapor",
-    "prepare-e2e-vapor": "__TEST__=true node scripts/build.js -f cjs+esm-bundler+esm-bundler-runtime && pnpm run -C packages-private/vapor-e2e-test build",
+    "prepare-e2e-vapor": "node scripts/build.js -e -f cjs+esm-bundler+esm-bundler-runtime && pnpm run -C packages-private/vapor-e2e-test build",
     "test-dts": "run-s build-dts test-dts-only",
     "test-dts-only": "tsc -p packages-private/dts-built-test/tsconfig.json && tsc -p ./packages-private/dts-test/tsconfig.test.json && tsc -p ./packages-private/dts-test/vapor/tsconfig.json",
     "test-coverage": "vitest --ui --project unit* --coverage.enabled=true",

+ 1 - 0
packages-private/local-playground/setup/dev.js

@@ -40,6 +40,7 @@ export function DevPlugin({ browser = false } = {}) {
           __DEV__: `true`,
           // this is only used during Vue's internal tests
           __TEST__: `false`,
+          __E2E_TEST__: `false`,
           // If the build is expected to run directly in the browser (global / esm builds)
           __BROWSER__: String(browser),
           __GLOBAL__: String(false),

+ 1 - 0
packages/global.d.ts

@@ -1,6 +1,7 @@
 // Global compile-time constants
 declare var __DEV__: boolean
 declare var __TEST__: boolean
+declare var __E2E_TEST__: boolean
 declare var __BROWSER__: boolean
 declare var __GLOBAL__: boolean
 declare var __ESM_BUNDLER__: boolean

+ 1 - 1
packages/runtime-core/src/components/KeepAlive.ts

@@ -551,7 +551,7 @@ export function deactivate(
   }
 
   // for e2e test
-  if (__DEV__ && __BROWSER__) {
+  if (__E2E_TEST__) {
     ;(instance as any).__keepAliveStorageContainer = container
   }
 }

+ 1 - 1
packages/runtime-vapor/src/components/KeepAlive.ts

@@ -120,7 +120,7 @@ const VaporKeepAliveImpl = defineVaporComponent({
   setup(props: KeepAliveProps, { slots, expose }) {
     let exposed!: Record<string, any>
     // for e2e test
-    if (__BROWSER__ && __TEST__) {
+    if (__E2E_TEST__) {
       exposed = {
         getStorageContainer: () => storageContainer,
       }

+ 6 - 0
scripts/build.js

@@ -78,6 +78,10 @@ const { values, positionals: targets } = parseArgs({
     size: {
       type: 'boolean',
     },
+    e2eTest: {
+      type: 'boolean',
+      short: 'e',
+    },
   },
 })
 
@@ -90,6 +94,7 @@ const {
   sourceMap,
   release: isRelease,
   size,
+  e2eTest,
 } = values
 
 /**
@@ -206,6 +211,7 @@ function createConfigsForTarget(target) {
     target,
     commit,
     formats: resolvedFormats,
+    e2eTest,
     prodOnly,
     devOnly:
       (pkg.buildOptions && pkg.buildOptions.env === 'development') || devOnly,

+ 4 - 0
scripts/create-rolldown-config.js

@@ -28,6 +28,7 @@ const packagesDir = path.resolve(__dirname, '../packages')
  *   devOnly?: boolean
  *   prodOnly?: boolean
  *   sourceMap?: boolean
+ *   e2eTest?: boolean
  *   localDev?: boolean
  *   inlineDeps?: boolean
  * }} options
@@ -39,6 +40,7 @@ export function createConfigsForPackage({
   devOnly = false,
   prodOnly = false,
   sourceMap = false,
+  e2eTest = false,
   localDev = false,
   inlineDeps = false,
 }) {
@@ -189,6 +191,8 @@ export function createConfigsForPackage({
         __VERSION__: `"${masterVersion}"`,
         // this is only used during Vue's internal tests
         __TEST__: `false`,
+        // this is only used during Vue's internal e2e-tests
+        __E2E_TEST__: String(e2eTest),
         // If the build is expected to run directly in the browser (global / esm builds)
         __BROWSER__: String(isBrowserBuild),
         __GLOBAL__: String(isGlobalBuild),

+ 1 - 0
scripts/dev.js

@@ -155,6 +155,7 @@ for (const target of targets) {
         __VERSION__: `"${pkg.version}"`,
         __DEV__: prod ? `false` : `true`,
         __TEST__: `false`,
+        __E2E_TEST__: `false`,
         __BROWSER__: String(
           format !== 'cjs' && !pkg.buildOptions?.enableNonBrowserBranches,
         ),

+ 1 - 0
vitest.config.ts

@@ -5,6 +5,7 @@ export default defineConfig({
   define: {
     __DEV__: process.env.MODE !== 'benchmark',
     __TEST__: true,
+    __E2E_TEST__: false,
     __VERSION__: '"test"',
     __BROWSER__: false,
     __GLOBAL__: false,