Refactor Views by cleaning the code, relying on apolloCache and improving performances (#4516)

* Wip refactoring view

* Post merge conflicts

* Fix review

* Add create view capability

* Fix create object missing view

* Fix tests
This commit is contained in:
Charles Bochet
2024-03-20 14:21:58 +01:00
committed by GitHub
parent 20e14cb455
commit cfb0cce9b8
392 changed files with 3474 additions and 4410 deletions
@@ -12,7 +12,7 @@ import { mapViewFiltersToFilters } from '@/views/utils/mapViewFiltersToFilters';
import { mapViewSortsToSorts } from '@/views/utils/mapViewSortsToSorts';
const baseDefinition = {
fieldMetadataId: 'fieldMetadataId',
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
label: 'label',
iconName: 'iconName',
};
@@ -21,20 +21,22 @@ describe('mapViewSortsToSorts', () => {
it('should map each ViewSort object to a corresponding Sort object', () => {
const viewSorts: ViewSort[] = [
{
__typename: 'ViewSort',
id: 'id',
fieldMetadataId: 'fieldMetadataId',
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
direction: 'asc',
definition: baseDefinition,
},
];
const expectedSorts: Sort[] = [
{
fieldMetadataId: 'fieldMetadataId',
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
direction: 'asc',
definition: baseDefinition,
},
];
expect(mapViewSortsToSorts(viewSorts)).toEqual(expectedSorts);
expect(mapViewSortsToSorts(viewSorts, [baseDefinition])).toEqual(
expectedSorts,
);
});
});
@@ -42,20 +44,17 @@ describe('mapViewFiltersToFilters', () => {
it('should map each ViewFilter object to a corresponding Filter object', () => {
const viewFilters: ViewFilter[] = [
{
__typename: 'ViewFilter',
id: 'id',
fieldMetadataId: '1',
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
value: 'testValue',
displayValue: 'Test Display Value',
operand: ViewFilterOperand.Is,
definition: {
...baseDefinition,
type: 'FULL_NAME',
},
},
];
const expectedFilters: Filter[] = [
{
fieldMetadataId: '1',
fieldMetadataId: '05731f68-6e7a-4903-8374-c0b6a9063482',
value: 'testValue',
displayValue: 'Test Display Value',
operand: ViewFilterOperand.Is,
@@ -65,7 +64,14 @@ describe('mapViewFiltersToFilters', () => {
},
},
];
expect(mapViewFiltersToFilters(viewFilters)).toEqual(expectedFilters);
expect(
mapViewFiltersToFilters(viewFilters, [
{
...baseDefinition,
type: 'FULL_NAME',
},
]),
).toEqual(expectedFilters);
});
});
@@ -73,6 +79,7 @@ describe('mapViewFieldsToColumnDefinitions', () => {
it('should map visible ViewFields to ColumnDefinitions and filter out missing fieldMetadata', () => {
const viewFields: ViewField[] = [
{
__typename: 'ViewField',
id: '1',
fieldMetadataId: '1',
position: 1,
@@ -92,6 +99,7 @@ describe('mapViewFieldsToColumnDefinitions', () => {
},
},
{
__typename: 'ViewField',
id: '2',
fieldMetadataId: '2',
position: 2,
@@ -111,6 +119,7 @@ describe('mapViewFieldsToColumnDefinitions', () => {
},
},
{
__typename: 'ViewField',
id: '3',
fieldMetadataId: '3',
position: 3,
@@ -209,13 +218,16 @@ describe('mapColumnDefinitionsToViewFields', () => {
const expectedViewFields = [
{
__typename: 'ViewField',
id: 'custom-id-1',
fieldMetadataId: 1,
position: 1,
isVisible: true,
definition: columnDefinitions[0],
size: undefined,
},
{
__typename: 'ViewField',
id: '',
fieldMetadataId: 2,
position: 2,