[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71QD51HWSGYMCMB7RW7PGK8":3,"skill-same:01M71QD51HWSGYMCMB7RW7PGK8":130},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":16,"sourceHtmlUrl":17,"categories":18,"keywords":27,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":14,"repositoryHtmlUrl":57,"repositoryHomepageUrl":58,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M71QD51HWSGYMCMB7RW7PGK8","vue-testing-best-practices",null,"Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.","pattanation\u002FNorvik","pattanation","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F235419268?v=4","01M71M5THHYYB15ME8R2E4FCZG","Patta","01M71M5TJM1NDM992M8PDKYR2K",0,"MIT","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FSKILL.md",[19,24],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000009","前端开发",[28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"testing","testing best practices","vue","best practices","vue testing best practices","e2e testing","js","patterns","use","utils","e2e","mocking","for","vitest","github","component","testing patterns","test","playwright","2026-11-10 13:02:02",false,"---\nname: vue-testing-best-practices\nversion: 1.0.0\nlicense: MIT\nauthor: github.com\u002Fvuejs-ai\ndescription: Use for Vue.js testing. Covers Vitest, Vue Test Utils, component testing, mocking, testing patterns, and Playwright for E2E testing.\n---\n\nVue.js testing best practices, patterns, and common gotchas.\n\n### Testing\n- Setting up test infrastructure for Vue 3 projects → See [testing-vitest-recommended-for-vue](reference\u002Ftesting-vitest-recommended-for-vue.md)\n- Tests keep breaking when refactoring component internals → See [testing-component-blackbox-approach](reference\u002Ftesting-component-blackbox-approach.md)\n- Tests fail intermittently with race conditions → See [testing-async-await-flushpromises](reference\u002Ftesting-async-await-flushpromises.md)\n- Composables using lifecycle hooks or inject fail to test → See [testing-composables-helper-wrapper](reference\u002Ftesting-composables-helper-wrapper.md)\n- Getting \"injection Symbol(pinia) not found\" errors in tests → See [testing-pinia-store-setup](reference\u002Ftesting-pinia-store-setup.md)\n- Components with async setup won't render in tests → See [testing-suspense-async-components](reference\u002Ftesting-suspense-async-components.md)\n- Snapshot tests keep passing despite broken functionality → See [testing-no-snapshot-only](reference\u002Ftesting-no-snapshot-only.md)\n- Choosing end-to-end testing framework for Vue apps → See [testing-e2e-playwright-recommended](reference\u002Ftesting-e2e-playwright-recommended.md)\n- Tests need to verify computed styles or real DOM events → See [testing-browser-vs-node-runners](reference\u002Ftesting-browser-vs-node-runners.md)\n- Testing components created with defineAsyncComponent fails → See [async-component-testing](reference\u002Fasync-component-testing.md)\n- Teleported modal content can't be found in wrapper queries → See [teleport-testing-complexity](reference\u002Fteleport-testing-complexity.md)\n\n## Reference\n\n- [Vue.js Testing Guide](https:\u002F\u002Fvuejs.org\u002Fguide\u002Fscaling-up\u002Ftesting)\n- [Vue Test Utils](https:\u002F\u002Ftest-utils.vuejs.org\u002F)\n- [Vitest Documentation](https:\u002F\u002Fvitest.dev\u002F)\n- [Playwright Documentation](https:\u002F\u002Fplaywright.dev\u002F)\n","Vue.js testing best practices, patterns, and common gotchas.\n\n### Testing\n- Setting up test infrastructure for Vue 3 projects → See [testing-vitest-recommended-for-vue](reference\u002Ftesting-vitest-recommended-for-vue.md)\n- Tests keep breaking when refactoring component internals → See [testing-component-blackbox-approach](reference\u002Ftesting-component-blackbox-approach.md)\n- Tests fail intermittently with race conditions → See [testing-async-await-flushpromises](reference\u002Ftesting-async-await-flushpromises.md)\n- Composables using lifecycle hooks or inject fail to test → See [testing-composables-helper-wrapper](reference\u002Ftesting-composables-helper-wrapper.md)\n- Getting \"injection Symbol(pinia) not found\" errors in tests → See [testing-pinia-store-setup](reference\u002Ftesting-pinia-store-setup.md)\n- Components with async setup won't render in tests → See [testing-suspense-async-components](reference\u002Ftesting-suspense-async-components.md)\n- Snapshot tests keep passing despite broken functionality → See [testing-no-snapshot-only](reference\u002Ftesting-no-snapshot-only.md)\n- Choosing end-to-end testing framework for Vue apps → See [testing-e2e-playwright-recommended](reference\u002Ftesting-e2e-playwright-recommended.md)\n- Tests need to verify computed styles or real DOM events → See [testing-browser-vs-node-runners](reference\u002Ftesting-browser-vs-node-runners.md)\n- Testing components created with defineAsyncComponent fails → See [async-component-testing](reference\u002Fasync-component-testing.md)\n- Teleported modal content can't be found in wrapper queries → See [teleport-testing-complexity](reference\u002Fteleport-testing-complexity.md)\n\n## Reference\n\n- [Vue.js Testing Guide](https:\u002F\u002Fvuejs.org\u002Fguide\u002Fscaling-up\u002Ftesting)\n- [Vue Test Utils](https:\u002F\u002Ftest-utils.vuejs.org\u002F)\n- [Vitest Documentation](https:\u002F\u002Fvitest.dev\u002F)\n- [Playwright Documentation](https:\u002F\u002Fplaywright.dev\u002F)\n",{"name":5,"author":52,"license":15,"version":53,"description":7},"github.com\u002Fvuejs-ai","1.0.0","claude\u002Finstall-gsd-build-foQdV","d86cd127f527124b5fd0fd0bc679a4d79b7d01d7",".agents\u002Fskills\u002Fvue-testing-best-practices","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik","https:\u002F\u002Fnorvik-orpin.vercel.app","https:\u002F\u002Fgithub.com\u002Fpattanation","2026-07-17 11:17:04",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add pattanation\u002FNorvik --skill vue-testing-best-practices",{"tool":67,"command":68},"bunx","bunx skills add pattanation\u002FNorvik --skill vue-testing-best-practices",{"tool":70,"command":71},"pnpm","pnpm dlx skills add pattanation\u002FNorvik --skill vue-testing-best-practices","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FSKILL.md",true,[75,80,86,90,94,98,102,106,110,114,118,122,126],{"path":76,"resourceType":77,"resourceTypeDesc":78,"sizeBytes":79,"sourceHtmlUrl":16},"LICENSE.md","LICENSE","许可证",1098,{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"reference\u002Fasync-component-testing.md","REFERENCE","参考文档",4896,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Fasync-component-testing.md",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"reference\u002Fteleport-testing-complexity.md",4136,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Fteleport-testing-complexity.md",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"reference\u002Ftesting-async-await-flushpromises.md",5254,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-async-await-flushpromises.md",{"path":95,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":96,"sourceHtmlUrl":97},"reference\u002Ftesting-browser-vs-node-runners.md",5623,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-browser-vs-node-runners.md",{"path":99,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":100,"sourceHtmlUrl":101},"reference\u002Ftesting-component-blackbox-approach.md",4753,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-component-blackbox-approach.md",{"path":103,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":104,"sourceHtmlUrl":105},"reference\u002Ftesting-composables-helper-wrapper.md",6119,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-composables-helper-wrapper.md",{"path":107,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":108,"sourceHtmlUrl":109},"reference\u002Ftesting-e2e-playwright-recommended.md",6581,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-e2e-playwright-recommended.md",{"path":111,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":112,"sourceHtmlUrl":113},"reference\u002Ftesting-no-snapshot-only.md",6283,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-no-snapshot-only.md",{"path":115,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":116,"sourceHtmlUrl":117},"reference\u002Ftesting-pinia-store-setup.md",6249,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-pinia-store-setup.md",{"path":119,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":120,"sourceHtmlUrl":121},"reference\u002Ftesting-suspense-async-components.md",6448,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-suspense-async-components.md",{"path":123,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":124,"sourceHtmlUrl":125},"reference\u002Ftesting-vitest-recommended-for-vue.md",5039,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002Freference\u002Ftesting-vitest-recommended-for-vue.md",{"path":127,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":128,"sourceHtmlUrl":129},"SYNC.md",162,"https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-testing-best-practices\u002FSYNC.md",[131,156,181,201,216,239],{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":135,"licenseFileUrl":136,"sourceHtmlUrl":137,"categories":138,"keywords":141,"publishedAt":47},"01M71QDV4DM8T19HEHWATEF1K4","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fwebapp-testing\u002FSKILL.md",[139,140],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},[142,28,143,40,144,145,146,147,148,149,150,151,46,152,153,154,155],"webapp","webapp testing","applications","local","frontend","debugging","toolkit","logs","browser","with","web","behavior","ui","screenshots",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":135,"licenseFileUrl":160,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":47},"01M71QDH2GGMXGA9105C9W1N7B","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fweb-artifacts-builder\u002FSKILL.md",[163],{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},[165,166,167,152,168,169,170,40,171,172,146,173,36,174,175,176,177,178,179,180],"builder","artifacts builder","artifacts","web artifacts builder","single-file","css","Tailwind","ui components","single","file","components","react","multi","state","routing","state management",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":185,"sourceHtmlUrl":186,"categories":187,"keywords":189,"publishedAt":47},"01M71QD9T2XC3EWMQNN9ACNWQ1","vueuse-functions","Apply VueUse composables where appropriate to build concise, maintainable Vue.js \u002F Nuxt features.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvueuse-functions\u002FSKILL.md",[188],{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},[190,191,192,193,194,195,42,196,197,198,199,30,34,200],"functions","vueuse","vueuse functions","project","nuxt","apply","concise","build","https","features","composables",{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":205,"sourceHtmlUrl":206,"categories":207,"keywords":209,"publishedAt":47},"01M71QD358H2DJ9THJRBP77T3T","vue-router-best-practices","Vue Router 4 patterns, navigation guards, route params, and route-component lifecycle interactions.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-router-best-practices\u002FSKILL.md",[208],{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},[210,30,211,31,212,43,213,42,35,214,215],"router","vue router best practices","route","guards","navigation","lifecycle",{"skillNo":217,"name":218,"nameZh":6,"description":219,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":220,"sourceHtmlUrl":221,"categories":222,"keywords":224,"publishedAt":47},"01M71QCYPNWDE2MQZ1TF3ED5S4","vue-best-practices","MUST be used for Vue.js tasks. Strongly recommends Composition API with `\u003Cscript setup>` and TypeScript as the standard approach. Covers Vue 3, SSR, Volar, vue-tsc. Load for any Vue, .vue files, Vue Router, Pinia, or Vite with Vue work. ALWAYS use Composition API unless the project explicitly requires Options API.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FLICENSE.md","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvue-best-practices\u002FSKILL.md",[223],{"categoryNo":25,"categoryName":26,"taxonomyType":22,"taxonomyTypeDesc":23},[225,30,31,226,193,227,228,229,210,230,231,232,233,234,235,40,236,36,237,238],"vue best practices","Composition","files","tasks","api","pinia","work","options","ssr","typescript","as","vite","load","standard",{"skillNo":240,"name":241,"nameZh":6,"description":242,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":135,"licenseFileUrl":6,"sourceHtmlUrl":243,"categories":244,"keywords":251,"publishedAt":47},"01M71QCT1J9SE670TZJENMNH24","vss-summarize-video","Use to summarize a recorded video via the LVS summarization microservice (HITL-gated) with a VLM fallback. Not for report generation or live RTSP captioning.","https:\u002F\u002Fgithub.com\u002Fpattanation\u002FNorvik\u002Fblob\u002Fclaude\u002Finstall-gsd-build-foQdV\u002F.agents\u002Fskills\u002Fvss-summarize-video\u002FSKILL.md",[245,248],{"categoryNo":246,"categoryName":247,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":249,"categoryName":250,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000021","资料检索与研究",[252,253,254,255,256,257,258,259,260,261,262,263,40,36,151,42,264,265,266,267],"Video","vss summarize video","summarize","LVS","search","captioning","Blueprint","team","live","fallback","microservice","NVIDIA","operational","via","generation","gated"]