From 2759fccc641b40b9fff0b9da5ef83d6ecd0e3dd2 Mon Sep 17 00:00:00 2001
From: Chris Beer <cabeer@stanford.edu>
Date: Sat, 20 Jun 2020 16:40:42 -0700
Subject: [PATCH] Remove explicit exports for state methods; expecting
 consumers to use the ES modules directly

---
 .../config_updating_from_instance.test.js       | 17 -----------------
 __tests__/integration/mirador/import_export.js  |  3 +--
 .../mirador/thumbnail-navigation.test.js        | 11 +++++------
 __tests__/src/lib/MiradorViewer.test.js         |  3 ---
 src/index.js                                    |  6 ------
 src/lib/MiradorViewer.js                        |  7 ++-----
 6 files changed, 8 insertions(+), 39 deletions(-)
 delete mode 100644 __tests__/integration/mirador/config_updating_from_instance.test.js

diff --git a/__tests__/integration/mirador/config_updating_from_instance.test.js b/__tests__/integration/mirador/config_updating_from_instance.test.js
deleted file mode 100644
index 6190e9053..000000000
--- a/__tests__/integration/mirador/config_updating_from_instance.test.js
+++ /dev/null
@@ -1,17 +0,0 @@
-/* global miradorInstance */
-
-describe('Config updating from instance', () => {
-  beforeAll(async () => {
-    await page.goto('http://127.0.0.1:4488/__tests__/integration/mirador/');
-  });
-  it('can modify the config via api', async () => {
-    await page.evaluate(() => {
-      const a = miradorInstance.actions.updateConfig({ foo: 'bat' });
-      miradorInstance.store.dispatch(a);
-    });
-    const config = await page.evaluate(() => (
-      miradorInstance.store.getState().config
-    ));
-    await expect(config.foo).toBe('bat');
-  });
-});
diff --git a/__tests__/integration/mirador/import_export.js b/__tests__/integration/mirador/import_export.js
index d7ee5edb2..78d24b9d8 100644
--- a/__tests__/integration/mirador/import_export.js
+++ b/__tests__/integration/mirador/import_export.js
@@ -14,8 +14,7 @@ describe('Import/Export state', () => {
         y: 1000,
         zoom: 0.001,
       };
-      const f = miradorInstance.actions.importMiradorState(state);
-      miradorInstance.store.dispatch(f);
+      miradorInstance.store.dispatch({ state, type: 'mirador/IMPORT_MIRADOR_STATE' });
       return windows[0];
     });
     const mirador = await page.evaluate(() => miradorInstance.store.getState());
diff --git a/__tests__/integration/mirador/thumbnail-navigation.test.js b/__tests__/integration/mirador/thumbnail-navigation.test.js
index bb6a74d7d..7336f0648 100644
--- a/__tests__/integration/mirador/thumbnail-navigation.test.js
+++ b/__tests__/integration/mirador/thumbnail-navigation.test.js
@@ -22,14 +22,13 @@ describe('Thumbnail navigation', () => {
   it('displays on right side', async () => {
     await expect(page).toMatchElement('.mirador-thumb-navigation');
     await expect(page).toMatchElement('.mirador-companion-area-far-bottom .mirador-thumb-navigation');
-    await page.evaluate(() => {
+    const windowId = await page.evaluate(() => {
       const { windows } = miradorInstance.store.getState();
-      miradorInstance.store.dispatch(
-        miradorInstance.actions.setWindowThumbnailPosition(
-          Object.keys(windows)[0], 'far-right',
-        ),
-      );
+      return Object.keys(windows)[0];
     });
+
+    await expect(page).toClick(`#${windowId} button[aria-label="Window views & thumbnail display"]`);
+    await expect(page).toClick('li', { text: 'Right' });
     await expect(page).toMatchElement('.mirador-companion-area-far-right .mirador-thumb-navigation');
   });
 });
diff --git a/__tests__/src/lib/MiradorViewer.test.js b/__tests__/src/lib/MiradorViewer.test.js
index 87aa50943..17c553543 100644
--- a/__tests__/src/lib/MiradorViewer.test.js
+++ b/__tests__/src/lib/MiradorViewer.test.js
@@ -12,9 +12,6 @@ describe('MiradorViewer', () => {
     instance = new MiradorViewer({});
   });
   describe('constructor', () => {
-    it('returns viewer actions', () => {
-      expect(instance.actions.addWindow).toBeDefined();
-    });
     it('returns viewer store', () => {
       expect(instance.store.dispatch).toBeDefined();
     });
diff --git a/src/index.js b/src/index.js
index 80718f122..fd8e27801 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,12 +1,6 @@
 import init from './init';
-import * as actions from './state/actions';
-import * as selectors from './state/selectors';
-
-export * from './state/reducers';
 
 const exports = {
-  actions,
-  selectors,
   viewer: init,
 };
 
diff --git a/src/lib/MiradorViewer.js b/src/lib/MiradorViewer.js
index 81346abba..d4ae34884 100644
--- a/src/lib/MiradorViewer.js
+++ b/src/lib/MiradorViewer.js
@@ -3,7 +3,7 @@ import ReactDOM from 'react-dom';
 import { Provider } from 'react-redux';
 import HotApp from '../components/App';
 import createStore from '../state/createStore';
-import * as actions from '../state/actions';
+import { importConfig } from '../state/actions/config';
 import {
   filterValidPlugins,
   getReducersFromPlugins,
@@ -24,7 +24,6 @@ class MiradorViewer {
     this.processConfig();
 
     const viewer = {
-      actions,
       store: this.store,
     };
 
@@ -42,9 +41,7 @@ class MiradorViewer {
    * Process config into actions
    */
   processConfig() {
-    /** merge type for arrays */
-    const action = actions.importConfig(this.config);
-    this.store.dispatch(action);
+    this.store.dispatch(importConfig(this.config));
   }
 }
 
-- 
GitLab