\r\n\u003C/template>\r\n\u003Cscript setup lang=\"ts\">\u003C/script>\r\n```\r\n\r\nApp.vue\r\n```\r\n\u003Ctemplate>\r\n \u003Cdiv>Message: {{ getMessage(\"Hello World\") }}\u003C/div>\r\n\u003C/template>\r\n\u003Cscript setup lang=\"ts\">\r\nimport { getMessage } from \"@/service/message-service\";\r\n```\r\n\r\nApp.test.ts\r\n```\r\nimport { it, expect, vi } from \"vitest\";\r\nimport { mountSuspended } from \"@nuxt/test-utils/runtime\";\r\nimport App from \"../../layouts/default.vue\";\r\n\r\nvi.mock(\"@/service/message-service\", () => {\r\n return {\r\n getMessage: () => \"hello from mock!!\",\r\n };\r\n});\r\n\r\n\r\nit(\"nuxt unit testing\", async () => {\r\n const component = await mountSuspended(App, { route: \"/\" });\r\n expect(component.html()).toMatchInlineSnapshot(\r\n `\"\u003Cdiv>Message: hello Hello World\u003C/div>\"`\r\n );\r\n});\r\n\r\n```\r\n\r\nmessage-service.ts\r\n```\r\nexport function getMessage(message: string): string {\r\n console.log(\"FROM ACTUAL\");\r\n return `hell ${message}`;\r\n}\r\n```\r\n\n\n### Describe the bug\n\nI was expecting vitest vi.mock should be able to mock imports to provide custom/mock implementation, however it seems that vi.mock is not working in the context of nuxt test?\r\n\r\nIf so, how are we suppose to create unit tests and/or E2E using nuxt/test-utils package and be able to provide flexible mocking mechanism?\n\n### Additional context\n\n_No response_\n\n### Logs\n\n_No response_",[2867,2870,2873],{"name":2868,"color":2869},"bug","d73a4a",{"name":2871,"color":2872},"vitest-environment","b60205",{"name":2874,"color":2875},"pending triage","5D08F5",935,"nuxt","test-utils","open","How to mock custom imports while using mountSuspended to test","2024-09-09T02:17:10Z","https://github.com/nuxt/test-utils/issues/935",0.74800426,{"description":2885,"labels":2886,"number":2888,"owner":2877,"repository":2878,"state":2879,"title":2889,"updated_at":2890,"url":2891,"score":2892},"### Environment\r\n\r\n- Operating System: `Darwin`\r\n- Node Version: `v20.8.1`\r\n- Nuxt Version: `3.9.0`\r\n- CLI Version: `3.10.0`\r\n- Nitro Version: `2.8.1`\r\n- Package Manager: `yarn@1.22.19`\r\n- Builder: `-`\r\n- User Config: `devtools`, `modules`\r\n- Runtime Modules: `@nuxt/test-utils/module@3.9.0`\r\n- Build Modules: `-`\r\n\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/github-gee6qy?file=app.vue\r\n\r\n### Describe the bug\r\n\r\nOnce I expose a variable called `error` within the setup, the component fails to render. \r\nSince everything works within the dev server / build, I suspect this is something within `@nuxt/test-utils`\r\n\r\nAfter renaming the `error` variable to something else, the component can be mounted within the tests again.\r\n\r\n### Additional context\r\n\r\n_No response_\r\n\r\n### Logs\r\n\r\n```shell-script\r\nVitest caught 1 unhandled error during the test run.\r\nThis might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.\r\n\r\n⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Rejection ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯\r\nTypeError: 'set' on proxy: trap returned falsish for property 'error'\r\n ❯ clonedComponent.render node_modules/@nuxt/test-utils/dist/runtime-utils/index.mjs:128:44\r\n 126| renderContext[key] = passedProps[key];\r\n 127| }\r\n 128| return render.call(this, renderContext, ...args);\r\n | ^\r\n 129| } : void 0,\r\n 130| setup: setup ? (props2) => wrappedSetup(props2, setupContext) : void 0\r\n ❯ renderComponentRoot node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:868:16\r\n ❯ ReactiveEffect.componentUpdateFn node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:5922:46\r\n ❯ ReactiveEffect.run node_modules/@vue/reactivity/dist/reactivity.cjs.js:174:19\r\n ❯ instance.update node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6053:16\r\n ❯ setupRenderEffect node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:6063:5\r\n ❯ eval node_modules/@vue/runtime-core/dist/runtime-core.cjs.js:1613:9\r\n\r\nThis error originated in \"test/app.nuxt.test.ts\" test file. It doesn't mean the error was thrown inside the file itself, but while it was running.\r\nThe latest test that might've caused the error is \"Should mount\". It might mean one of the following:\r\n- The error was thrown, while Vitest was running this test.\r\n- This was the last recorded test before the error was thrown, if error originated after test finished its execution.\r\n⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯\r\n\r\n```\r\n```\r\n",[2887],{"name":2868,"color":2869},684,"mountSuspended fails: 'set' on proxy: trap returned falsish for property 'error'","2025-03-14T15:14:45Z","https://github.com/nuxt/test-utils/issues/684",0.7526402,{"description":2894,"labels":2895,"number":2903,"owner":2877,"repository":2904,"state":2879,"title":2905,"updated_at":2906,"url":2907,"score":2908},"### Reproduction\n\n````\n\u003Ctemplate>\n \u003CUChip text=\"test\" size=\"3xl\">\n \u003CUButton icon=\"i-lucide-mail\" color=\"neutral\" variant=\"subtle\" />\n \u003C/UChip>\n\u003C/template>\n````\n\n### Description\n\nHey,\n\nThanks for your great work.\n\nI have noticed this on a few elements in UI3, but especaily here padding just is not right. Yes of course you can change it, but i belive there needs to be some sane defaults across all elements.\n\nText in chip, and even a simple number is almost unreadable see screenshot below. Happy to open a pr or list all other elements where this seems to have happened (one that comes to mind is UAvatar https://github.com/nuxt/ui/issues/3558).\n\n\n\n### Additional context\n\nThis example is directly from the UI website",[2896,2897,2900],{"name":2868,"color":2869},{"name":2898,"color":2899},"v3","49DCB8",{"name":2901,"color":2902},"triage","ffffff",3633,"ui","Default padding on `UChip`","2025-03-20T09:21:01Z","https://github.com/nuxt/ui/issues/3633",0.76256794,{"description":2910,"labels":2911,"number":1320,"owner":2877,"repository":2878,"state":2913,"title":2914,"updated_at":2915,"url":2916,"score":2917},"### Environment\n\n------------------------------\n- Operating System: Linux\n- Node Version: v20.15.1\n- Nuxt Version: 3.15.2\n- CLI Version: 3.20.0\n- Nitro Version: 2.10.4\n- Package Manager: pnpm@8.7.4\n- Builder: -\n- User Config: compatibilityDate, devtools, modules\n- Runtime Modules: @nuxt/test-utils/module@3.15.4\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/~/github.com/romhml/nuxt-test-repro\n\n### Describe the bug\n\nHi! There seems to be an issue when using `mountSuspended` on a component with `defineOptions({ inheritAttrs: false })` where attributes bound using `v-bind=\"$attrs\"` are missing.\n\nFor instance with this component:\n\n``` vue\n\u003Ctemplate>\n \u003Cdiv>\n \u003Cbutton v-bind=\"$attrs\"> \u003Cslot /> \u003C/button>\n \u003C/div>\n\u003C/template>\n\n\u003Cscript setup lang=\"ts\">\ndefineOptions({ inheritAttrs: false })\n\u003C/script>\n```\n\nThe first test below using `mountSuspended` will fail because the attribute is missing, whereas the test using ` mount` from ` @vue/test-utils` works as expected.\n\n``` ts\nimport { test, expect } from 'vitest'\nimport { mount } from '@vue/test-utils'\nimport { mountSuspended } from '@nuxt/test-utils/runtime'\nimport ExampleComponent from '~/app/components/ExampleComponent.vue'\n\ntest('with mountSuspended', async () => {\n const wrapper = await mountSuspended(ExampleComponent, { attrs: { 'aria-label': 'Aria Label' } })\n expect(wrapper.find('[aria-label=\"Aria Label\"]').exists()).toBe(true)\n})\n\n\ntest('with mount', () => {\n const wrapper = mount(ExampleComponent, { attrs: { 'aria-label': 'Aria Label' } })\n expect(wrapper.find('[aria-label=\"Aria Label\"]').exists()).toBe(true)\n})\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n\n```",[2912],{"name":2874,"color":2875},"closed","`mountSuspended` fails to pass attributes when `inheritAttrs` is false","2025-02-01T13:02:07Z","https://github.com/nuxt/test-utils/issues/1092",0.46653086,{"description":2919,"labels":2920,"number":2924,"owner":2877,"repository":2904,"state":2913,"title":2925,"updated_at":2926,"url":2927,"score":2928},"### Environment\n\n- Operating System: Darwin\n- Node Version: v22.14.0\n- Nuxt Version: 3.16.0\n- CLI Version: 3.22.5\n- Nitro Version: 2.11.6\n- Package Manager: npm@10.9.2\n- Builder: -\n- User Config: devtools, modules, components, css, compatibilityDate\n- Runtime Modules: @nuxt/ui@3.0.0, @pinia/nuxt@0.10.1, compodium@0.1.0-beta.5\n- Build Modules: -\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.0.0\n\n### Reproduction\n\n```vue\n\u003Ctemplate>\n \u003Cdiv>\n \u003CUInputMenu :items=\"idList\" v-model=\"value\" />\n \u003C/div>\n\u003C/template>\n\n\u003Cscript lang=\"ts\" setup>\nconst value = ref(0)\nconst idList = ref([168, 170, 203])\n\u003C/script>\n```\n\n### Description\n\nIf adding array of numbers to InputMenu the menu isn't closing after choosing a number.\nOnly way to close it is double-clicking on the dropdown arrow.\nThe Console shows an error in useFilter.\n\n### Additional context\n\n\n\n\n\n### Logs\n\n```shell-script\nUncaught (in promise) TypeError: string.normalize is not a function\n at contains (useFilter.js?v=87101672:23:21)\n at InputMenu.vue:114:18\n at wrappedFn (reactivity.esm-bundler.js?v=87101672:820:19)\n at Array.filter (\u003Canonymous>)\n at apply (reactivity.esm-bundler.js?v=87101672:828:27)\n at Proxy.filter (reactivity.esm-bundler.js?v=87101672:720:12)\n at InputMenu.vue:112:50\n at Array.map (\u003Canonymous>)\n at ComputedRefImpl.fn (InputMenu.vue:112:27)\n at refreshComputed (reactivity.esm-bundler.js?v=87101672:353:29)\n```",[2921,2922,2923],{"name":2868,"color":2869},{"name":2898,"color":2899},{"name":2901,"color":2902},3606,"Numbers in InputMenu component cause error in filter","2025-03-24T20:38:15Z","https://github.com/nuxt/ui/issues/3606",0.6992773,{"description":2930,"labels":2931,"number":2932,"owner":2877,"repository":2933,"state":2913,"title":2934,"updated_at":2935,"url":2936,"score":2937},"The sticky position of Table of Contents isn't functioning on mobil. I think it's because of the `div` from `$slots.right` of `UPage`.\r\n\r\n\r\n\u003Cimg width=\"958\" alt=\"Screenshot 2023-11-07 at 12 08 42 AM\" src=\"https://github.com/nuxt/nuxt.com/assets/38922203/704ca39b-c8e2-4915-840f-21dfcf493c1d\">\r\n",[],1412,"nuxt.com","docs: TOC sticky position is not working on mobile","2023-11-22T14:28:54Z","https://github.com/nuxt/nuxt.com/issues/1412",0.7108295,{"description":2939,"labels":2940,"number":2947,"owner":2877,"repository":2904,"state":2913,"title":2948,"updated_at":2949,"url":2950,"score":2951},"### Environment\n\n- Operating System: `Windows_NT`\n- Node Version: `v20.17.0`\n- Nuxt Version: `3.16.1`\n- CLI Version: `3.23.1`\n- Nitro Version: `2.11.7`\n- Package Manager: `npm@10.8.2`\n- Builder: `-`\n- User Config: `compatibilityDate`, `future`, `devtools`, `runtimeConfig`, `pinia`, `imports`, `experimental`, `modules`, `css`, `fileStorage`\n- Runtime Modules: `nuxt-file-storage@0.3.0`, `@nuxt/ui@3.0.1`, `@vueuse/nuxt@12.8.2`, `@pinia/nuxt@0.10.1`, `@nuxt/image@1.10.0`\n- Build Modules: `-`\n\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\n3.16.1\n\n### Reproduction\n\n```\n\u003Cscript lang=\"ts\" setup>\nconst query=ref('')\nconst value=ref()\nconst itemssearchlist=ref([\n { label: 'All', value: 'all' },\n { label: 'Archived', value: 'archived' },\n { label: 'Locked', value: 'locked' },\n { label: 'Active', value: 'active' }\n])\n\nfunction clear() {\n query.value='';\nvalue.value=null\n}\n\n\n\u003C/script>\n\n\u003Ctemplate>\n\u003Cdiv>\n \u003CUInputMenu \n v-model:searchTerm='query'\n label-key=\"name\"\n v-model=\"value\"\n :items=\"itemssearchlist\"\n @update:model-value=\"clear\"\n />\n \u003CUButton @click=\"clear\" >clear\u003C/UButton>\n\u003C/div>\n\u003C/template>\n\n```\n\n### Description\n\nAs shown above, the clear function only works when the button is clicked however does not work on @update:model-value. To be more specific... a console.log of value and query on the first instance returns the value and null respectively and on subsequent instances returns the value and the query. Trying to update these always fails as the values remain the same\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\nNo Logs\n```",[2941,2942,2945,2946],{"name":2868,"color":2869},{"name":2943,"color":2944},"needs reproduction","CB47CF",{"name":2898,"color":2899},{"name":2901,"color":2902},3686,"InputMenu search-Term and model-value does not update programmatically","2025-03-30T14:21:45Z","https://github.com/nuxt/ui/issues/3686",0.71195227,{"description":2953,"labels":2954,"number":2955,"owner":2877,"repository":2956,"state":2913,"title":2957,"updated_at":2958,"url":2959,"score":2960},"Hello,\nadding your package to the a repository for deploying breaks the Rollup build step.\n\n## Minimal reproducible example\n```\nnode --version\nv20.17.0\npnpm --version\n9.11.0\n```\n- `pnpm create cloudflare@latest my-nuxt-app --framework=nuxt`\n- `cd my-nuxt-app`\n- `pnpx nuxi module add icon` (taken from your doc)\n- `pnpm build`\nI get the following error:\n\n```\n[nitro 23:41:30] ERROR RollupError: .nuxt/dist/server/_nuxt/prompt-DuW0Lom1.js (1:9): \"stdin\" is not exported by \"node_modules/.pnpm/unenv@1.10.0/node_modules/unenv/runtime/node/process/index.mjs\", imported by \".nuxt/dist/server/_nuxt/prompt-DuW0Lom1.js\".\n\n\n1: import { stdin, stdout } from \"node:process\";\n ^\n2: import f from \"node:readline\";\n3: import { WriteStream } from \"node:tty\";\n\n\n[23:41:30] ERROR .nuxt/dist/server/_nuxt/prompt-DuW0Lom1.js (1:9): \"stdin\" is not exported by \"node_modules/.pnpm/unenv@1.10.0/node_modules/unenv/runtime/node/process/index.mjs\", imported by \".nuxt/dist/server/_nuxt/prompt-DuW0Lom1.js\".\n```\n\nThanks.",[],274,"icon","Rollup issue - Adding the package breaks the build step","2024-10-28T13:36:54Z","https://github.com/nuxt/icon/issues/274",0.72213435,{"description":2962,"labels":2963,"number":2967,"owner":2877,"repository":2956,"state":2913,"title":2968,"updated_at":2969,"url":2970,"score":2971},"## Description\r\n\r\niconify's `getIcon` uses `validateIconName` which enforce some validation for an icon's name. \r\n\r\nOne validation is that a name must be split with `-` which is often not the case with users custom icons\r\n\r\n\r\n## Reproduction \r\n\r\n\r\nhttps://stackblitz.com/edit/nuxt-starter-qlykyd?file=icons%2FEuro.svg,nuxt.config.ts,app.vue\r\n\r\nin this reproduction, we can't see `my-icons:Euro` because Euro is in PascalCase\r\n\r\n## Solution \r\n\r\nEither a documentation fix about naming convention or fix it in iconify or we could also merge prefix with the name ? ",[2964],{"name":2965,"color":2966},"upstream","B4199A",265,"Custom icons must be in kebab case","2024-12-10T07:10:48Z","https://github.com/nuxt/icon/issues/265",0.72873986,{"description":2973,"labels":2974,"number":2980,"owner":2877,"repository":2904,"state":2913,"title":2981,"updated_at":2982,"url":2983,"score":2984},"### Environment\n\n- Operating System: `Darwin`\n- Node Version: `v20.12.2`\n- Nuxt Version: `3.14.159`\n- CLI Version: `3.15.0`\n- Nitro Version: `2.10.4`\n- Package Manager: `bun@1.1.33`\n- Builder: `-`\n- User Config: `default`\n- Runtime Modules: `@nuxt/ui@3.0.0-alpha.8`, `@nuxt/eslint@0.6.1`, `@vueuse/nuxt@11.2.0`\n- Build Modules: `-`\n\n\n### Is this bug related to Nuxt or Vue?\n\nNuxt\n\n### Version\n\nv3.0.0-alpha.8\n\n### Reproduction\n\nPlace SelectMenu with search in Modal then try to access search input\n\n### Description\n\nSelectMenu search not working from modal\nIt's working if :portal=\"false\", but style broken\n\n### Additional context\n\n\n\n\n### Logs\n\n```shell-script\n\n```",[2975,2976,2977],{"name":2868,"color":2869},{"name":2898,"color":2899},{"name":2978,"color":2979},"reka-ui","56d799",2657,"SelectMenu search not clickable from modal","2025-02-13T18:27:29Z","https://github.com/nuxt/ui/issues/2657",0.741584,["Reactive",2986],{},["Set"],["ShallowReactive",2989],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$f8UPKvIVleXAmDo3NRKiUeEsCAl9kwTuKleeFFe3XIig":-1},"/nuxt/nuxt.com/1092"]