X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/ae85f32b449562726c0fd3d30447c799069a0bbb..25d64433dff3ffcf083c2cedd8d849de49a691d1:/src/store/data-explorer/data-explorer-middleware.test.ts diff --git a/src/store/data-explorer/data-explorer-middleware.test.ts b/src/store/data-explorer/data-explorer-middleware.test.ts index 65ff8a52..ef6cfe42 100644 --- a/src/store/data-explorer/data-explorer-middleware.test.ts +++ b/src/store/data-explorer/data-explorer-middleware.test.ts @@ -4,41 +4,25 @@ import { DataExplorerMiddlewareService } from "./data-explorer-middleware-service"; import { dataExplorerMiddleware } from "./data-explorer-middleware"; -import { MiddlewareAPI } from "../../../node_modules/redux"; -import { DataColumns } from "../../components/data-table/data-table"; +import { MiddlewareAPI } from "redux"; +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("initializes columns in the store", () => { - const config = { - id: "Id", - columns: [{ - name: "Column", - selected: true, - render: jest.fn() - }], - requestItems: jest.fn(), - setApi: jest.fn() - }; - const service = new ServiceMock(config); - const api = { - getState: jest.fn(), - dispatch: jest.fn() - }; - const next = jest.fn(); - dataExplorerMiddleware(service)(api)(next); - expect(next) - .toHaveBeenCalledWith(dataExplorerActions.SET_COLUMNS({ id: service.getId(), columns: service.getColumns() })); - }); - it("handles only actions that are identified by service id", () => { const config = { id: "ServiceId", columns: [{ name: "Column", selected: true, + configurable: false, + sortDirection: SortDirection.NONE, + filters: createTree(), render: jest.fn() }], requestItems: jest.fn(), @@ -54,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); }); @@ -64,6 +48,9 @@ describe("DataExplorerMiddleware", () => { columns: [{ name: "Column", selected: true, + configurable: false, + sortDirection: SortDirection.NONE, + filters: createTree(), render: jest.fn() }], requestItems: jest.fn(), @@ -77,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", () => { @@ -130,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); }); @@ -184,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); }); @@ -206,7 +193,7 @@ describe("DataExplorerMiddleware", () => { middleware(dataExplorerActions.SET_ITEMS({ id: service.getId(), items: [], rowsPerPage: 0, itemsAvailable: 0, page: 0 })); middleware(dataExplorerActions.TOGGLE_COLUMN({ id: service.getId(), columnName: "" })); expect(api.dispatch).toHaveBeenCalledTimes(0); - expect(next).toHaveBeenCalledTimes(4); + expect(next).toHaveBeenCalledTimes(3); }); }); @@ -215,8 +202,7 @@ class ServiceMock extends DataExplorerMiddlewareService { constructor(private config: { id: string, columns: DataColumns, - requestItems: (api: MiddlewareAPI) => void; - setApi: () => void; + requestItems: (api: MiddlewareAPI) => Promise }) { super(config.id); } @@ -225,7 +211,8 @@ class ServiceMock extends DataExplorerMiddlewareService { return this.config.columns; } - requestItems(api: MiddlewareAPI) { + requestItems(api: MiddlewareAPI): Promise { this.config.requestItems(api); + return Promise.resolve(); } }