Skip to content

Commit 53b92b1

Browse files
committed
Clarify
1 parent 53d0f9b commit 53b92b1

File tree

1 file changed

+75
-73
lines changed

1 file changed

+75
-73
lines changed

packages/graphql-yoga/__integration-tests__/graphql-sse-client.spec.ts

Lines changed: 75 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -3,85 +3,87 @@ import { createClient } from 'graphql-sse'
33
import { createSchema, createYoga } from '../src'
44

55
describe('GraphQL SSE Client compatibility', () => {
6-
const yoga = createYoga({
7-
sse: {
8-
graphqlSSEDistinctConnections: true,
9-
},
10-
schema: createSchema({
11-
typeDefs: /* GraphQL */ `
12-
type Query {
13-
hello: String
14-
}
15-
type Subscription {
16-
greetings: String
17-
}
18-
`,
19-
resolvers: {
20-
Query: {
21-
hello: () => 'world',
22-
},
23-
Subscription: {
24-
greetings: {
25-
async *subscribe() {
26-
yield { greetings: 'Hi' }
27-
await new Promise((resolve) => setTimeout(resolve, 300))
28-
yield { greetings: 'Bonjour' }
29-
await new Promise((resolve) => setTimeout(resolve, 300))
30-
yield { greetings: 'Hola' }
31-
await new Promise((resolve) => setTimeout(resolve, 300))
32-
yield { greetings: 'Ciao' }
33-
await new Promise((resolve) => setTimeout(resolve, 300))
34-
yield { greetings: 'Hallo' }
6+
describe('Distinct Connections', () => {
7+
const yoga = createYoga({
8+
sse: {
9+
graphqlSSEDistinctConnections: true,
10+
},
11+
schema: createSchema({
12+
typeDefs: /* GraphQL */ `
13+
type Query {
14+
hello: String
15+
}
16+
type Subscription {
17+
greetings: String
18+
}
19+
`,
20+
resolvers: {
21+
Query: {
22+
hello: () => 'world',
23+
},
24+
Subscription: {
25+
greetings: {
26+
async *subscribe() {
27+
yield { greetings: 'Hi' }
28+
await new Promise((resolve) => setTimeout(resolve, 300))
29+
yield { greetings: 'Bonjour' }
30+
await new Promise((resolve) => setTimeout(resolve, 300))
31+
yield { greetings: 'Hola' }
32+
await new Promise((resolve) => setTimeout(resolve, 300))
33+
yield { greetings: 'Ciao' }
34+
await new Promise((resolve) => setTimeout(resolve, 300))
35+
yield { greetings: 'Hallo' }
36+
},
3537
},
3638
},
3739
},
38-
},
39-
}),
40-
})
41-
const client = createClient({
42-
url: 'http://localhost:4000/graphql',
43-
fetchFn: yoga.fetch,
44-
abortControllerImpl: yoga.fetchAPI.AbortController,
45-
retryAttempts: 0,
46-
})
47-
let unsubscribe: () => void
48-
afterAll(() => {
49-
unsubscribe?.()
50-
client.dispose()
51-
})
52-
it('handle queries', async () => {
53-
const result = await new Promise((resolve, reject) => {
54-
let result: ExecutionResult<Record<string, unknown>, unknown>
55-
unsubscribe = client.subscribe(
56-
{
57-
query: '{ hello }',
58-
},
59-
{
60-
next: (data) => (result = data),
61-
error: reject,
62-
complete: () => resolve(result),
63-
},
64-
)
40+
}),
6541
})
42+
const client = createClient({
43+
url: 'http://localhost:4000/graphql',
44+
fetchFn: yoga.fetch,
45+
abortControllerImpl: yoga.fetchAPI.AbortController,
46+
retryAttempts: 0,
47+
})
48+
let unsubscribe: () => void
49+
afterAll(() => {
50+
unsubscribe?.()
51+
client.dispose()
52+
})
53+
it('handle queries', async () => {
54+
const result = await new Promise((resolve, reject) => {
55+
let result: ExecutionResult<Record<string, unknown>, unknown>
56+
unsubscribe = client.subscribe(
57+
{
58+
query: '{ hello }',
59+
},
60+
{
61+
next: (data) => (result = data),
62+
error: reject,
63+
complete: () => resolve(result),
64+
},
65+
)
66+
})
6667

67-
expect(result).toEqual({ data: { hello: 'world' } })
68-
})
69-
it('handle subscriptions', async () => {
70-
const onNext = jest.fn()
71-
72-
await new Promise<void>((resolve, reject) => {
73-
unsubscribe = client.subscribe(
74-
{
75-
query: 'subscription { greetings }',
76-
},
77-
{
78-
next: onNext,
79-
error: reject,
80-
complete: resolve,
81-
},
82-
)
68+
expect(result).toEqual({ data: { hello: 'world' } })
8369
})
70+
it('handle subscriptions', async () => {
71+
const onNext = jest.fn()
8472

85-
expect(onNext).toBeCalledTimes(5) // we say "Hi" in 5 languages
73+
await new Promise<void>((resolve, reject) => {
74+
unsubscribe = client.subscribe(
75+
{
76+
query: 'subscription { greetings }',
77+
},
78+
{
79+
next: onNext,
80+
error: reject,
81+
complete: resolve,
82+
},
83+
)
84+
})
85+
86+
expect(onNext).toBeCalledTimes(5) // we say "Hi" in 5 languages
87+
})
8688
})
8789
})

0 commit comments

Comments
 (0)