Javascript 将redux promise中间件与web组件测试器结合使用

Javascript 将redux promise中间件与web组件测试器结合使用,javascript,polymer,web-component-tester,Javascript,Polymer,Web Component Tester,我有一个名为redux scripts 我在redux mixin.html <link rel="import" href="../../bower_components/polymer-redux/polymer-redux.html"> <script src="../../bower_components/aws-sdk/dist/aws-sdk.min.js"></script> <link rel="import" href="redux

我有一个名为
redux scripts


我在
redux mixin.html

<link rel="import" href="../../bower_components/polymer-redux/polymer-redux.html">
<script src="../../bower_components/aws-sdk/dist/aws-sdk.min.js"></script>
<link rel="import" href="redux-scripts.html">

<script type="module" src="./index.js"></script>
<script nomodule src="./bundle.js"></script>
指的是

import programs from './programs/programsReducer.js';
import videos from './videos/videosReducer.js';
import video from './video/videoReducer.js';

const rootReducer = Redux.combineReducers({
  programs,
  videos,
  video,
});

// Setup a Redux store
const initialState = {
  viewSpecificToolbar: 'videos',
};

const store = Redux.createStore(
  rootReducer,
  initialState,

  // The best part 8)
  Redux.compose(
    Redux.applyMiddleware(ReduxPromiseMiddleware.default()),
    window.devToolsExtension ? window.devToolsExtension() : (v) => v
  )
);

export {store};
我通过将其添加到redux-store.js的顶部实现了部分解决方案

const scripts = Polymer.ResolveUrl.resolveUrl('./redux-scripts.html');
Polymer.importHref(scripts, null, null, false);

但这并不是非常令人满意,因为它在运行测试时会导致许多错误,并且并不是所有的测试套件都会运行。

另一个解决方案是将
redux scripts.html
import添加到所有测试文件中,但是,通过修改redux promise中间件库,可以获得更好的解决方案。在版本4.4.2中,index.js中的import语句现在指向具有文件扩展名的相对路径
/isPromise.js
。有了它,我就可以
redux store.js
中从“../../node\u modules/redux promise middleware/dist/es/index.js”导入promiseMiddleware了,我们就成功了

const scripts = Polymer.ResolveUrl.resolveUrl('./redux-scripts.html');
Polymer.importHref(scripts, null, null, false);