\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",[1995],{"name":1996,"color":1997},"pending triage","5D08F5",1042,"test-utils","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.83096445,{"description":2005,"labels":2006,"number":2008,"owner":1985,"repository":1999,"state":1987,"title":2009,"updated_at":2010,"url":2011,"score":2012},"### Environment\r\n\r\n------------------------------\r\n- Operating System: Linux\r\n- Node Version: v18.18.0\r\n- Nuxt Version: 3.9.3\r\n- CLI Version: 3.10.0\r\n- Nitro Version: 2.8.1\r\n- Package Manager: npm@10.2.3\r\n- Builder: -\r\n- User Config: devtools\r\n- Runtime Modules: -\r\n- Build Modules: -\r\n------------------------------\r\n\r\n### Reproduction\r\n\r\nhttps://stackblitz.com/edit/github-ddvycp\r\n\r\n### Describe the bug\r\n\r\n```ts\r\nconst wrapper = await mountSuspended(OptionAPIComponent)\r\n```\r\n`wrapper.vm.$data` is empty\r\n`wrapper.setData({...data})` will result into error:\r\n```\r\nTypeError: Cannot add property, object is not extensible\r\n```\r\n\r\nFurthermore, I cannot call any method of the component instance:\r\n```\r\nTypeError: wrapper.vm.myMethod is not a function\r\n```\r\n\r\n\r\n### Additional context\r\n\r\nComponent written in composition api doesn't have this issue.\r\n@vue/test-utils doesn't have this issue.\r\n\r\n### Logs\r\n\r\n_No response_",[2007],{"name":1996,"color":1997},735,"No data on Option API component returned by mountSuspended","2025-01-29T17:42:23Z","https://github.com/nuxt/test-utils/issues/735",0.8396472,{"description":2014,"labels":2015,"number":2016,"owner":1985,"repository":2017,"state":2018,"title":2019,"updated_at":2020,"url":2021,"score":2022},"Details in this (closed) issue: https://github.com/nuxt-modules/icon/issues/62",[],86,"icon","closed","error TS2339: Property 'aliases' does not exist on type '{}'","2024-05-31T15:16:29Z","https://github.com/nuxt/icon/issues/86",0.6350229,{"description":2024,"labels":2025,"number":2027,"owner":1985,"repository":1999,"state":2018,"title":2028,"updated_at":2029,"url":2030,"score":2031},"### 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",[2026],{"name":1996,"color":1997},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.796396,{"description":2033,"labels":2034,"number":2035,"owner":1985,"repository":2036,"state":2018,"title":2037,"updated_at":2038,"url":2039,"score":2040},"- Files are displayed alongside branches only when a query is entered.\n- Files should be displayed with their respective status from `computedFiles`\n",[],155,"nuxt.com","Search files in `CMD+K` modal","2023-02-15T12:31:48Z","https://github.com/nuxt/nuxt.com/issues/155",0.82493037,{"description":2042,"labels":2043,"number":2047,"owner":1985,"repository":2048,"state":2018,"title":2049,"updated_at":2050,"url":2051,"score":2052},"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```",[2044],{"name":2045,"color":2046},"enhancement","a2eeef",112,"fonts","Add support for font-stretch","2024-05-03T12:03:08Z","https://github.com/nuxt/fonts/issues/112",0.82735866,{"description":2054,"labels":2055,"number":2058,"owner":1985,"repository":2036,"state":2018,"title":2059,"updated_at":2060,"url":2061,"score":2062},"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",[2056],{"name":2045,"color":2057},"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.82781005,{"description":2064,"labels":2065,"number":2058,"owner":1985,"repository":1986,"state":2018,"title":2067,"updated_at":2068,"url":2069,"score":2062},"### 🆒 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_",[2066],{"name":2045,"color":2046},"Option to disable script preloading","2024-09-27T13:19:13Z","https://github.com/nuxt/scripts/issues/280",{"description":2071,"labels":2072,"number":2076,"owner":1985,"repository":1985,"state":2018,"title":2077,"updated_at":2078,"url":2079,"score":2080},"Hello,\r\n\r\nWhen adding meta via head () I want to add an og:image using dynamic assets, and they need to have an absolute path, not a relative one:\r\n\r\n**{ hid: 'og-image', property: 'og-image', content: 'need-absolute-path-here' }**\r\n\r\nIs there a way to set a variable depending on whether the build is dev or production?\r\n\r\nsomething like? :\r\n**if (process.env.NODE_ENV === 'production') {\r\n this.prodBaseUrl = 'https://mydomain.com/_nuxt/img/'\r\n}**\r\n\r\nAny advice would be much appreciated!\r\n\r\nThanks!\r\n\r\nGyles\r\n\n\n\u003C!--cmty-->\u003C!--cmty_prevent_hook-->\n\u003Cdiv align=\"right\">\u003Csub>\u003Cem>This question is available on \u003Ca href=\"https://nuxtjs.cmty.io\">Nuxt.js\u003C/a> community (\u003Ca href=\"https://nuxtjs.cmty.io/nuxt/nuxt.js/issues/c1195\">#c1195\u003C/a>)\u003C/em>\u003C/sub>\u003C/div>",[2073],{"name":2074,"color":2075},"2.x","d4c5f9",1348,"head meta add absolute image paths","2023-01-18T15:41:42Z","https://github.com/nuxt/nuxt/issues/1348",0.8278138,["Reactive",2082],{},["Set"],["ShallowReactive",2085],{"TRc1wZytZ_XrK4EfJfei_Sz-An4H4Yy6syhVxH_PVJc":-1,"aQMqbM9v5tqMzl6BMkOmjz3k0PQSmspBiYZ9rBjYesQ":-1},"/nuxt/nuxt.com/87"]