Merge branch '21128-toolbar-context-menu'
[arvados-workbench2.git] / src / store / data-explorer / data-explorer-reducer.test.tsx
index 2a9e56ce3f6dde6a8ca27ec6eb06df057898d58c..01aa7296334050a361472bd345916932203c1ee7 100644 (file)
@@ -2,46 +2,57 @@
 //
 // SPDX-License-Identifier: AGPL-3.0
 
-import dataExplorerReducer, { initialDataExplorer } from "./data-explorer-reducer";
-import actions from "./data-explorer-action";
-import { DataColumn } from "../../components/data-table/data-column";
+import { dataExplorerReducer, initialDataExplorer } from "./data-explorer-reducer";
+import { dataExplorerActions } from "./data-explorer-action";
 import { DataTableFilterItem } from "../../components/data-table-filters/data-table-filters";
+import { DataColumns } from "../../components/data-table/data-table";
+import { SortDirection } from "../../components/data-table/data-column";
 
 describe('data-explorer-reducer', () => {
     it('should set columns', () => {
-        const columns: Array<DataColumn<any>> = [{
+        const columns: DataColumns<any, any> = [{
             name: "Column 1",
+            filters: [],
             render: jest.fn(),
-            selected: true
+            selected: true,
+            configurable: true,
+            sort: {direction: SortDirection.NONE, field: "name"}
         }];
         const state = dataExplorerReducer(undefined,
-            actions.SET_COLUMNS({ id: "Data explorer", columns }));
+            dataExplorerActions.SET_COLUMNS({ id: "Data explorer", columns }));
         expect(state["Data explorer"].columns).toEqual(columns);
     });
 
     it('should toggle sorting', () => {
-        const columns: Array<DataColumn<any>> = [{
+        const columns: DataColumns<any, any> = [{
             name: "Column 1",
+            filters: [],
             render: jest.fn(),
             selected: true,
-            sortDirection: "asc"
+            sort: {direction: SortDirection.ASC, field: "name"},
+            configurable: true
         }, {
             name: "Column 2",
+            filters: [],
             render: jest.fn(),
             selected: true,
-            sortDirection: "none",
+            configurable: true,
+            sort: {direction: SortDirection.NONE, field: "name"},
         }];
         const state = dataExplorerReducer({ "Data explorer": { ...initialDataExplorer, columns } },
-            actions.TOGGLE_SORT({ id: "Data explorer", columnName: "Column 2" }));
-        expect(state["Data explorer"].columns[0].sortDirection).toEqual("none");
-        expect(state["Data explorer"].columns[1].sortDirection).toEqual("asc");
+            dataExplorerActions.TOGGLE_SORT({ id: "Data explorer", columnName: "Column 2" }));
+        expect(state["Data explorer"].columns[0].sort.direction).toEqual("none");
+        expect(state["Data explorer"].columns[1].sort.direction).toEqual("asc");
     });
 
     it('should set filters', () => {
-        const columns: Array<DataColumn<any>> = [{
+        const columns: DataColumns<any, any> = [{
             name: "Column 1",
+            filters: [],
             render: jest.fn(),
             selected: true,
+            configurable: true,
+            sort: {direction: SortDirection.NONE, field: "name"}
         }];
 
         const filters: DataTableFilterItem[] = [{
@@ -49,25 +60,31 @@ describe('data-explorer-reducer', () => {
             selected: true
         }];
         const state = dataExplorerReducer({ "Data explorer": { ...initialDataExplorer, columns } },
-            actions.SET_FILTERS({ id: "Data explorer", columnName: "Column 1", filters }));
+            dataExplorerActions.SET_FILTERS({ id: "Data explorer", columnName: "Column 1", filters }));
         expect(state["Data explorer"].columns[0].filters).toEqual(filters);
     });
 
     it('should set items', () => {
-        const state = dataExplorerReducer({ "Data explorer": undefined },
-            actions.SET_ITEMS({ id: "Data explorer", items: ["Item 1", "Item 2"] }));
+        const state = dataExplorerReducer({},
+            dataExplorerActions.SET_ITEMS({
+                id: "Data explorer",
+                items: ["Item 1", "Item 2"],
+                page: 0,
+                rowsPerPage: 10,
+                itemsAvailable: 100
+            }));
         expect(state["Data explorer"].items).toEqual(["Item 1", "Item 2"]);
     });
 
     it('should set page', () => {
-        const state = dataExplorerReducer({ "Data explorer": undefined },
-            actions.SET_PAGE({ id: "Data explorer", page: 2 }));
+        const state = dataExplorerReducer({},
+            dataExplorerActions.SET_PAGE({ id: "Data explorer", page: 2 }));
         expect(state["Data explorer"].page).toEqual(2);
     });
-    
+
     it('should set rows per page', () => {
-        const state = dataExplorerReducer({ "Data explorer": undefined },
-            actions.SET_ROWS_PER_PAGE({ id: "Data explorer", rowsPerPage: 5 }));
+        const state = dataExplorerReducer({},
+            dataExplorerActions.SET_ROWS_PER_PAGE({ id: "Data explorer", rowsPerPage: 5 }));
         expect(state["Data explorer"].rowsPerPage).toEqual(5);
     });
 });