diff --git a/test/fixtures/basic/pages/hydration/layout.vue b/test/fixtures/basic/pages/hydration/layout.vue
index a28776ab6e09..c86154573060 100644
--- a/test/fixtures/basic/pages/hydration/layout.vue
+++ b/test/fixtures/basic/pages/hydration/layout.vue
@@ -3,7 +3,7 @@ definePageMeta({
layout: 'custom-async'
})
-if (process.client && !useNuxtApp().isHydrating) {
+if (import.meta.client && !useNuxtApp().isHydrating) {
throw createError({
fatal: true,
message: '`useNuxtApp().isHydrating` is false by the time we run page setup'
diff --git a/test/fixtures/basic/pages/ignore/composables.vue b/test/fixtures/basic/pages/ignore/composables.vue
new file mode 100644
index 000000000000..f2366fd50f76
--- /dev/null
+++ b/test/fixtures/basic/pages/ignore/composables.vue
@@ -0,0 +1,9 @@
+
+
+
+
+ was import ignored: {{ wasImportIgnored }}
+
+
diff --git a/test/fixtures/basic/pages/index.vue b/test/fixtures/basic/pages/index.vue
index c44bc87b27e7..18f5dcf35549 100644
--- a/test/fixtures/basic/pages/index.vue
+++ b/test/fixtures/basic/pages/index.vue
@@ -26,6 +26,9 @@
islands
+
+ Immediate remove unmounted
+
Chunk error
@@ -44,6 +47,7 @@
+
Test
diff --git a/test/fixtures/basic/pages/json-payload.vue b/test/fixtures/basic/pages/json-payload.vue
index e11d5f080948..586db8fe3317 100644
--- a/test/fixtures/basic/pages/json-payload.vue
+++ b/test/fixtures/basic/pages/json-payload.vue
@@ -1,8 +1,9 @@
diff --git a/test/fixtures/basic/pages/middleware-abort.vue b/test/fixtures/basic/pages/middleware-abort.vue
index bb97403eb6c5..b374cc3813d9 100644
--- a/test/fixtures/basic/pages/middleware-abort.vue
+++ b/test/fixtures/basic/pages/middleware-abort.vue
@@ -1,7 +1,7 @@
diff --git a/test/fixtures/basic/pages/route-rules/inline.vue b/test/fixtures/basic/pages/route-rules/inline.vue
new file mode 100644
index 000000000000..e681b0f98b60
--- /dev/null
+++ b/test/fixtures/basic/pages/route-rules/inline.vue
@@ -0,0 +1,13 @@
+
+
+
+
+ Route rules defined inline
+
+
diff --git a/test/fixtures/basic/pages/server-components/lazy/end.vue b/test/fixtures/basic/pages/server-components/lazy/end.vue
new file mode 100644
index 000000000000..7009c1e7acab
--- /dev/null
+++ b/test/fixtures/basic/pages/server-components/lazy/end.vue
@@ -0,0 +1,26 @@
+
+
+
+
+ End page
+
{{ mountedHTML }}
+
+
+
+ Loading server component
+
+
+
+
+
+
diff --git a/test/fixtures/basic/pages/server-components/lazy/start.vue b/test/fixtures/basic/pages/server-components/lazy/start.vue
new file mode 100644
index 000000000000..a14cf6eada33
--- /dev/null
+++ b/test/fixtures/basic/pages/server-components/lazy/start.vue
@@ -0,0 +1,10 @@
+
+
+
+ Go to page with lazy server component
+
+
+ Go to page without lazy server component
+
+
+
diff --git a/test/fixtures/basic/pages/suspense/async-[parent]/sync-[child].vue b/test/fixtures/basic/pages/suspense/async-[parent]/sync-[child].vue
index 6597891c2d5c..8a1a9e19cce1 100644
--- a/test/fixtures/basic/pages/suspense/async-[parent]/sync-[child].vue
+++ b/test/fixtures/basic/pages/suspense/async-[parent]/sync-[child].vue
@@ -1,5 +1,5 @@
diff --git a/test/fixtures/basic/pages/suspense/sync-[parent].vue b/test/fixtures/basic/pages/suspense/sync-[parent].vue
index 789d5f996434..469ed00aa16a 100644
--- a/test/fixtures/basic/pages/suspense/sync-[parent].vue
+++ b/test/fixtures/basic/pages/suspense/sync-[parent].vue
@@ -1,5 +1,5 @@
diff --git a/test/fixtures/basic/pages/suspense/sync-[parent]/async-[child].vue b/test/fixtures/basic/pages/suspense/sync-[parent]/async-[child].vue
index 59be7ae2e402..c0173f45715c 100644
--- a/test/fixtures/basic/pages/suspense/sync-[parent]/async-[child].vue
+++ b/test/fixtures/basic/pages/suspense/sync-[parent]/async-[child].vue
@@ -1,8 +1,8 @@
diff --git a/test/fixtures/basic/pages/suspense/sync-[parent]/sync-[child].vue b/test/fixtures/basic/pages/suspense/sync-[parent]/sync-[child].vue
index 01b99c0189e6..f4a3de478a12 100644
--- a/test/fixtures/basic/pages/suspense/sync-[parent]/sync-[child].vue
+++ b/test/fixtures/basic/pages/suspense/sync-[parent]/sync-[child].vue
@@ -1,5 +1,5 @@
diff --git a/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue b/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue
new file mode 100644
index 000000000000..eded79b477c9
--- /dev/null
+++ b/test/fixtures/basic/pages/useAsyncData/immediate-remove-unmounted.vue
@@ -0,0 +1,22 @@
+
+
+
immediate-remove-unmounted.vue
+
+ {{ data === null ? "null" : data }}
+
+
+
+ index
+
+
+
+
+
diff --git a/test/fixtures/basic/pages/useAsyncData/immediate.vue b/test/fixtures/basic/pages/useAsyncData/immediate.vue
index edfa94a40b3c..892229e71112 100644
--- a/test/fixtures/basic/pages/useAsyncData/immediate.vue
+++ b/test/fixtures/basic/pages/useAsyncData/immediate.vue
@@ -15,18 +15,18 @@ if (called.value !== 0) {
throw new Error('Handled should have not been called')
}
-if (process.server && data.value !== null) {
+if (import.meta.server && data.value !== null) {
throw new Error('Initial data should be null: ' + data.value)
}
await execute()
await execute()
-if (process.server && called.value as number !== 2) {
+if (import.meta.server && called.value as number !== 2) {
throw new Error('Should have been called once after execute (server) but called ' + called.value + ' times')
}
-if (process.client && called.value as number !== 2) {
+if (import.meta.client && called.value as number !== 2) {
throw new Error('Should have been called once after execute (client) but called ' + called.value + ' times')
}
diff --git a/test/fixtures/basic/pages/useAsyncData/override.vue b/test/fixtures/basic/pages/useAsyncData/override.vue
index 891f0339c8c5..4741c300545e 100644
--- a/test/fixtures/basic/pages/useAsyncData/override.vue
+++ b/test/fixtures/basic/pages/useAsyncData/override.vue
@@ -8,7 +8,7 @@
diff --git a/test/fixtures/basic/pages/useAsyncData/status.vue b/test/fixtures/basic/pages/useAsyncData/status.vue
index e1ca04e4fc05..66ef81eafaab 100644
--- a/test/fixtures/basic/pages/useAsyncData/status.vue
+++ b/test/fixtures/basic/pages/useAsyncData/status.vue
@@ -21,7 +21,7 @@ if (status4.value !== 'success') {
}
const { status: status5 } = await useAsyncData(() => Promise.resolve(true), { server: false })
-if (process.server && status5.value !== 'idle') {
+if (import.meta.server && status5.value !== 'idle') {
throw new Error('status5 should be "idle" server side')
}
diff --git a/test/fixtures/basic/pages/with-layout2.vue b/test/fixtures/basic/pages/with-layout2.vue
index b256deb3caed..f2242300edba 100644
--- a/test/fixtures/basic/pages/with-layout2.vue
+++ b/test/fixtures/basic/pages/with-layout2.vue
@@ -1,4 +1,3 @@
-