From 7eaa1988dddf25497a75641a713a85909706aede Mon Sep 17 00:00:00 2001
From: pkupczyk <piotr.kupczyk@id.ethz.ch>
Date: Thu, 11 Nov 2021 13:15:41 +0100
Subject: [PATCH] SSDM-11664 : NG UI & ELN : common table widget - fix some of
 the automated tests

---
 .../src/js/components/common/grid/Grid.jsx         |  6 ++++--
 .../srcTest/js/components/common/ComponentTest.js  |  2 ++
 .../common/grid/wrapper/GridColumnWrapper.js       |  8 ++++----
 ...ColumnFilterWrapper.js => GridFilterWrapper.js} |  0
 ...dColumnLabelWrapper.js => GridHeaderWrapper.js} |  0
 .../components/common/grid/wrapper/GridWrapper.js  |  8 ++++----
 openbis_ng_ui/srcTest/js/services/openbis/api.js   | 14 ++++++++++++++
 openbis_ng_ui/srcTest/js/services/openbis/dto.js   |  2 ++
 8 files changed, 30 insertions(+), 10 deletions(-)
 rename openbis_ng_ui/srcTest/js/components/common/grid/wrapper/{GridColumnFilterWrapper.js => GridFilterWrapper.js} (100%)
 rename openbis_ng_ui/srcTest/js/components/common/grid/wrapper/{GridColumnLabelWrapper.js => GridHeaderWrapper.js} (100%)

diff --git a/openbis_ng_ui/src/js/components/common/grid/Grid.jsx b/openbis_ng_ui/src/js/components/common/grid/Grid.jsx
index 8ee9c5bafa8..f0c8a2efeae 100644
--- a/openbis_ng_ui/src/js/components/common/grid/Grid.jsx
+++ b/openbis_ng_ui/src/js/components/common/grid/Grid.jsx
@@ -167,9 +167,11 @@ class Grid extends React.PureComponent {
                           key={row.id}
                           columns={visibleColumns}
                           row={row}
-                          clickable={!!onRowClick}
+                          clickable={onRowClick ? true : false}
                           selectable={selectable}
-                          selected={selectedRow && selectedRow.id === row.id}
+                          selected={
+                            selectedRow ? selectedRow.id === row.id : false
+                          }
                           multiselectable={multiselectable}
                           multiselected={
                             multiselectedRows && multiselectedRows[row.id]
diff --git a/openbis_ng_ui/srcTest/js/components/common/ComponentTest.js b/openbis_ng_ui/srcTest/js/components/common/ComponentTest.js
index f69367e18f2..c1ba7f33f0c 100644
--- a/openbis_ng_ui/srcTest/js/components/common/ComponentTest.js
+++ b/openbis_ng_ui/srcTest/js/components/common/ComponentTest.js
@@ -3,6 +3,7 @@ import { Provider } from 'react-redux'
 import { mount } from 'enzyme'
 import { createStore } from '@src/js/store/store.js'
 import ThemeProvider from '@srcTest/js/components/common/theme/ThemeProvider.jsx'
+import openbis from '@srcTest/js/services/openbis.js'
 import actions from '@src/js/store/actions/actions.js'
 
 export default class ComponentTest {
@@ -14,6 +15,7 @@ export default class ComponentTest {
 
   beforeEach() {
     jest.resetAllMocks()
+    openbis.mockGetMe()
     this.store = createStore()
     this.store.dispatch(actions.init())
   }
diff --git a/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridColumnWrapper.js b/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridColumnWrapper.js
index 057547e54bf..0451a203531 100644
--- a/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridColumnWrapper.js
+++ b/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridColumnWrapper.js
@@ -1,6 +1,6 @@
 import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js'
-import GridColumnLabelWrapper from '@srcTest/js/components/common/grid/wrapper/GridColumnLabelWrapper.js'
-import GridColumnFilterWrapper from '@srcTest/js/components/common/grid/wrapper/GridColumnFilterWrapper.js'
+import GridHeaderWrapper from '@srcTest/js/components/common/grid/wrapper/GridHeaderWrapper.js'
+import GridFilterWrapper from '@srcTest/js/components/common/grid/wrapper/GridFilterWrapper.js'
 
 export default class GridColumnWrapper extends BaseWrapper {
   constructor(column, labelWrapper, filterWrapper, sortWrapper) {
@@ -16,11 +16,11 @@ export default class GridColumnWrapper extends BaseWrapper {
   }
 
   getLabel() {
-    return new GridColumnLabelWrapper(this.labelWrapper)
+    return new GridHeaderWrapper(this.labelWrapper)
   }
 
   getFilter() {
-    return new GridColumnFilterWrapper(this.filterWrapper)
+    return new GridFilterWrapper(this.filterWrapper)
   }
 
   getSort() {
diff --git a/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridColumnFilterWrapper.js b/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridFilterWrapper.js
similarity index 100%
rename from openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridColumnFilterWrapper.js
rename to openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridFilterWrapper.js
diff --git a/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridColumnLabelWrapper.js b/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridHeaderWrapper.js
similarity index 100%
rename from openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridColumnLabelWrapper.js
rename to openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridHeaderWrapper.js
diff --git a/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridWrapper.js b/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridWrapper.js
index 7bd97bbaba6..14a7c6223a7 100644
--- a/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridWrapper.js
+++ b/openbis_ng_ui/srcTest/js/components/common/grid/wrapper/GridWrapper.js
@@ -2,8 +2,8 @@ import BaseWrapper from '@srcTest/js/components/common/wrapper/BaseWrapper.js'
 import TableSortLabel from '@material-ui/core/TableSortLabel'
 import GridPaging from '@src/js/components/common/grid/GridPaging.jsx'
 import GridPagingWrapper from '@srcTest/js/components/common/grid/wrapper/GridPagingWrapper.js'
-import GridHeaderLabel from '@src/js/components/common/grid/GridHeaderLabel.jsx'
-import GridHeaderFilter from '@src/js/components/common/grid/GridHeaderFilter.jsx'
+import GridHeader from '@src/js/components/common/grid/GridHeader.jsx'
+import GridFilter from '@src/js/components/common/grid/GridFilter.jsx'
 import GridRow from '@src/js/components/common/grid/GridRow.jsx'
 import GridRowWrapper from '@srcTest/js/components/common/grid/wrapper/GridRowWrapper.js'
 import GridColumnWrapper from '@srcTest/js/components/common/grid/wrapper/GridColumnWrapper.js'
@@ -12,8 +12,8 @@ export default class GridWrapper extends BaseWrapper {
   getColumns() {
     const columns = this.wrapper.prop('columns')
 
-    const labels = this.findComponent(GridHeaderLabel)
-    const filters = this.findComponent(GridHeaderFilter)
+    const labels = this.findComponent(GridHeader)
+    const filters = this.findComponent(GridFilter)
     const sorts = this.findComponent(TableSortLabel)
 
     return columns.map((column, index) => {
diff --git a/openbis_ng_ui/srcTest/js/services/openbis/api.js b/openbis_ng_ui/srcTest/js/services/openbis/api.js
index dfa397a372b..a4d4d21cf3e 100644
--- a/openbis_ng_ui/srcTest/js/services/openbis/api.js
+++ b/openbis_ng_ui/srcTest/js/services/openbis/api.js
@@ -44,6 +44,19 @@ const updateMaterialTypes = jest.fn()
 const updatePersons = jest.fn()
 const updateSampleTypes = jest.fn()
 
+const mockGetMe = me => {
+  const map = {}
+
+  let person = me
+  if (!person) {
+    person = new dto.Person()
+    person.setWebAppSettings({})
+  }
+  map[new dto.Me()] = person
+
+  getPersons.mockReturnValue(Promise.resolve(map))
+}
+
 const mockSearchGroups = groups => {
   const searchGroupsResult = new dto.SearchResult()
   searchGroupsResult.setObjects(groups)
@@ -156,6 +169,7 @@ export default {
   updateMaterialTypes,
   updatePersons,
   updateSampleTypes,
+  mockGetMe,
   mockSearchDataSetTypes,
   mockSearchExperimentTypes,
   mockSearchGroups,
diff --git a/openbis_ng_ui/srcTest/js/services/openbis/dto.js b/openbis_ng_ui/srcTest/js/services/openbis/dto.js
index da30d429d3c..ec719478cee 100644
--- a/openbis_ng_ui/srcTest/js/services/openbis/dto.js
+++ b/openbis_ng_ui/srcTest/js/services/openbis/dto.js
@@ -64,6 +64,7 @@ import MaterialTypeDeletionOptions from 'as/dto/material/delete/MaterialTypeDele
 import MaterialTypeFetchOptions from 'as/dto/material/fetchoptions/MaterialTypeFetchOptions'
 import MaterialTypeSearchCriteria from 'as/dto/material/search/MaterialTypeSearchCriteria'
 import MaterialTypeUpdate from 'as/dto/material/update/MaterialTypeUpdate'
+import Me from 'as/dto/person/id/Me'
 import Person from 'as/dto/person/Person'
 import PersonCreation from 'as/dto/person/create/PersonCreation'
 import PersonDeletionOptions from 'as/dto/person/delete/PersonDeletionOptions'
@@ -235,6 +236,7 @@ const dto = {
   MaterialTypeFetchOptions,
   MaterialTypeSearchCriteria,
   MaterialTypeUpdate,
+  Me,
   Person,
   PersonCreation,
   PersonDeletionOptions,
-- 
GitLab