summaryrefslogtreecommitdiffstats
path: root/devtools/client/application/test/node/helpers.js
diff options
context:
space:
mode:
Diffstat (limited to 'devtools/client/application/test/node/helpers.js')
-rw-r--r--devtools/client/application/test/node/helpers.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/devtools/client/application/test/node/helpers.js b/devtools/client/application/test/node/helpers.js
new file mode 100644
index 0000000000..6699549a15
--- /dev/null
+++ b/devtools/client/application/test/node/helpers.js
@@ -0,0 +1,31 @@
+/* Any copyright is dedicated to the Public Domain.
+ http://creativecommons.org/publicdomain/zero/1.0/ */
+
+"use strict";
+
+const {
+ thunk,
+} = require("resource://devtools/client/shared/redux/middleware/thunk.js");
+const configureStore = require("redux-mock-store").default;
+
+/**
+ * Prepare the store for use in testing.
+ */
+function setupStore(preloadedState = {}) {
+ const middleware = [thunk()];
+ const mockStore = configureStore(middleware);
+ return mockStore(preloadedState);
+}
+
+/**
+ * This gives an opportunity to Promises to resolve in tests
+ * (since they are microtasks)
+ */
+async function flushPromises() {
+ await new Promise(r => setTimeout(r, 0));
+}
+
+module.exports = {
+ flushPromises,
+ setupStore,
+};