如何在Vitest中配置document.cookie以测试Pinia的getCookie函数?
可以通过调整测试环境的Cookie配置解决这个问题,核心是处理测试环境对localhost域名的限制,具体有两种方案:
方案1:设置Cookie时不指定domain
测试代码中设置Cookie时,不要添加domain=localhost参数,直接用路径参数即可:
// 测试前设置Cookie document.cookie = "testCookie=123; path=/";
这样你的getCookie函数能正常读取,同时不会触发公共后缀域名的错误提示。
方案2:全局配置Vitest的jsdom环境
如果需要保留domain设置,可在vitest.config.js中配置CookieJar允许特殊域名:
export default defineConfig({ test: { environment: 'jsdom', environmentOptions: { jsdom: { cookieJar: { allowSpecialUseDomain: true, rejectPublicSuffixes: false } } } } })
这个配置会让测试环境的Cookie处理逻辑允许localhost这类特殊域名,彻底解决该类报错。
你的getCookie函数本身逻辑没有问题,报错原因是测试环境(jsdom)默认限制了公共后缀域名的Cookie设置,以上两种方案都能解决测试问题。
内容的提问来源于stack exchange,提问作者user14131782
相关产品推荐
相关产品推荐

