Skip to content

Commit 915378e

Browse files
committed
fix: ignore cache-only queries, which don't support refetch
1 parent 84edb1a commit 915378e

File tree

2 files changed

+47
-0
lines changed

2 files changed

+47
-0
lines changed

src/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ export default async function refetch(
6262
for (let query of queries.values()) {
6363
const { document, observableQuery } = query
6464
if (!observableQuery) continue
65+
if (observableQuery.options.fetchPolicy === 'cache-only') continue
6566
let data
6667
const currentResult = observableQuery.currentResult()
6768
if (currentResult) data = currentResult.data

test/integration.js

+46
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,52 @@ describe(`integration test`, function() {
140140
expect(error).to.exist
141141
})
142142

143+
it(`ignores cache-only query`, async function(): Promise<void> {
144+
const query = gql`
145+
{
146+
orgs: Organizations {
147+
id
148+
name
149+
Users {
150+
id
151+
username
152+
}
153+
}
154+
}
155+
`
156+
157+
await client.query({ query })
158+
159+
const observableQuery = client.watchQuery({
160+
query,
161+
fetchPolicy: 'cache-only',
162+
})
163+
observableQuery.subscribe({})
164+
const {
165+
data: { orgs },
166+
} = (observableQuery.currentResult(): any)
167+
expect(orgs.map(({ id }) => id)).to.deep.equal([...Organizations.keys()])
168+
expect(orgs.map(({ Users }) => Users.map(({ id }) => id))).to.deep.equal([
169+
[1, 2],
170+
[2, 3],
171+
])
172+
173+
Users.delete(2)
174+
for (let org of Organizations.values()) {
175+
org.userIds = org.userIds.filter(id => id !== 2)
176+
}
177+
178+
await refetch(client, 'User', u => u.id === 2)
179+
180+
const {
181+
data: { orgs: finalOrgs },
182+
} = (observableQuery.currentResult(): any)
183+
184+
expect(
185+
finalOrgs.map(({ Users }) => Users.map(({ id }) => id))
186+
).to.deep.equal([[1, 2], [2, 3]])
187+
})
188+
143189
it(`handles deleted User`, async function(): Promise<void> {
144190
const query = gql`
145191
{

0 commit comments

Comments
 (0)