\n \u003C/NuxtLink>\n \u003CNuxtLink v-slot=\"{ isActive }\" to=\"/movie\" :title=\"$t('Movies')\" data-testid=\"movies-link\">\n \u003Cdiv\n text-2xl\n :class=\"isActive ? 'i-ph-film-strip-fill text-primary' : 'i-ph-film-strip'\"\n />\n \u003C/NuxtLink>\n \u003CNuxtLink v-slot=\"{ isActive }\" to=\"/tv\" :title=\"$t('TV Shows')\" data-testid=\"tv-shows-link\">\n \u003Cdiv\n text-2xl\n :class=\"isActive ? 'i-ph-television-simple-fill text-primary' : 'i-ph-television-simple'\"\n />\n \u003C/NuxtLink>\n \u003CNuxtLink v-slot=\"{ isActive }\" to=\"/search\" :title=\"$t('Search')\" data-testid=\"search-link\">\n \u003Cdiv\n text-2xl\n :class=\"isActive ? 'i-ph-magnifying-glass-fill text-primary' : 'i-ph-magnifying-glass'\"\n />\n \u003C/NuxtLink>\n \u003C/div>\n\u003C/template>\n```\n\n`NavBar.nuxt.test.ts File`\n```\nimport type { VueWrapper } from '@vue/test-utils'\nimport { mountSuspended } from '@nuxt/test-utils/runtime'\nimport { describe, expect, it } from 'vitest'\n\nimport NavBar from './NavBar.vue'\n\ndescribe('navBar', () => {\n it('renders Home link correctly', async () => {\n const wrapper = await mountSuspended(NavBar)\n\n // test true to be true\n expect(true).toBe(true)\n })\n```\n\n### Describe the bug\n\nIm trying to to a simple component test and I think it's failing to mock NuxtLink with slots when it is destruturing the property isActive\n\n### Additional context\n\n_No response_\n\n### Logs\n\nhttps://github.com/Archetipo95/movies/actions/runs/12358331784/job/34488575188?pr=2",[2852],{"name":2853,"color":2854},"pending triage","5D08F5",1042,"nuxt","test-utils","open","TypeError: Cannot destructure property 'isActive' of 'undefined' as it is undefined - NuxtLink","2024-12-16T17:53:11Z","https://github.com/nuxt/test-utils/issues/1042",0.81315213,{"description":2864,"labels":2865,"number":2869,"owner":2856,"repository":2857,"state":2858,"title":2870,"updated_at":2871,"url":2872,"score":2873},"### 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",[2866],{"name":2867,"color":2868},"bug","d73a4a",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.8392617,{"description":2875,"labels":2876,"number":2877,"owner":2856,"repository":2878,"state":2879,"title":2880,"updated_at":2881,"url":2882,"score":2883},"- [x] Transfer project call API\n- [x] Transfer project Front\n- [x] Delete project call API\n- [x] Delete project Front",[],87,"nuxt.com","closed","Project settings `Advanced`","2023-02-15T12:30:36Z","https://github.com/nuxt/nuxt.com/issues/87",0.45549315,{"description":2885,"labels":2886,"number":2887,"owner":2856,"repository":2888,"state":2879,"title":2889,"updated_at":2890,"url":2891,"score":2892},"Details in this (closed) issue: https://github.com/nuxt-modules/icon/issues/62",[],86,"icon","error TS2339: Property 'aliases' does not exist on type '{}'","2024-05-31T15:16:29Z","https://github.com/nuxt/icon/issues/86",0.6302707,{"description":2894,"labels":2895,"number":2897,"owner":2856,"repository":2857,"state":2879,"title":2898,"updated_at":2899,"url":2900,"score":2901},"### Environment\n\n------------------------------\n- Operating System: Darwin\n- Node Version: v18.19.0\n- Nuxt Version: 3.12.4\n- CLI Version: 3.13.2\n- Nitro Version: 2.9.7\n- Package Manager: npm@10.2.3\n- Builder: -\n- User Config: compatibilityDate, devtools\n- Runtime Modules: -\n- Build Modules: -\n------------------------------\n\n### Reproduction\n\nhttps://stackblitz.com/~/github.com/inouetakuya/nuxt-test-utils-playground/pull/3\n\nGitHub: https://github.com/inouetakuya/nuxt-test-utils-playground/pull/3\n\n### Describe the bug\n\nHere is the page component using the Options API.\n\n```vue\n\u003Cscript lang=\"ts\"> \nexport default defineNuxtComponent({ \n name: 'OptionsApiPage', \n setup() { \n return { \n greetingInSetup: 'Hello, setup!', \n }; \n }, \n async asyncData() { \n return { \n greetingInAsyncData: 'Hello, asyncData!', \n }; \n }, \n data() { \n return { \n greetingInData: 'Hello, data!', \n }; \n }, \n computed: { \n greetingInComputed() { \n return 'Hello, computed property!'; \n }, \n }, \n}); \n\u003C/script> \n \n\u003Ctemplate> \n \u003Cp data-testid=\"greeting-in-setup\">greetingInSetup: {{ greetingInSetup }}\u003C/p> \n \u003Cp data-testid=\"greeting-in-async-data\"> \n greetingInAsyncData: {{ greetingInAsyncData }} \n \u003C/p> \n \u003Cp data-testid=\"greeting-in-data\">greetingInData: {{ greetingInData }}\u003C/p> \n \u003Cp data-testid=\"greeting-in-computed\"> \n greetingInComputed: {{ greetingInComputed }} \n \u003C/p> \n\u003C/template>\n```\n\nWhen testing this page component using the mountSuspended method, the data and computed properties of the Options API are not rendered. \n\nOn the other hand, if the same page component is tested with the mount method, both the Options API data and the computed properties are rendered.\n\n```ts\nimport { mountSuspended } from '@nuxt/test-utils/runtime'; \nimport { mount, flushPromises } from '@vue/test-utils'; \nimport OptionsApiPage from '~/pages/options-api.vue'; \n \ndescribe('OptionsApiPage', () => { \n let wrapper; \n \n describe('Using mountSuspended', () => { \n beforeEach(async () => { \n wrapper = await mountSuspended(OptionsApiPage, { \n route: '/options-api', \n }); \n }); \n \n it('should render greeting in setup', () => { \n expect(wrapper.find('[data-testid=\"greeting-in-setup\"]').text()).toBe( \n 'greetingInSetup: Hello, setup!', \n ); \n }); \n \n it('should render greeting in asyncData', () => { \n expect( \n wrapper.find('[data-testid=\"greeting-in-async-data\"]').text(), \n ).toBe('greetingInAsyncData: Hello, asyncData!'); \n }); \n \n it('should render greeting in data', () => { \n expect(wrapper.find('[data-testid=\"greeting-in-data\"]').text()).toBe( \n 'greetingInData: Hello, data!', \n ); \n }); \n \n it('should render greeting in computed', () => { \n expect(wrapper.find('[data-testid=\"greeting-in-computed\"]').text()).toBe( \n 'greetingInComputed: Hello, computed property!', \n ); \n }); \n }); \n \n describe('Using mount', () => { \n beforeEach(async () => { \n const component = defineComponent({ \n components: { OptionsApiPage }, \n template: '\u003CSuspense>\u003COptionsApiPage />\u003C/Suspense>', \n }); \n wrapper = mount(component); \n await flushPromises(); \n }); \n \n it('should render greeting in setup', () => { \n expect(wrapper.find('[data-testid=\"greeting-in-setup\"]').text()).toBe( \n 'greetingInSetup: Hello, setup!', \n ); \n }); \n \n it('should render greeting in asyncData', () => { \n expect( \n wrapper.find('[data-testid=\"greeting-in-async-data\"]').text(), \n ).toBe('greetingInAsyncData: Hello, asyncData!'); \n }); \n \n it('should render greeting in data', () => { \n expect(wrapper.find('[data-testid=\"greeting-in-data\"]').text()).toBe( \n 'greetingInData: Hello, data!', \n ); \n }); \n \n it('should render greeting in computed', () => { \n expect(wrapper.find('[data-testid=\"greeting-in-computed\"]').text()).toBe( \n 'greetingInComputed: Hello, computed property!', \n ); \n }); \n }); \n});\n```\n\n### Additional context\n\n_No response_\n\n### Logs\n\n```shell-script\n$ npm test\n\n> test\n> vitest run\n\n\n RUN v2.0.5 /Users/inouetakuya/src/github.com/inouetakuya/nuxt-test-utils-playground\n\nstdout | pages/script-setup.nuxt.spec.ts\n\u003CSuspense> is an experimental feature and its API will likely change.\n\nstdout | pages/options-api.nuxt.spec.ts\n\u003CSuspense> is an experimental feature and its API will likely change.\n\n ❯ pages/options-api.nuxt.spec.ts (8)\n ❯ OptionsApiPage (8)\n ❯ Using mountSuspended (4)\n ✓ should render greeting in setup\n ✓ should render greeting in asyncData\n × should render greeting in data\n × should render greeting in computed\n ✓ Using mount (4)\n ✓ pages/script-setup.nuxt.spec.ts (1)\n ✓ utils/example-util.spec.ts (1)\n\n⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Failed Tests 2 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯\n\n FAIL pages/options-api.nuxt.spec.ts > OptionsApiPage > Using mountSuspended > should render greeting in data\nAssertionError: expected 'greetingInData:' to be 'greetingInData: Hello, data!' // Object.is equality\n\nExpected: \"greetingInData: Hello, data!\"\nReceived: \"greetingInData:\"\n\n ❯ pages/options-api.nuxt.spec.ts:28:71\n 26|\n 27| it('should render greeting in data', () => {\n 28| expect(wrapper.find('[data-testid=\"greeting-in-data\"]').text()).toBe(\n | ^\n 29| 'greetingInData: Hello, data!',\n 30| );\n\n⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/2]⎯\n\n FAIL pages/options-api.nuxt.spec.ts > OptionsApiPage > Using mountSuspended > should render greeting in computed\nAssertionError: expected 'greetingInComputed:' to be 'greetingInComputed: Hello, computed p…' // Object.is equality\n\nExpected: \"greetingInComputed: Hello, computed property!\"\nReceived: \"greetingInComputed:\"\n\n ❯ pages/options-api.nuxt.spec.ts:34:75\n 32|\n 33| it('should render greeting in computed', () => {\n 34| expect(wrapper.find('[data-testid=\"greeting-in-computed\"]').text()).toBe(\n | ^\n 35| 'greetingInComputed: Hello, computed property!',\n 36| );\n\n⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/2]⎯\n\n Test Files 1 failed | 2 passed (3)\n Tests 2 failed | 8 passed (10)\n Start at 16:38:07\n Duration 740ms (transform 303ms, setup 513ms, collect 188ms, tests 41ms, environment 237ms, prepare 331ms)\n```\n",[2896],{"name":2853,"color":2854},961,"mountSuspended does not render Options API's data and computed properties","2024-10-08T13:30:47Z","https://github.com/nuxt/test-utils/issues/961",0.7762686,{"description":2903,"labels":2904,"number":2908,"owner":2856,"repository":2878,"state":2879,"title":2909,"updated_at":2910,"url":2911,"score":2912},"We have all data to perfom the merge action on frontside. \n\nFurthermore, if we call the api, files tree is not yet sync in the cache if github hook has not been triggered after commit/merge",[2905],{"name":2906,"color":2907},"enhancement","1ad6ff",280,"Avoid to call `project/:id/files` when commiting or publishing branch","2023-02-15T12:31:21Z","https://github.com/nuxt/nuxt.com/issues/280",0.81043863,{"description":2914,"labels":2915,"number":2908,"owner":2856,"repository":2918,"state":2879,"title":2919,"updated_at":2920,"url":2921,"score":2912},"### 🆒 Your use case\n\nWhen using [Nuxt Security](https://nuxt-security.vercel.app/) to set CSP headers for universal rendering, the scripts loaded via `useScript` work as expected, but the preloading of scripts using `link` tags does not work and generates errors.\n\n### 🆕 The solution you'd like\n\nIt would be ideal if there was a way to disable script preloading through the `ScriptOptions`.\n\n### 🔍 Alternatives you've considered\n\n_No response_\n\n### ℹ️ Additional info\n\n_No response_",[2916],{"name":2906,"color":2917},"a2eeef","scripts","Option to disable script preloading","2024-09-27T13:19:13Z","https://github.com/nuxt/scripts/issues/280",{"description":2923,"labels":2924,"number":2855,"owner":2856,"repository":2878,"state":2879,"title":2929,"updated_at":2930,"url":2931,"score":2862},"On the [Agencies page](https://nuxt.com/support/agencies) reduce the number of technical expertise on the left to the following expertise : \n- eCommerce\n- Software & Saas\n- Mobile development\n- UI/UX design\n- Content & Marketing\n- Consulting & Code audit\n\n+ list the following partner under the correct expertise : \n\n**64 Robots:**\n- eCommerce\n- Software & Saas\n- Mobile development\n- UI/UX design\n- Consulting & Code audit\n\n**Zen Archi:**\n- Software & Saas\n- Consulting & Code audit\n\n**Web Reinvent:**\n- eCommerce\n- Software & Saas\n- Mobile development\n\n**Mirahi:**\n- eCommerce\n- Software & Saas\n- Mobile development\n- UI/UX design\n- Consulting & Code audit\n\nAwaiting for news from others partner to update them as well, please list them under all categories for the moment\n\n\n\n",[2925,2926],{"name":2906,"color":2907},{"name":2927,"color":2928},"marketing","f5c828","[Partners] Reduce the number of technical expertise on partner page","2022-12-07T05:50:37Z","https://github.com/nuxt/nuxt.com/issues/1042",{"description":2933,"labels":2934,"number":2936,"owner":2856,"repository":2937,"state":2879,"title":2938,"updated_at":2939,"url":2940,"score":2941},"Hi, this is the module I was waiting the most for nuxt especially the preload links injection and to handle fonts easilly. \r\nI am facing one issue, I am working on a current project using the famous [Helvetica Neue Pro](https://www.myfonts.com/collections/neue-helvetica-font-linotype) fonts. The problem is I am using the Extented version of the font and so I use the css property [`font-stretch: expanded;`](https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch). \r\nIs it possible to add the support of font-stretch and have the same replica of what I have currenlty: I don't want to change my font-weight/font-family/font-stretch since the project is soon ready to be deployed.\r\n\r\nMy current font face:\r\n```css\r\n@font-face {\r\n font-family: 'Helvetica Neue';\r\n src: url('/fonts/HelveticaNeue-Roman.woff2') format('woff2');\r\n font-weight: 400;\r\n font-style: normal;\r\n font-display: swap;\r\n}\r\n\r\n@font-face {\r\n font-family: 'Helvetica Neue';\r\n src: url('/fonts/HelveticaNeue-Bold.woff2') format('woff2');\r\n font-weight: 700;\r\n font-style: normal;\r\n font-display: swap;\r\n }\r\n\r\n// Expanded/Extended\r\n\r\n@font-face {\r\n font-family: 'Helvetica Neue';\r\n src: url('/fonts/HelveticaNeue-ExtendedOblique.woff2') format('woff2');\r\n font-weight: 400;\r\n font-stretch: expanded;\r\n font-style: italic;\r\n font-display: swap;\r\n }\r\n\r\n@font-face {\r\n font-family: 'Helvetica Neue';\r\n src: url('/fonts/HelveticaNeue-HeavyExtendedOblique.woff2') format('woff2');\r\n font-weight: 900;\r\n font-stretch: expanded;\r\n font-style: italic;\r\n font-display: swap;\r\n }\r\n```",[2935],{"name":2906,"color":2917},112,"fonts","Add support for font-stretch","2024-05-03T12:03:08Z","https://github.com/nuxt/fonts/issues/112",0.8192022,{"description":2943,"labels":2944,"number":2945,"owner":2856,"repository":2888,"state":2879,"title":2946,"updated_at":2947,"url":2948,"score":2949},"In `v0.6.5` this works:\r\n\r\n```ts\r\nnuxtIcon: {\r\n aliases: {\r\n 'aws': 'IconAWS',\r\n // ...\r\n }\r\n}\r\n```\r\n\r\nif there is a component in global named `IconAWS.vue`, but in `v0.6.6` it breaks. The reason is the uppercase naming, if I rename the component and the alias to `IconAws.vue` it works.",[],125,"v0.6.6 has problems with uppercase alias names","2023-12-24T15:42:29Z","https://github.com/nuxt/icon/issues/125",0.82439214,["Reactive",2951],{},["Set"],["ShallowReactive",2954],{"$fTRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"$fyadZ0VQ_UhWuVbl8EKb3Q3EwtFnW1gsE1-CKiheAbzs":-1},"/nuxt/scripts/87"]