\n \u003C/template>\n \u003Cv-list v-model:selected=\"selected\" selectable density=\"default\" max-height=\"40vh\" select-strategy=\"leaf\">\n \u003Ctemplate v-for=\"item in items\" :key=\"item.title\">\n \u003Cv-list-item>\n {{ item.title }}\n \u003C/v-list-item>\n \u003C/template>\n \u003C/v-list>\n \u003C/v-menu>\n\u003C/template>\n\n\u003Cscript lang=\"ts\">\nimport { defineComponent, reactive, ref } from 'vue'\n\nexport default defineComponent({\n name: 'AppTestComponent',\n setup() {\n const selected = ref([])\n const menuShow = ref(false)\n return {\n menuShow,\n selected,\n }\n },\n computed: {\n items() {\n return [\n {\n title: 'My Title',\n },\n ]\n },\n },\n})\n\u003C/script>\n```\n\ntest\n\n```typescript\n\nimport { describe, expect, test } from 'vitest'\nimport { mountSuspended } from '@nuxt/test-utils/runtime'\nimport AppTestComponent from '~/components/AppTestComponent.vue'\nimport { mount } from '@vue/test-utils'\nimport { VList } from 'vuetify/components/VList'\n\ndescribe('AppTestComponent', () => {\n test('renders', async () => {\n const component = mount(AppTestComponent)\n\n await component.find('button').trigger('click')\n const listContent = component.findComponent(VList).html()\n expect(listContent).toContain('My Title')\n })\n test('will fail', async () => {\n const component = await mountSuspended(AppTestComponent)\n\n await component.find('button').trigger('click')\n const listContent = component.findComponent(VList).html()\n expect(listContent).toContain('My Title')\n })\n})\n\n```\n\n\n### Describe the bug\n\n\nWhen testing Vuetify components with `mountSuspended` from `@nuxt/test-utils/runtime`, I discovered that ref values are not properly unwrapped before being passed to components.\n\nSpecifically, when mounting Vuetify's `VMenu` or `VList` components, props like `modelValue` (for VMenu) or `selected` (for VList) receive the actual ref object instead of the ref's value. This behavior differs from Vue Test Utils' standard `mount` function, which correctly unwraps ref values.\n\n## Reproduction Steps\n\nThe issue occurs when:\n1. Using `mountSuspended` from `@nuxt/test-utils/runtime`\n2. Testing components created with `defineComponent()`\n3. Passing refs as props to Vuetify components from `setup()`\n\nInterestingly, components using `\u003Cscript setup>` syntax work correctly.\n\n## Error Details\n\nThe error occurs in Vuetify's internal code when it tries to iterate over what it expects to be an array value but receives a ref object instead:\n\n```\nTypeError: (v || []) is not iterable\n ❯ Object.in node_modules/vuetify/src/composables/nested/selectStrategies.ts:56:25\n ❯ transformIn node_modules/vuetify/src/composables/nested/nested.ts:184:33\n ❯ ComputedRefImpl.get [as fn] node_modules/vuetify/src/composables/proxiedModel.ts:53:14\n ❯ refreshComputed node_modules/@vue/reactivity/dist/reactivity.cjs.js:384:28\n ❯ ComputedRefImpl.value node_modules/@vue/reactivity/dist/reactivity.cjs.js:1625:5\n ❯ ComputedRefImpl.fn node_modules/vuetify/src/composables/nested/nested.ts:356:53\n ❯ refreshComputed node_modules/@vue/reactivity/dist/reactivity.cjs.js:384:28\n ❯ ComputedRefImpl.value node_modules/@vue/reactivity/dist/reactivity.cjs.js:1625:5\n ❯ ComputedRefImpl.fn node_modules/vuetify/src/components/VList/VListItem.tsx:141:105\n ❯ refreshComputed node_modules/@vue/reactivity/dist/reactivity.cjs.js:384:28\n```\n\n## Investigation Findings\n\nWhen debugging the Vuetify components by placing breakpoints in their setup functions, I observed that:\n- With `@vue/test-utils` mount: Props contain the actual values of refs\n- With `@nuxt/test-utils` mountSuspended: Props contain the ref objects themselves\n\nI suspect this is related to how `mountSuspended` handles the return value of `setup()` when using `defineComponent()`, failing to properly unwrap reactive references before passing them as props.\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[3018],{"name":3019,"color":3020},"pending triage","5D08F5",1199,"nuxt","test-utils","open","Component props are passed as ref instead of refs value when using defineComponent()","2025-03-20T22:07:30Z","https://github.com/nuxt/test-utils/issues/1199",0.7214965,{"description":3030,"labels":3031,"number":3035,"owner":3022,"repository":3036,"state":3024,"title":3037,"updated_at":3038,"url":3039,"score":3040},"### 🐛 The bug\n\nWhen running or building a Nuxt project that uses the Nuxt Scripts module, the build fails with a `400 Bad Request` error originating from a request to `https://www.googletagmanager.com/gtm.js`.\n\n### 🛠️ To reproduce\n\nhttps://stackblitz.com/edit/nuxt-starter-qsvb2xmv?file=nuxt.config.ts\n\n### 🌈 Expected behavior\n\nThe build should succeed without errors, even when GTM is integrated. \n\n### ℹ️ Additional context\n\n**System**\n- Operating System: `Darwin`\n- Node Version: `v23.10.0`\n- Nuxt Version: `3.16.1`\n- CLI Version: `3.23.1`\n- Nitro Version: `2.11.8`\n- Package Manager: `bun@1.2.7`\n- Builder: `-`\n- User Config: `modules`, `$development`, `$production`, `ssr`, `components`, `devtools`, `app`, `css`, `router`, `site`, `colorMode`, `runtimeConfig`, `ignore`, `routeRules`, `future`, `compatibilityDate`, `typescript`, `eslint`, `fonts`, `i18n`, `icon`, `image`, `robots`, `schemaOrg`, `scripts`, `security`, `sitemap`, `viewport`\n- Runtime Modules: `@nuxt/scripts@0.11.5`, `@nuxt/eslint@1.3.0`, `@nuxt/image@1.10.0`, `@nuxt/icon@1.11.0`, `@nuxt/fonts@0.11.0`, `@nuxtjs/color-mode@3.5.2`, `@nuxtjs/i18n@9.4.0`, `@nuxtjs/seo@3.0.1`, `@nuxtjs/tailwindcss@6.13.2`, `@vueuse/nuxt@13.0.0`, `nuxt-security@2.2.0`, `nuxt-viewport@2.2.0`\n- Build Modules: `-`\n\n**Logs**:\n```\njonathan@MacBook-Pro-von-Jonathan Application-Website-Frontend % nr build\n$ nuxt build\nNuxt 3.16.1 with Nitro 2.11.8 nuxi 16:38:06\nℹ Using Tailwind CSS from ~/assets/css/tailwind.css nuxt:tailwindcss 16:38:07\nℹ Nuxt Icon server bundle mode is set to local 16:38:07\n✔ Nuxt Icon discovered local-installed 4 collections: fa6-brands, fa6-solid, logos, simple-icons 16:38:08\n✔ Nuxt Icon loaded local collection simple-icons-extended with 3 icons 16:38:08\n✔ Nuxt Icon loaded local collection sf-symbols-small with 6404 icons 16:38:09\n✔ Nuxt Icon loaded local collection sf-symbols-medium with 6404 icons 16:38:09\n✔ Nuxt Icon loaded local collection sf-symbols-large with 6404 icons 16:38:09\nℹ Running with compatibility version 4 nuxt 16:38:09\nℹ Building for Nitro preset: node-server nuxi 16:38:09\nℹ Building client... 16:38:10\nℹ vite v6.2.4 building for production... 16:38:10\nℹ ✓ 685 modules transformed. 16:38:14\n\n ERROR ✗ Build failed in 6.08s 16:38:16\n\n\n ERROR Nuxt Build Error: [nuxt:scripts:bundler-transformer] [GET] \"https://www.googletagmanager.com/gtm.js\": 400 Bad Request nuxi 16:38:16\nfile: virtual:nuxt:%2FUsers%2Fjonathan%2FDeveloper%2FGit%2FGitHub%2FApplication-Website-Frontend%2Fnode_modules%2F.cache%2Fnuxt%2F.nuxt%2Fmodules%2F%40nuxt-scripts%2Fplugin.mjs\n\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)\n at async downloadScript (node_modules/@nuxt/scripts/dist/module.mjs:186:11)\n at async Object.enter (node_modules/@nuxt/scripts/dist/module.mjs:325:23)\n at async AsyncWalker.visit (node_modules/estree-walker/src/async.js:65:5)\n at async AsyncWalker.visit (node_modules/estree-walker/src/async.js:107:7)\n at async AsyncWalker.visit (node_modules/estree-walker/src/async.js:100:15)\n at async AsyncWalker.visit (node_modules/estree-walker/src/async.js:100:15)\n at async AsyncWalker.visit (node_modules/estree-walker/src/async.js:107:7)\n at async AsyncWalker.visit (node_modules/estree-walker/src/async.js:107:7)\n at async AsyncWalker.visit (node_modules/estree-walker/src/async.js:100:15)\n\nerror: script \"build\" exited with code 1\njonathan@MacBook-Pro-von-Jonathan Application-Website-Frontend % \n```",[3032],{"name":3033,"color":3034},"bug","d73a4a",441,"scripts","Google Tag Manager 400 Error","2025-04-16T09:01:41Z","https://github.com/nuxt/scripts/issues/441",0.7369791,{"description":3042,"labels":3043,"number":3044,"owner":3022,"repository":3045,"state":3024,"title":3046,"updated_at":3047,"url":3048,"score":3049},"Currently, when using the customCollections configuration in Nuxt/icon module, it only searches for icons in the specified directory but does not look into nested subdirectories.\nFor example, if I set:\n\n```js\n// nuxt.config.js\nexport default defineNuxtConfig({\n modules: ['nuxt-icon'],\n icon: {\n customCollections: {\n 'my-collection': '/path/to/icons'\n }\n }\n})\n```\n\n\n\nThe module will only find icons directly inside /path/to/icons but not in /path/to/icons/subfolder/.\n\n\u003Cimg width=\"190\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/d5646712-2df5-4dc3-a474-48f8f3cf4669\" />\n\n\u003Cimg width=\"422\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/10035094-1291-49d4-969a-c04e8a428e79\" />\n\nRequested Feature\nI would like the module to support recursive searching in customCollections directories, allowing it to find icons in all nested subdirectories like wor\n\nSteps to Reproduce\nhttps://stackblitz.com/edit/github-monhzc",[],374,"icon","Feature Request: Recursive search in customCollections directories","2025-03-19T11:15:14Z","https://github.com/nuxt/icon/issues/374",0.74126124,{"description":3051,"labels":3052,"number":3055,"owner":3022,"repository":3056,"state":3057,"title":3058,"updated_at":3059,"url":3060,"score":3061},"1. From the main empty branch (without file), create a new file \n2. Commit this file on a new branch\n3. Come back to main empty branch\n \n\n",[3053],{"name":3033,"color":3054},"ff281a",565,"nuxt.com","closed","Error occurs when jumping to an empty branch (without files)","2023-02-15T12:31:30Z","https://github.com/nuxt/nuxt.com/issues/565",0.71361774,{"description":3063,"labels":3064,"number":3055,"owner":3022,"repository":3023,"state":3057,"title":3071,"updated_at":3072,"url":3073,"score":3061},"I want to setup test environment without rendering my index page, please add config option for setting globally default route, for example '/test' instead of '/' or option to mock `app.vue` component.\r\n\r\nSo far I figured out workaround, in `nuxt.config.ts` I am doing mocking of index page manually with hooks\r\n\r\n```\r\nhooks: {\r\n 'pages:extend'(pages: NuxtPage[]) {\r\n if (String(process.env?.TEST) === 'true') {\r\n const indexPage = pages.find((page) => page.name === 'index')\r\n const testPage = pages.find((page) => page.name === 'test')\r\n if (indexPage != null && testPage != null) {\r\n indexPage.file = testPage.file\r\n }\r\n }\r\n },\r\n },\r\n```\r\n\r\nNote this hook is not working when placed in `vitest.config.ts` overrides because function is not serializable.",[3065,3068],{"name":3066,"color":3067},"enhancement","a2eeef",{"name":3069,"color":3070},"vitest-environment","b60205","Add option to set default route or mock app.vue","2023-12-05T14:35:36Z","https://github.com/nuxt/test-utils/issues/565",{"description":3075,"labels":3076,"number":3078,"owner":3022,"repository":3056,"state":3057,"title":3079,"updated_at":3080,"url":3081,"score":3082},"",[3077],{"name":3033,"color":3054},423,"Refresh files after branch create","2023-02-15T12:31:27Z","https://github.com/nuxt/nuxt.com/issues/423",0.7284102,{"description":3075,"labels":3084,"number":3035,"owner":3022,"repository":3056,"state":3057,"title":3086,"updated_at":3087,"url":3088,"score":3040},[3085],{"name":3033,"color":3054},"[Live collab] If another user commit the draft on another branch, my draft still remains","2022-05-03T14:27:49Z","https://github.com/nuxt/nuxt.com/issues/441",{"description":3075,"labels":3090,"number":3035,"owner":3022,"repository":3023,"state":3057,"title":3091,"updated_at":3092,"url":3093,"score":3040},[],"detect nuxt.config.ts","2023-12-02T00:13:11Z","https://github.com/nuxt/test-utils/issues/441",{"description":3095,"labels":3096,"number":3044,"owner":3022,"repository":3056,"state":3057,"title":3097,"updated_at":3098,"url":3099,"score":3049},"- [x] Create file\n- [x] Delete file\n- [x] Revert file\n- [x] Rename file\n\n",[],"Update draft when collaborator updates it","2023-02-15T12:31:26Z","https://github.com/nuxt/nuxt.com/issues/374",{"description":3101,"labels":3102,"number":3107,"owner":3022,"repository":3108,"state":3057,"title":3109,"updated_at":3110,"url":3111,"score":3112},"### Description\n\nIt would be nice to have a prop to set the `getRowId` method of `@tanstack/vue-table` to be able to maintain selection between pages.\nReference: https://tanstack.com/table/latest/docs/guide/row-selection#useful-row-ids\n\nAt the moment I bypassed this missing feature by adding the method inside one of the available options:\n\n```vue\n\u003CUTable :data :paginationOptions=\"{ manualPagination: true, rowCount: data?.totalItems, getRowId: (row: MyRowType) => row.id }\" />\n```\nbut it is not optimal as typescript is complaining about the types.\n\nI would suggest something like\n```vue\n\u003CUTable :data idKey=\"id\" :paginationOptions=\"{ manualPagination: true, rowCount: data?.totalItems }\" />\n```\n\nwhere `idKey` is a `keyof T` or it can be the entire `getRowId` method imported from TanStack.\n\nI can open a PR about this if it's fine :)\n\n### Additional context\n\n_No response_",[3103,3104],{"name":3066,"color":3067},{"name":3105,"color":3106},"v3","49DCB8",3255,"ui","Unique row ID for `UTable` component","2025-02-15T17:44:03Z","https://github.com/nuxt/ui/issues/3255",0.75063974,["Reactive",3114],{},["Set"],["ShallowReactive",3117],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fuQbFazaD_uP0InsREpuouRG2p8sL71fxJE4W1PG3bT8":-1},"/nuxt/nuxt.com/197"]