8

语境

我有使用后端 API 的前端 React+Webpack 应用程序。我的 Webpack 设置取决于window.location.origin属性,用于设置和部署过程。目前,我正在使用 Karma testrunner 并试图用 AVA testrunner 替换它。

我正在尝试将 AVA 与webpack 配方的单个条目设置一起应用我还将JSDOM作为节点的 dom 仿真器应用。

问题

捆绑的一些测试使用该location.origin属性。webpack && ava在运行脚本期间引发错误:

var apiUrl = process.env.API_URL && process.env.NODE_ENV !== 'production' ? process.env.API_URL : location.origin;
ReferenceError: location is not defined

Karma 在浏览器引擎上运行并window.location.origin动态地再现价值。与 AVA 不同。运行测试时它不运行任何类型的浏览器。我只能(据我所知)用 来“模拟”浏览器环境jsdom,这就是我想要做的。但是问题链接location.origin不支持特定属性jsdom

问题

任何人都可以跟踪我的解决方案来重现window.location.originAVA 的动态(环境感知)吗?我知道我可以将它保持不变并将其存储在.env每个环境中。但这是我想减轻的另一项维护任务。

4

0 回答 0