我有Frontend React + Webpack应用程序正在使用后端API。
我的Webpack设置依赖于window.location.origin
属性,用于设置和部署过程。
目前,我正在使用Karma testrunner并试图用AVA testrunner替换它。
我正在尝试使用此single entry setup for webpack食谱应用AVA 我还将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
属性
Issue Link
有人能跟踪我的解决方案,为AVA动态(环保)重现window.location.origin
吗?
我知道我可以将它保持不变并将其存储在.env
每个环境中。
但这是我想要缓解的另一项维护任务。