## Context View tables were missing some FK, we are also introducing delete cascade on those tables when needed to leverage pg cascade deletion instead of having to implement it. Also renaming those classes with Entity suffix to follow repo guidelines.
243 lines
6.6 KiB
TypeScript
243 lines
6.6 KiB
TypeScript
import {
|
|
TEST_FIELD_METADATA_1_ID,
|
|
TEST_OBJECT_METADATA_1_ID,
|
|
TEST_VIEW_1_ID,
|
|
} from 'test/integration/constants/test-view-ids.constants';
|
|
import { makeRestAPIRequest } from 'test/integration/rest/utils/make-rest-api-request.util';
|
|
import { generateRecordName } from 'test/integration/utils/generate-record-name';
|
|
|
|
import { type ViewFieldEntity } from 'src/engine/core-modules/view/entities/view-field.entity';
|
|
import { type ViewFilterGroupEntity } from 'src/engine/core-modules/view/entities/view-filter-group.entity';
|
|
import { type ViewFilterEntity } from 'src/engine/core-modules/view/entities/view-filter.entity';
|
|
import { type ViewGroupEntity } from 'src/engine/core-modules/view/entities/view-group.entity';
|
|
import { type ViewSortEntity } from 'src/engine/core-modules/view/entities/view-sort.entity';
|
|
import { type ViewEntity } from 'src/engine/core-modules/view/entities/view.entity';
|
|
import { ViewOpenRecordIn } from 'src/engine/core-modules/view/enums/view-open-record-in';
|
|
import { ViewType } from 'src/engine/core-modules/view/enums/view-type.enum';
|
|
|
|
export const createTestViewWithRestApi = async (
|
|
overrides: Partial<ViewEntity> = {},
|
|
): Promise<ViewEntity> => {
|
|
const viewData = {
|
|
id: TEST_VIEW_1_ID,
|
|
name: generateRecordName('Test View'),
|
|
objectMetadataId: TEST_OBJECT_METADATA_1_ID,
|
|
icon: 'IconTable',
|
|
type: ViewType.TABLE,
|
|
key: 'INDEX',
|
|
position: 0,
|
|
isCompact: false,
|
|
openRecordIn: ViewOpenRecordIn.SIDE_PANEL,
|
|
...overrides,
|
|
};
|
|
|
|
const response = await makeRestAPIRequest({
|
|
method: 'post',
|
|
path: '/metadata/views',
|
|
body: viewData,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
});
|
|
|
|
if (response.status !== 201) {
|
|
throw new Error(
|
|
`Failed to create test view: ${response.status} - ${JSON.stringify(response.body)}`,
|
|
);
|
|
}
|
|
|
|
return response.body;
|
|
};
|
|
|
|
export const createTestViewFieldWithRestApi = async (
|
|
overrides: Partial<ViewFieldEntity> = {},
|
|
): Promise<ViewFieldEntity> => {
|
|
const viewFieldData = {
|
|
viewId: TEST_VIEW_1_ID,
|
|
fieldMetadataId: TEST_FIELD_METADATA_1_ID,
|
|
position: 0,
|
|
isVisible: true,
|
|
size: 150,
|
|
...overrides,
|
|
};
|
|
|
|
const response = await makeRestAPIRequest({
|
|
method: 'post',
|
|
path: '/metadata/viewFields',
|
|
body: viewFieldData,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
});
|
|
|
|
if (response.status !== 201) {
|
|
throw new Error(
|
|
`Failed to create test view field: ${response.status} - ${JSON.stringify(response.body)}`,
|
|
);
|
|
}
|
|
|
|
return response.body;
|
|
};
|
|
|
|
export const createTestViewFilterWithRestApi = async (
|
|
overrides: Partial<ViewFilterEntity> = {},
|
|
): Promise<ViewFilterEntity> => {
|
|
const viewFilterData = {
|
|
viewId: TEST_VIEW_1_ID,
|
|
fieldMetadataId: TEST_FIELD_METADATA_1_ID,
|
|
operand: 'Is',
|
|
value: 'test-value',
|
|
...overrides,
|
|
};
|
|
|
|
const response = await makeRestAPIRequest({
|
|
method: 'post',
|
|
path: '/metadata/viewFilters',
|
|
body: viewFilterData,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
});
|
|
|
|
if (response.status !== 201) {
|
|
throw new Error(
|
|
`Failed to create test view filter: ${response.status} - ${JSON.stringify(response.body)}`,
|
|
);
|
|
}
|
|
|
|
return response.body;
|
|
};
|
|
|
|
export const createTestViewSortWithRestApi = async (
|
|
overrides: Partial<ViewSortEntity> = {},
|
|
): Promise<ViewSortEntity> => {
|
|
const viewSortData = {
|
|
viewId: TEST_VIEW_1_ID,
|
|
fieldMetadataId: TEST_FIELD_METADATA_1_ID,
|
|
direction: 'ASC',
|
|
...overrides,
|
|
};
|
|
|
|
const response = await makeRestAPIRequest({
|
|
method: 'post',
|
|
path: '/metadata/viewSorts',
|
|
body: viewSortData,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
});
|
|
|
|
if (response.status !== 201) {
|
|
throw new Error(
|
|
`Failed to create test view sort: ${response.status} - ${JSON.stringify(response.body)}`,
|
|
);
|
|
}
|
|
|
|
return response.body;
|
|
};
|
|
|
|
export const createTestViewGroupWithRestApi = async (
|
|
overrides: Partial<ViewGroupEntity> = {},
|
|
): Promise<ViewGroupEntity> => {
|
|
const viewGroupData = {
|
|
viewId: TEST_VIEW_1_ID,
|
|
fieldMetadataId: TEST_FIELD_METADATA_1_ID,
|
|
isVisible: true,
|
|
fieldValue: 'test-group-value',
|
|
position: 0,
|
|
...overrides,
|
|
};
|
|
|
|
const response = await makeRestAPIRequest({
|
|
method: 'post',
|
|
path: '/metadata/viewGroups',
|
|
body: viewGroupData,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
});
|
|
|
|
if (response.status !== 201) {
|
|
throw new Error(
|
|
`Failed to create test view group: ${response.status} - ${JSON.stringify(response.body)}`,
|
|
);
|
|
}
|
|
|
|
return response.body;
|
|
};
|
|
|
|
export const createTestViewFilterGroupWithRestApi = async (
|
|
overrides: Partial<ViewFilterGroupEntity> = {},
|
|
): Promise<ViewFilterGroupEntity> => {
|
|
const viewFilterGroupData = {
|
|
viewId: TEST_VIEW_1_ID,
|
|
logicalOperator: 'AND',
|
|
...overrides,
|
|
};
|
|
|
|
const response = await makeRestAPIRequest({
|
|
method: 'post',
|
|
path: '/metadata/viewFilterGroups',
|
|
body: viewFilterGroupData,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
});
|
|
|
|
if (response.status !== 201) {
|
|
throw new Error(
|
|
`Failed to create test view filter group: ${response.status} - ${JSON.stringify(response.body)}`,
|
|
);
|
|
}
|
|
|
|
return response.body;
|
|
};
|
|
|
|
export const deleteTestViewWithRestApi = async (
|
|
viewId: string,
|
|
): Promise<void> => {
|
|
await makeRestAPIRequest({
|
|
method: 'delete',
|
|
path: `/metadata/views/${viewId}`,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
}).catch(() => {});
|
|
};
|
|
|
|
export const deleteTestViewFieldWithRestApi = async (
|
|
viewFieldId: string,
|
|
): Promise<void> => {
|
|
await makeRestAPIRequest({
|
|
method: 'delete',
|
|
path: `/metadata/viewFields/${viewFieldId}`,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
}).catch(() => {});
|
|
};
|
|
|
|
export const deleteTestViewFilterWithRestApi = async (
|
|
viewFilterId: string,
|
|
): Promise<void> => {
|
|
await makeRestAPIRequest({
|
|
method: 'delete',
|
|
path: `/metadata/viewFilters/${viewFilterId}`,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
}).catch(() => {});
|
|
};
|
|
|
|
export const deleteTestViewSortWithRestApi = async (
|
|
viewSortId: string,
|
|
): Promise<void> => {
|
|
await makeRestAPIRequest({
|
|
method: 'delete',
|
|
path: `/metadata/viewSorts/${viewSortId}`,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
}).catch(() => {});
|
|
};
|
|
|
|
export const deleteTestViewGroupWithRestApi = async (
|
|
viewGroupId: string,
|
|
): Promise<void> => {
|
|
await makeRestAPIRequest({
|
|
method: 'delete',
|
|
path: `/metadata/viewGroups/${viewGroupId}`,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
}).catch(() => {});
|
|
};
|
|
|
|
export const deleteTestViewFilterGroupWithRestApi = async (
|
|
viewFilterGroupId: string,
|
|
): Promise<void> => {
|
|
await makeRestAPIRequest({
|
|
method: 'delete',
|
|
path: `/metadata/viewFilterGroups/${viewFilterGroupId}`,
|
|
bearer: APPLE_JANE_ADMIN_ACCESS_TOKEN,
|
|
}).catch(() => {});
|
|
};
|