如何在 vitest 中测试 laravel sainttum 路线

问题描述 投票:0回答:1

我有一个应用程序,使用 Vue 框架作为客户端,使用 laravel 框架作为服务器。

我的身份验证是通过 laravel sainttum 完成的,这是一个基于 cookie 的身份验证系统。 我当前的设置是在 VS Code 中运行 vitest。 我的客户使用 axios 进行 api 调用。

不幸的是,由于身份验证问题,我无法对大部分代码进行单元测试。 (这就是我希望在这里解决的问题)

我尝试将应用程序登录过程包装在 vitest 中,我希望它的行为与浏览器相同。

我当前的尝试运行为:

  1. 使用仅存在于测试服务器上的帐户凭据执行应用程序登录脚本。
  2. 我可以看到服务器响应了 Set-Cookie 标头。
  3. Vitest 看不到附加到文档的 cookie,axios 也看不到。
  4. 手动设置身份验证 cookie 会因会话不匹配而导致错误。

服务器端测试运行良好;然而,这里的目标是测试客户端代码。由于登录表单可以在浏览器上运行,我希望它也可以在 Vitest 中运行。

就好像 vitest 或 vs code 都不能保持状态供我一致使用。

因此,我搜索并没有找到任何相关主题。

由于我主要是在寻找流程,因此我还没有发布我的代码,但如果这是一条更简单的前进道路,可以稍后发布。

laravel-sanctum vitest
1个回答
0
投票

工作解决方案是:

  1. 发出请求时在客户端设置原点。
  2. 使用 CORS 启用所述来源
  3. 修改 Laravel 上的 SESSION_DOMAIN 环境变量以匹配所述来源。

话虽如此,现在我使用护照,并且有客户进行测试

© www.soinside.com 2019 - 2024. All rights reserved.