Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / src / store / data-explorer / data-explorer-middleware.test.ts
index 6b8297b0c8c3bb84afc55a4fe16e5e2772db9a06..8bb10f0c3bc0bc70a9f399127351c0887ddac7be 100644 (file)
@@ -5,12 +5,15 @@
 import { DataExplorerMiddlewareService } from "./data-explorer-middleware-service";
 import { dataExplorerMiddleware } from "./data-explorer-middleware";
 import { MiddlewareAPI } from "redux";
-import { DataColumns } from "../../components/data-table/data-table";
+import { DataColumns } from "components/data-table/data-table";
 import { dataExplorerActions } from "./data-explorer-action";
+import { SortDirection } from "components/data-table/data-column";
+import { createTree } from 'models/tree';
+import { DataTableFilterItem } from "components/data-table-filters/data-table-filters-tree";
 
 
 describe("DataExplorerMiddleware", () => {
-    
+
     it("handles only actions that are identified by service id", () => {
         const config = {
             id: "ServiceId",
@@ -18,6 +21,8 @@ describe("DataExplorerMiddleware", () => {
                 name: "Column",
                 selected: true,
                 configurable: false,
+                sortDirection: SortDirection.NONE,
+                filters: createTree<DataTableFilterItem>(),
                 render: jest.fn()
             }],
             requestItems: jest.fn(),
@@ -33,7 +38,7 @@ describe("DataExplorerMiddleware", () => {
         middleware(dataExplorerActions.SET_PAGE({ id: "OtherId", page: 0 }));
         middleware(dataExplorerActions.SET_PAGE({ id: "ServiceId", page: 0 }));
         middleware(dataExplorerActions.SET_PAGE({ id: "OtherId", page: 0 }));
-        expect(api.dispatch).toHaveBeenCalledWith(dataExplorerActions.REQUEST_ITEMS({ id: "ServiceId" }));
+        expect(api.dispatch).toHaveBeenCalledWith(dataExplorerActions.REQUEST_ITEMS({ id: "ServiceId", criteriaChanged: false }));
         expect(api.dispatch).toHaveBeenCalledTimes(1);
     });
 
@@ -44,6 +49,8 @@ describe("DataExplorerMiddleware", () => {
                 name: "Column",
                 selected: true,
                 configurable: false,
+                sortDirection: SortDirection.NONE,
+                filters: createTree<DataTableFilterItem>(),
                 render: jest.fn()
             }],
             requestItems: jest.fn(),
@@ -57,7 +64,7 @@ describe("DataExplorerMiddleware", () => {
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
         middleware(dataExplorerActions.REQUEST_ITEMS({ id: "ServiceId" }));
-        expect(config.requestItems).toHaveBeenCalled();
+        expect(api.dispatch).toHaveBeenCalledTimes(1);
     });
 
     it("handles SET_PAGE action", () => {
@@ -110,7 +117,7 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.SET_FILTERS({ id: service.getId(), columnName: "", filters: [] }));
+        middleware(dataExplorerActions.SET_FILTERS({ id: service.getId(), columnName: "", filters: createTree() }));
         expect(api.dispatch).toHaveBeenCalledTimes(2);
     });
 
@@ -164,7 +171,7 @@ describe("DataExplorerMiddleware", () => {
         };
         const next = jest.fn();
         const middleware = dataExplorerMiddleware(service)(api)(next);
-        middleware(dataExplorerActions.SET_SEARCH_VALUE({ id: service.getId(), searchValue: "" }));
+        middleware(dataExplorerActions.SET_EXPLORER_SEARCH_VALUE({ id: service.getId(), searchValue: "" }));
         expect(api.dispatch).toHaveBeenCalledTimes(2);
     });
 
@@ -194,8 +201,8 @@ describe("DataExplorerMiddleware", () => {
 class ServiceMock extends DataExplorerMiddlewareService {
     constructor(private config: {
         id: string,
-        columns: DataColumns<any>,
-        requestItems: (api: MiddlewareAPI) => void
+        columns: DataColumns<any, any>,
+        requestItems: (api: MiddlewareAPI) => Promise<void>
     }) {
         super(config.id);
     }
@@ -204,7 +211,8 @@ class ServiceMock extends DataExplorerMiddlewareService {
         return this.config.columns;
     }
 
-    requestItems(api: MiddlewareAPI) {
+    requestItems(api: MiddlewareAPI): Promise<void> {
         this.config.requestItems(api);
+        return Promise.resolve();
     }
 }