如何使用AVA模拟浏览器特定属性`window.location.origin`

Mil*_*nik 7 javascript jsdom reactjs webpack ava

上下文

我有Frontend React + Webpack应用程序使用后端API.我的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
Run Code Online (Sandbox Code Playgroud)

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

问题

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