Skip to content

Commit 711bf03

Browse files
committed
add one more case for type without cachecontrol implementing interface with cachecontrol
1 parent b66f889 commit 711bf03

File tree

2 files changed

+27
-2
lines changed

2 files changed

+27
-2
lines changed

.changeset/many-shirts-kneel.md

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
---
2+
---

packages/server/src/__tests__/plugin/cacheControl/cacheControlDirective.test.ts

+25-2
Original file line numberDiff line numberDiff line change
@@ -280,16 +280,22 @@ describe('@cacheControl directives', () => {
280280
it('interaction between type implementing interface, both with specified `maxAge`', async () => {
281281
const schema = buildSchemaWithCacheControlSupport(`
282282
type Query {
283-
droid(id: ID!): Droid
284283
named: Named
284+
droid(id: ID!): Droid
285+
alien(id: ID!): Alien
286+
}
287+
288+
interface Named @cacheControl(maxAge: 60) {
289+
name: String!
285290
}
286291
287292
type Droid implements Named @cacheControl(maxAge: 30) {
288293
id: ID!
289294
name: String!
290295
}
291296
292-
interface Named @cacheControl(maxAge: 60) {
297+
type Alien implements Named {
298+
id: ID!
293299
name: String!
294300
}
295301
`);
@@ -327,6 +333,23 @@ describe('@cacheControl directives', () => {
327333
expect(hintsDroid).toStrictEqual(
328334
new Map([['droid', { maxAge: 30, scope: undefined }]]),
329335
);
336+
337+
const hintsAlien = await collectCacheControlHints(
338+
schema,
339+
`
340+
query {
341+
alien(id: 3001) {
342+
id
343+
name
344+
}
345+
}
346+
`,
347+
{ defaultMaxAge: 10 },
348+
);
349+
350+
expect(hintsAlien).toStrictEqual(
351+
new Map([['alien', { maxAge: 10, scope: undefined }]]),
352+
);
330353
});
331354

332355
it('inheritMaxAge', async () => {

0 commit comments

Comments
 (0)