cr changes + tests fix
authorPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Thu, 23 Aug 2018 13:01:18 +0000 (15:01 +0200)
committerPawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>
Thu, 23 Aug 2018 13:01:18 +0000 (15:01 +0200)
Feature #13897

Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk <pawel.kowalczyk@contractors.roche.com>

src/components/data-explorer/data-explorer.test.tsx
src/store/collection-copy-dialog/collection-copy-dialog.ts
src/views-components/copy-dialog/copy-collection-dialog.tsx
src/views-components/copy-dialog/copy-dialog.tsx

index a34ab1c8edfeaf97d4f01fb3a1ee51f8b200aad2..3e447b4015480091b66e6ee39f5b6d5560ea6cc6 100644 (file)
@@ -13,6 +13,7 @@ import { SearchInput } from "../search-input/search-input";
 import { TablePagination } from "@material-ui/core";
 import { ProjectIcon } from '../icon/icon';
 import { DefaultView } from '../default-view/default-view';
+import { SortDirection } from '../data-table/data-column';
 
 configure({ adapter: new Adapter() });
 
@@ -20,11 +21,13 @@ describe("<DataExplorer />", () => {
 
     it("communicates with <SearchInput/>", () => {
         const onSearch = jest.fn();
+        const onSetColumns = jest.fn();
         const dataExplorer = mount(<DataExplorer
             {...mockDataExplorerProps()}
             items={[{ name: "item 1" }]}
             searchValue="search value"
-            onSearch={onSearch} />);
+            onSearch={onSearch}
+            onSetColumns={onSetColumns} />);
         expect(dataExplorer.find(SearchInput).prop("value")).toEqual("search value");
         dataExplorer.find(SearchInput).prop("onSearch")("new value");
         expect(onSearch).toHaveBeenCalledWith("new value");
@@ -32,12 +35,14 @@ describe("<DataExplorer />", () => {
 
     it("communicates with <ColumnSelector/>", () => {
         const onColumnToggle = jest.fn();
-        const columns = [{ name: "Column 1", render: jest.fn(), selected: true, configurable: true }];
+        const onSetColumns = jest.fn();
+        const columns = [{ name: "Column 1", render: jest.fn(), selected: true, configurable: true, sortDirection: SortDirection.ASC, filters: [] }];
         const dataExplorer = mount(<DataExplorer
             {...mockDataExplorerProps()}
             columns={columns}
             onColumnToggle={onColumnToggle}
-            items={[{ name: "item 1" }]} />);
+            items={[{ name: "item 1" }]}
+            onSetColumns={onSetColumns} />);
         expect(dataExplorer.find(ColumnSelector).prop("columns")).toBe(columns);
         dataExplorer.find(ColumnSelector).prop("onColumnToggle")("columns");
         expect(onColumnToggle).toHaveBeenCalledWith("columns");
@@ -47,7 +52,8 @@ describe("<DataExplorer />", () => {
         const onFiltersChange = jest.fn();
         const onSortToggle = jest.fn();
         const onRowClick = jest.fn();
-        const columns = [{ name: "Column 1", render: jest.fn(), selected: true, configurable: true }];
+        const onSetColumns = jest.fn();
+        const columns = [{ name: "Column 1", render: jest.fn(), selected: true, configurable: true, sortDirection: SortDirection.ASC, filters: [] }];
         const items = [{ name: "item 1" }];
         const dataExplorer = mount(<DataExplorer
             {...mockDataExplorerProps()}
@@ -55,7 +61,8 @@ describe("<DataExplorer />", () => {
             items={items}
             onFiltersChange={onFiltersChange}
             onSortToggle={onSortToggle}
-            onRowClick={onRowClick} />);
+            onRowClick={onRowClick}
+            onSetColumns={onSetColumns} />);
         expect(dataExplorer.find(DataTable).prop("columns").slice(0, -1)).toEqual(columns);
         expect(dataExplorer.find(DataTable).prop("items")).toBe(items);
         dataExplorer.find(DataTable).prop("onRowClick")("event", "rowClick");
@@ -70,7 +77,7 @@ describe("<DataExplorer />", () => {
         const dataExplorer = mount(<DataExplorer
             {...mockDataExplorerProps()}
             items={[]}
-        />);
+            onSetColumns={jest.fn()} />);
         expect(dataExplorer.find(DataTable)).toHaveLength(0);
         expect(dataExplorer.find(DefaultView)).toHaveLength(1);
     });
@@ -78,6 +85,7 @@ describe("<DataExplorer />", () => {
     it("communicates with <TablePagination/>", () => {
         const onChangePage = jest.fn();
         const onChangeRowsPerPage = jest.fn();
+        const onSetColumns = jest.fn();
         const dataExplorer = mount(<DataExplorer
             {...mockDataExplorerProps()}
             items={[{ name: "item 1" }]}
@@ -85,7 +93,7 @@ describe("<DataExplorer />", () => {
             rowsPerPage={50}
             onChangePage={onChangePage}
             onChangeRowsPerPage={onChangeRowsPerPage}
-        />);
+            onSetColumns={onSetColumns} />);
         expect(dataExplorer.find(TablePagination).prop("page")).toEqual(10);
         expect(dataExplorer.find(TablePagination).prop("rowsPerPage")).toEqual(50);
         dataExplorer.find(TablePagination).prop("onChangePage")(undefined, 6);
@@ -114,5 +122,6 @@ const mockDataExplorerProps = () => ({
     onChangeRowsPerPage: jest.fn(),
     onContextMenu: jest.fn(),
     defaultIcon: ProjectIcon,
+    onSetColumns: jest.fn(),
     defaultMessages: ['testing'],
 });
index d2640633511073e00f36d11e4a82d4402d7d6424..458ae5e1b3b02bb9571747aa521b879205661394 100644 (file)
@@ -14,7 +14,7 @@ import { projectPanelActions } from '~/store/project-panel/project-panel-action'
 
 export const COLLECTION_COPY_DIALOG = 'projectCopy';
 
-export interface CopyFormDialogData {
+export interface CollectionCopyFormDialogData {
     name: string;
     ownerUuid: string;
     uuid: string;
@@ -23,12 +23,12 @@ export interface CopyFormDialogData {
 export const openCollectionCopyDialog = (resource: { name: string, uuid: string }) =>
     (dispatch: Dispatch) => {
         dispatch<any>(resetPickerProjectTree());
-        const initialData: CopyFormDialogData = { name: `Copy of: ${resource.name}`, ownerUuid: '', uuid: resource.uuid };
+        const initialData: CollectionCopyFormDialogData = { name: `Copy of: ${resource.name}`, ownerUuid: '', uuid: resource.uuid };
         dispatch<any>(initialize(COLLECTION_COPY_DIALOG, initialData));
         dispatch(dialogActions.OPEN_DIALOG({ id: COLLECTION_COPY_DIALOG, data: {} }));
     };
 
-export const copyCollection = (resource: CopyFormDialogData) =>
+export const copyCollection = (resource: CollectionCopyFormDialogData) =>
     async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => {
         dispatch(startSubmit(COLLECTION_COPY_DIALOG));
         try {
index db721e02389a78a401ddbac07269c3987e70512e..d9886221b2bb642a7d81183821f17ca984b01e23 100644 (file)
@@ -5,13 +5,13 @@
 import { compose } from "redux";
 import { withDialog } from "~/store/dialog/with-dialog";
 import { reduxForm } from 'redux-form';
-import { COLLECTION_COPY_DIALOG, CopyFormDialogData } from '~/store/collection-copy-dialog/collection-copy-dialog';
+import { COLLECTION_COPY_DIALOG, CollectionCopyFormDialogData } from '~/store/collection-copy-dialog/collection-copy-dialog';
 import { CopyFormDialog } from "~/views-components/copy-dialog/copy-dialog";
 import { copyCollection } from '~/store/collection-copy-dialog/collection-copy-dialog';
 
 export const CollectionCopyDialog = compose(
     withDialog(COLLECTION_COPY_DIALOG),
-    reduxForm<CopyFormDialogData>({
+    reduxForm<CollectionCopyFormDialogData>({
         form: COLLECTION_COPY_DIALOG,
         onSubmit: (data, dispatch) => {
             dispatch(copyCollection(data));
index c9b64869e7f22fc6f58af23a6a22a5793e93c9c6..3b1b4cf406026fd3e57b9cbcfe1e08af6d9b9153 100644 (file)
@@ -9,9 +9,9 @@ import { FormDialog } from '~/components/form-dialog/form-dialog';
 import { ProjectTreePickerField } from '~/views-components/project-tree-picker/project-tree-picker';
 import { COPY_NAME_VALIDATION, COPY_PROJECT_VALIDATION } from '~/validators/validators';
 import { TextField } from "~/components/text-field/text-field";
-import { CopyFormDialogData } from "~/store/collection-copy-dialog/collection-copy-dialog";
+import { CollectionCopyFormDialogData } from "~/store/collection-copy-dialog/collection-copy-dialog";
 
-type CopyFormDialogProps = WithDialogProps<string> & InjectedFormProps<CopyFormDialogData>;
+type CopyFormDialogProps = WithDialogProps<string> & InjectedFormProps<CollectionCopyFormDialogData>;
 
 export const CopyFormDialog = (props: CopyFormDialogProps) =>
     <FormDialog