Fix views integration tests (#14317)

Following https://github.com/twentyhq/twenty/pull/14202
This commit is contained in:
Paul Rastoin
2025-09-05 12:16:40 +02:00
committed by GitHub
parent 5824637d1a
commit 17c646f9d8
15 changed files with 102 additions and 141 deletions
@@ -40,6 +40,7 @@ describe('View Field Resolver', () => {
createOneObject: { id: objectMetadataId },
},
} = await createOneObjectMetadata({
expectToFail: false,
input: {
nameSingular: 'myFieldTestObject',
namePlural: 'myFieldTestObjects',
@@ -64,6 +65,7 @@ describe('View Field Resolver', () => {
createOneField: { id: fieldMetadataId },
},
} = await createOneFieldMetadata({
expectToFail: false,
input: createFieldInput,
gqlFields: `
id
@@ -78,8 +80,10 @@ describe('View Field Resolver', () => {
afterAll(async () => {
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: testObjectMetadataId },
});
await cleanupViewRecords();
});
beforeEach(async () => {
@@ -93,10 +97,6 @@ describe('View Field Resolver', () => {
testViewId = view.id;
});
afterAll(async () => {
await cleanupViewRecords();
});
describe('getCoreViewFields', () => {
it('should return empty array when no view fields exist', async () => {
const operation = findViewFieldsOperationFactory({ viewId: testViewId });
@@ -40,6 +40,7 @@ describe('View Filter Group Resolver', () => {
createOneObject: { id: objectMetadataId },
},
} = await createOneObjectMetadata({
expectToFail: false,
input: {
nameSingular: 'myFilterGroupTestObject',
namePlural: 'myFilterGroupTestObjects',
@@ -54,8 +55,10 @@ describe('View Filter Group Resolver', () => {
afterAll(async () => {
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: testObjectMetadataId },
});
await cleanupViewRecords();
});
beforeEach(async () => {
@@ -69,10 +72,6 @@ describe('View Filter Group Resolver', () => {
testViewId = view.id;
});
afterAll(async () => {
await cleanupViewRecords();
});
describe('getCoreViewFilterGroups', () => {
it('should return empty array when no view filter groups exist', async () => {
const operation = findViewFilterGroupsOperationFactory({
@@ -38,6 +38,7 @@ describe('View Filter Resolver', () => {
createOneObject: { id: objectMetadataId },
},
} = await createOneObjectMetadata({
expectToFail: false,
input: {
nameSingular: 'myFilterTestObject',
namePlural: 'myFilterTestObjects',
@@ -54,6 +55,7 @@ describe('View Filter Resolver', () => {
createOneField: { id: fieldMetadataId },
},
} = await createOneFieldMetadata({
expectToFail: false,
input: {
name: 'testField',
label: 'Test Field',
@@ -68,8 +70,10 @@ describe('View Filter Resolver', () => {
afterAll(async () => {
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: testObjectMetadataId },
});
await cleanupViewRecords();
});
beforeEach(async () => {
@@ -83,10 +87,6 @@ describe('View Filter Resolver', () => {
testViewId = view.id;
});
afterAll(async () => {
await cleanupViewRecords();
});
describe('getCoreViewFilters', () => {
it('should return empty array when no view filters exist', async () => {
const operation = findViewFiltersOperationFactory({ viewId: testViewId });
@@ -40,6 +40,7 @@ describe('View Group Resolver', () => {
createOneObject: { id: objectMetadataId },
},
} = await createOneObjectMetadata({
expectToFail: false,
input: {
nameSingular: 'myGroupTestObject',
namePlural: 'myGroupTestObjects',
@@ -56,6 +57,7 @@ describe('View Group Resolver', () => {
createOneField: { id: fieldMetadataId },
},
} = await createOneFieldMetadata({
expectToFail: false,
input: {
name: 'testField',
label: 'Test Field',
@@ -70,8 +72,10 @@ describe('View Group Resolver', () => {
afterAll(async () => {
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: testObjectMetadataId },
});
await cleanupViewRecords();
});
beforeEach(async () => {
@@ -85,10 +89,6 @@ describe('View Group Resolver', () => {
testViewId = view.id;
});
afterAll(async () => {
await cleanupViewRecords();
});
describe('getCoreViewGroups', () => {
it('should return empty array when no view groups exist', async () => {
const operation = findViewGroupsOperationFactory({ viewId: testViewId });
@@ -39,6 +39,7 @@ describe('View Resolver', () => {
createOneObject: { id: objectMetadataId },
},
} = await createOneObjectMetadata({
expectToFail: false,
input: {
nameSingular: 'myViewTestObject',
namePlural: 'myViewTestObjects',
@@ -53,15 +54,13 @@ describe('View Resolver', () => {
afterAll(async () => {
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: testObjectMetadataId },
});
});
beforeEach(async () => {
await cleanupViewRecords();
});
afterAll(async () => {
beforeEach(async () => {
await cleanupViewRecords();
});
@@ -41,6 +41,7 @@ describe('View Sort Resolver', () => {
createOneObject: { id: objectMetadataId },
},
} = await createOneObjectMetadata({
expectToFail: false,
input: {
nameSingular: 'mySortTestObject',
namePlural: 'mySortTestObjects',
@@ -57,6 +58,7 @@ describe('View Sort Resolver', () => {
createOneField: { id: fieldMetadataId },
},
} = await createOneFieldMetadata({
expectToFail: false,
input: {
name: 'testField',
label: 'Test Field',
@@ -71,8 +73,10 @@ describe('View Sort Resolver', () => {
afterAll(async () => {
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: testObjectMetadataId },
});
await cleanupViewRecords();
});
beforeEach(async () => {
@@ -86,10 +90,6 @@ describe('View Sort Resolver', () => {
testViewId = view.id;
});
afterAll(async () => {
await cleanupViewRecords();
});
describe('getCoreViewSorts', () => {
it('should return empty array when no view sorts exist', async () => {
const operation = findViewSortsOperationFactory({ viewId: testViewId });
@@ -53,13 +53,6 @@ exports[`update-one-field-metadata-related-record MULTI_SELECT should throw erro
]
`;
exports[`update-one-field-metadata-related-record MULTI_SELECT should update display value with options label if less than 3 options are selected 1`] = `
[
"OPTION_8",
"OPTION_9",
]
`;
exports[`update-one-field-metadata-related-record MULTI_SELECT should update related multi selected options view filter 1`] = `
[
"OPTION_0_UPDATED",
@@ -81,14 +74,6 @@ exports[`update-one-field-metadata-related-record MULTI_SELECT should update rel
]
`;
exports[`update-one-field-metadata-related-record MULTI_SELECT should update the display value on an option label change only 1`] = `
[
"OPTION_0",
"OPTION_1",
"OPTION_2",
]
`;
exports[`update-one-field-metadata-related-record SELECT should handle adding new options while maintaining existing view filter 1`] = `
[
"OPTION_0",
@@ -142,13 +127,6 @@ exports[`update-one-field-metadata-related-record SELECT should throw error if v
]
`;
exports[`update-one-field-metadata-related-record SELECT should update display value with options label if less than 3 options are selected 1`] = `
[
"OPTION_8",
"OPTION_9",
]
`;
exports[`update-one-field-metadata-related-record SELECT should update related multi selected options view filter 1`] = `
[
"OPTION_0_UPDATED",
@@ -169,11 +147,3 @@ exports[`update-one-field-metadata-related-record SELECT should update related s
"OPTION_5_UPDATED",
]
`;
exports[`update-one-field-metadata-related-record SELECT should update the display value on an option label change only 1`] = `
[
"OPTION_0",
"OPTION_1",
"OPTION_2",
]
`;
@@ -55,22 +55,25 @@ describe.each(fieldMetadataEnumTypes)(
});
afterAll(async () => {
await updateOneObjectMetadata({
expectToFail: false,
input: {
idToUpdate: createdObjectMetadataId,
updatePayload: { isActive: false },
},
});
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: createdObjectMetadataId },
});
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
});
try {
await updateOneObjectMetadata({
expectToFail: false,
input: {
idToUpdate: createdObjectMetadataId,
updatePayload: { isActive: false },
},
});
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: createdObjectMetadataId },
});
} finally {
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
});
}
});
test.each(eachTestingContextFilter(failingTestCases))(
@@ -90,27 +90,30 @@ describe.each(fieldMetadataEnumTypes)(
});
afterAll(async () => {
await updateOneObjectMetadata({
expectToFail: false,
input: {
idToUpdate: createdObjectMetadataId,
updatePayload: {
isActive: false,
try {
await updateOneObjectMetadata({
expectToFail: false,
input: {
idToUpdate: createdObjectMetadataId,
updatePayload: {
isActive: false,
},
},
},
});
});
await deleteOneObjectMetadata({
input: {
idToDelete: createdObjectMetadataId,
},
expectToFail: false,
});
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
});
await deleteOneObjectMetadata({
input: {
idToDelete: createdObjectMetadataId,
},
expectToFail: false,
});
} finally {
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
});
}
});
test.each(eachTestingContextFilter(failingTestCases))(
@@ -57,22 +57,25 @@ describe.each(fieldMetadataEnumTypes)(
});
afterAll(async () => {
await updateOneObjectMetadata({
expectToFail: false,
input: {
idToUpdate: createdObjectMetadataId,
updatePayload: { isActive: false },
},
});
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: createdObjectMetadataId },
});
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
});
try {
await updateOneObjectMetadata({
expectToFail: false,
input: {
idToUpdate: createdObjectMetadataId,
updatePayload: { isActive: false },
},
});
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: createdObjectMetadataId },
});
} finally {
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
});
}
});
beforeEach(() => {
@@ -4,13 +4,13 @@ import { createOneFieldMetadata } from 'test/integration/metadata/suites/field-m
import { deleteOneFieldMetadata } from 'test/integration/metadata/suites/field-metadata/utils/delete-one-field-metadata.util';
import { updateOneFieldMetadata } from 'test/integration/metadata/suites/field-metadata/utils/update-one-field-metadata.util';
import { CUSTOM_OBJECT_DISHES } from 'test/integration/metadata/suites/object-metadata/constants/custom-object-dishes.constants';
import { createOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/create-one-object-metadata.util';
import { deleteOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/delete-one-object-metadata.util';
import { updateOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/update-one-object-metadata.util';
import { updateFeatureFlag } from 'test/integration/metadata/suites/utils/update-feature-flag.util';
import { eachTestingContextFilter } from 'twenty-shared/testing';
import { FieldMetadataType } from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { createOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/create-one-object-metadata.util';
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
import {
@@ -76,22 +76,25 @@ describe.each(fieldMetadataEnumTypes)(
});
afterAll(async () => {
await updateOneObjectMetadata({
expectToFail: false,
input: {
idToUpdate: createdObjectMetadataId,
updatePayload: { isActive: false },
},
});
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: createdObjectMetadataId },
});
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
});
try {
await updateOneObjectMetadata({
expectToFail: false,
input: {
idToUpdate: createdObjectMetadataId,
updatePayload: { isActive: false },
},
});
await deleteOneObjectMetadata({
expectToFail: false,
input: { idToDelete: createdObjectMetadataId },
});
} finally {
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
});
}
});
beforeEach(async () => {
@@ -436,7 +436,6 @@ describe('failing createOne FieldMetadataService morph relation fields v2', () =
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
workspaceId: SEED_APPLE_WORKSPACE_ID,
});
}
});
@@ -181,7 +181,6 @@ describe('successful createOne FieldMetadataService morph relation fields v2', (
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
workspaceId: SEED_APPLE_WORKSPACE_ID,
});
}
});
@@ -104,7 +104,6 @@ describe('updateOne FieldMetadataService morph relation fields v2', () => {
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
workspaceId: SEED_APPLE_WORKSPACE_ID,
});
}
});
@@ -4,7 +4,6 @@ import { updateOneFieldMetadata } from 'test/integration/metadata/suites/field-m
import { createOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/create-one-object-metadata.util';
import { deleteOneObjectMetadata } from 'test/integration/metadata/suites/object-metadata/utils/delete-one-object-metadata.util';
import { getMockCreateObjectInput } from 'test/integration/metadata/suites/object-metadata/utils/generate-mock-create-object-metadata-input';
import { updateFeatureFlag } from 'test/integration/metadata/suites/utils/update-feature-flag.util';
import {
createTestViewFilterWithRestApi,
createTestViewWithRestApi,
@@ -17,7 +16,6 @@ import {
} from 'twenty-shared/types';
import { isDefined } from 'twenty-shared/utils';
import { FeatureFlagKey } from 'src/engine/core-modules/feature-flag/enums/feature-flag-key.enum';
import { ViewFilterOperand } from 'src/engine/core-modules/view/enums/view-filter-operand';
import { ViewType } from 'src/engine/core-modules/view/enums/view-type.enum';
import { type ViewFilterValue } from 'src/engine/core-modules/view/types/view-filter-value.type';
@@ -25,7 +23,6 @@ import {
type FieldMetadataComplexOption,
type FieldMetadataDefaultOption,
} from 'src/engine/metadata-modules/field-metadata/dtos/options.input';
import { SEED_APPLE_WORKSPACE_ID } from 'src/engine/workspace-manager/dev-seeder/core/utils/seed-workspaces.util';
type Option = FieldMetadataDefaultOption | FieldMetadataComplexOption;
@@ -76,13 +73,6 @@ describe('update-one-field-metadata-related-record', () => {
options,
type: fieldMetadataType,
}: FieldMetadataOptionsAndType) => {
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: false,
workspaceId: SEED_APPLE_WORKSPACE_ID,
});
const singular = faker.lorem.words();
const plural = singular + faker.lorem.word();
const {
@@ -127,12 +117,6 @@ describe('update-one-field-metadata-related-record', () => {
};
afterEach(async () => {
await updateFeatureFlag({
expectToFail: false,
featureFlag: FeatureFlagKey.IS_WORKSPACE_MIGRATION_V2_ENABLED,
value: true,
workspaceId: SEED_APPLE_WORKSPACE_ID,
});
if (isDefined(idToDelete)) {
await deleteOneObjectMetadata({
input: { idToDelete: idToDelete },