diff --git a/packages/javascript-api/src/lib/services/graphql/__tests__/graphql-subscriptions.spec.ts b/packages/javascript-api/src/lib/services/graphql/__tests__/graphql-subscriptions.spec.ts index 5769301f..bc642763 100644 --- a/packages/javascript-api/src/lib/services/graphql/__tests__/graphql-subscriptions.spec.ts +++ b/packages/javascript-api/src/lib/services/graphql/__tests__/graphql-subscriptions.spec.ts @@ -898,17 +898,23 @@ describe('GraphQL subscriptions', () => { sendErrorMessages(); } - expect(subscriptionErrorSpy).toHaveBeenCalledWith( - expect.objectContaining({ + expect(subscriptionErrorSpy).toHaveBeenCalledWith< + [QminderGraphQLError[]] + >([ + { message: 'Subscription failed after 5 retries', - }), - ); + errorType: 'ERROR', + }, + ] satisfies QminderGraphQLError[]); - expect(subscription2ErrorSpy).toHaveBeenCalledWith( - expect.objectContaining({ + expect(subscription2ErrorSpy).toHaveBeenCalledWith< + [QminderGraphQLError[]] + >([ + { message: 'Subscription failed after 5 retries', - }), - ); + errorType: 'ERROR', + }, + ]); subscription.unsubscribe(); subscription2.unsubscribe(); diff --git a/packages/javascript-api/src/lib/services/graphql/graphql.service.ts b/packages/javascript-api/src/lib/services/graphql/graphql.service.ts index b030ee8d..8d5ed614 100644 --- a/packages/javascript-api/src/lib/services/graphql/graphql.service.ts +++ b/packages/javascript-api/src/lib/services/graphql/graphql.service.ts @@ -38,13 +38,13 @@ function parseQuery(queryOrDocumentNode: string | DocumentNode): string { } export interface QminderGraphQLError { - message: string; - errorType?: string | null; - extensions?: GraphQLErrorExtensions | null; - sourcePreview?: string | null; - offendingToken?: string | null; - locations?: SourceLocation[] | null; - path?: (string | number)[] | null; + readonly message: string; + readonly errorType?: string | null; + readonly extensions?: GraphQLErrorExtensions | null; + readonly sourcePreview?: string | null; + readonly offendingToken?: string | null; + readonly locations?: SourceLocation[] | null; + readonly path?: (string | number)[] | null; } interface Message { @@ -756,11 +756,12 @@ export class GraphqlService { const subscriber = this.messagesSubscribers.get(messageId); this.cleanUpSubscription(messageId); - subscriber?.error( - new Error( - `Subscription failed after ${this.retryableErroredSubscriptionsRetryCount} retries`, - ), - ); + subscriber?.error([ + { + message: `Subscription failed after ${this.retryableErroredSubscriptionsRetryCount} retries`, + errorType: 'ERROR', + }, + ] satisfies QminderGraphQLError[]); } }); }