Forcing "type" to be explicit, works best will rollup on the frontend to exclude depdendencies
41 lines
1.3 KiB
TypeScript
41 lines
1.3 KiB
TypeScript
import { findOneOperationFactory } from 'test/integration/graphql/utils/find-one-operation-factory.util';
|
|
import { makeGraphqlAPIRequest } from 'test/integration/graphql/utils/make-graphql-api-request.util';
|
|
import { type CommonResponseBody } from 'test/integration/metadata/types/common-response-body.type';
|
|
import { warnIfNoErrorButExpectedToFail } from 'test/integration/metadata/utils/warn-if-no-error-but-expected-to-fail.util';
|
|
|
|
import { type ObjectRecord } from 'src/engine/api/graphql/workspace-query-builder/interfaces/object-record.interface';
|
|
|
|
type FindOneOperationArgs = Parameters<typeof findOneOperationFactory>[0] & {
|
|
expectToFail?: boolean;
|
|
};
|
|
export const findOneOperation = async ({
|
|
gqlFields = 'id',
|
|
objectMetadataSingularName,
|
|
expectToFail = false,
|
|
filter,
|
|
}: FindOneOperationArgs): CommonResponseBody<{
|
|
findResponse: ObjectRecord;
|
|
}> => {
|
|
const graphqlOperation = findOneOperationFactory({
|
|
objectMetadataSingularName,
|
|
gqlFields,
|
|
filter,
|
|
});
|
|
|
|
const response = await makeGraphqlAPIRequest(graphqlOperation);
|
|
|
|
if (expectToFail) {
|
|
warnIfNoErrorButExpectedToFail({
|
|
response,
|
|
errorMessage: 'Find one operation should have failed but did not',
|
|
});
|
|
}
|
|
|
|
return {
|
|
data: {
|
|
findResponse: response.body.data[objectMetadataSingularName],
|
|
},
|
|
errors: response.body.errors,
|
|
};
|
|
};
|