add integration test on global search resolver (#11007)

closes https://github.com/twentyhq/core-team-issues/issues/580
This commit is contained in:
Etienne
2025-03-19 14:22:02 +01:00
committed by GitHub
parent d59c989ecd
commit b8b00e5398
7 changed files with 342 additions and 3 deletions

View File

@ -0,0 +1,49 @@
import gql from 'graphql-tag';
import { ObjectRecordFilterInput } from 'src/engine/core-modules/global-search/dtos/object-record-filter-input';
export type GlobalSearchFactoryParams = {
searchInput: string;
excludedObjectNameSingulars?: string[];
includedObjectNameSingulars?: string[];
filter?: ObjectRecordFilterInput;
};
export const globalSearchFactory = ({
searchInput,
excludedObjectNameSingulars,
includedObjectNameSingulars,
filter,
}: GlobalSearchFactoryParams) => ({
query: gql`
query GlobalSearch(
$searchInput: String!
$limit: Int!
$excludedObjectNameSingulars: [String!]
$includedObjectNameSingulars: [String!]
$filter: ObjectRecordFilterInput
) {
globalSearch(
searchInput: $searchInput
limit: $limit
excludedObjectNameSingulars: $excludedObjectNameSingulars
includedObjectNameSingulars: $includedObjectNameSingulars
filter: $filter
) {
recordId
objectSingularName
label
imageUrl
tsRankCD
tsRank
}
}
`,
variables: {
searchInput,
limit: 30,
excludedObjectNameSingulars,
includedObjectNameSingulars,
filter,
},
});

View File

@ -0,0 +1,26 @@
import { randomUUID } from 'crypto';
import { createManyOperationFactory } from 'test/integration/graphql/utils/create-many-operation-factory.util';
import { makeGraphqlAPIRequest } from 'test/integration/graphql/utils/make-graphql-api-request.util';
import { capitalize } from 'twenty-shared';
export const performCreateManyOperation = async (
objectMetadataSingularName: string,
objectMetadataPluralName: string,
gqlFields: string,
data: object[],
) => {
const response = await makeGraphqlAPIRequest(
createManyOperationFactory({
objectMetadataSingularName,
objectMetadataPluralName,
gqlFields,
data: data.map((item) => ({
id: randomUUID(),
...item,
})),
}),
);
return response.body.data[`create${capitalize(objectMetadataPluralName)}`];
};