Skip to content

Commit 6724ae4

Browse files
committed
✅ Add tests and fix right schema headers
1 parent 62a1093 commit 6724ae4

File tree

2 files changed

+85
-1
lines changed

2 files changed

+85
-1
lines changed

src/__tests__/diff.test.ts

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,90 @@ describe('getDiff', () => {
2121
expect(result).toBeUndefined();
2222
});
2323

24+
it('fetches remote schemas with headers', async () => {
25+
nock(testRemoteSchemaLocation)
26+
.matchHeader('test', 'test')
27+
.post('', JSON.stringify({ query: introspectionQuery }))
28+
.twice()
29+
.reply(200, introspectionResponse);
30+
31+
const result = await getDiff(
32+
testRemoteSchemaLocation,
33+
testRemoteSchemaLocation,
34+
{
35+
headers: {
36+
Test: 'test'
37+
}
38+
}
39+
);
40+
expect(result).toBeUndefined();
41+
});
42+
43+
it('fetches remote schemas with left and right schema headers', async () => {
44+
const testRemoteRightSchemaLocation = 'http://testRight/graphql';
45+
nock(testRemoteSchemaLocation)
46+
.matchHeader('test', 'left')
47+
.post('', JSON.stringify({ query: introspectionQuery }))
48+
.reply(200, introspectionResponse);
49+
nock(testRemoteRightSchemaLocation)
50+
.matchHeader('test', 'right')
51+
.post('', JSON.stringify({ query: introspectionQuery }))
52+
.reply(200, introspectionResponse);
53+
54+
const result = await getDiff(
55+
testRemoteSchemaLocation,
56+
testRemoteRightSchemaLocation,
57+
{
58+
leftSchema: {
59+
headers: {
60+
Test: 'left'
61+
}
62+
},
63+
rightSchema: {
64+
headers: {
65+
Test: 'right'
66+
}
67+
}
68+
}
69+
);
70+
expect(result).toBeUndefined();
71+
});
72+
73+
it('fetches remote schemas with merged schema headers', async () => {
74+
const testRemoteRightSchemaLocation = 'http://testRight/graphql';
75+
nock(testRemoteSchemaLocation)
76+
.matchHeader('global', 'merged')
77+
.matchHeader('test', 'left')
78+
.post('', JSON.stringify({ query: introspectionQuery }))
79+
.reply(200, introspectionResponse);
80+
nock(testRemoteRightSchemaLocation)
81+
.matchHeader('global', 'merged')
82+
.matchHeader('test', 'right')
83+
.post('', JSON.stringify({ query: introspectionQuery }))
84+
.reply(200, introspectionResponse);
85+
86+
const result = await getDiff(
87+
testRemoteSchemaLocation,
88+
testRemoteRightSchemaLocation,
89+
{
90+
headers: {
91+
Global: 'merged',
92+
},
93+
leftSchema: {
94+
headers: {
95+
Test: 'left'
96+
}
97+
},
98+
rightSchema: {
99+
headers: {
100+
Test: 'right'
101+
}
102+
}
103+
}
104+
);
105+
expect(result).toBeUndefined();
106+
});
107+
24108
it('throws error on status codes other than 200', () => {
25109
nock(testRemoteSchemaLocation)
26110
.post('', JSON.stringify({ query: introspectionQuery }))

src/diff.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export async function getDiff(
9999
const rightSchemaOptions = {
100100
headers: {
101101
...options.headers,
102-
...(options.leftSchema && options.leftSchema.headers)
102+
...(options.rightSchema && options.rightSchema.headers)
103103
}
104104
};
105105
const [leftSchema, rightSchema] = await Promise.all([

0 commit comments

Comments
 (0)