Skip to content

Commit 7a9ed81

Browse files
committed
Add erroring for when variables are given for aBulkOps query
1 parent ec07863 commit 7a9ed81

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

packages/app/src/cli/services/bulk-operations/run-query.test.ts

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {runBulkOperationQuery} from './run-query.js'
22
import {adminRequestDoc} from '@shopify/cli-kit/node/api/admin'
3+
import {AbortError} from '@shopify/cli-kit/node/error'
34
import {describe, test, expect, vi} from 'vitest'
45

56
vi.mock('@shopify/cli-kit/node/api/admin')
@@ -33,4 +34,19 @@ describe('runBulkOperationQuery', () => {
3334
expect(bulkOperationResult?.bulkOperation).toEqual(successfulBulkOperation)
3435
expect(bulkOperationResult?.userErrors).toEqual([])
3536
})
37+
38+
test('throws AbortError when variables are provided with a query', async () => {
39+
const query = '{ products { edges { node { id } } } }'
40+
const variables = '[{"input":{"id":"gid://shopify/Product/123"}}]'
41+
42+
await expect(
43+
runBulkOperationQuery({
44+
adminSession: mockSession,
45+
query,
46+
variables,
47+
}),
48+
).rejects.toThrow(AbortError)
49+
50+
expect(adminRequestDoc).not.toHaveBeenCalled()
51+
})
3652
})

packages/app/src/cli/services/bulk-operations/run-query.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import {
44
} from '../../api/graphql/bulk-operations/generated/bulk-operation-run-query.js'
55
import {adminRequestDoc} from '@shopify/cli-kit/node/api/admin'
66
import {AdminSession} from '@shopify/cli-kit/node/session'
7+
import {AbortError} from '@shopify/cli-kit/node/error'
8+
import {outputContent, outputToken} from '@shopify/cli-kit/node/output'
79

810
interface BulkOperationRunQueryOptions {
911
adminSession: AdminSession
@@ -13,7 +15,14 @@ interface BulkOperationRunQueryOptions {
1315
export async function runBulkOperationQuery(
1416
options: BulkOperationRunQueryOptions,
1517
): Promise<BulkOperationRunQueryMutation['bulkOperationRunQuery']> {
16-
const {adminSession, query} = options
18+
const {adminSession, query, variables} = options
19+
20+
if (variables) {
21+
throw new AbortError(
22+
outputContent`The ${outputToken.yellow('--variables')} flag can only be used with mutations, not queries.`,
23+
)
24+
}
25+
1726
const response = await adminRequestDoc<BulkOperationRunQueryMutation, {query: string}>({
1827
query: BulkOperationRunQuery,
1928
session: adminSession,

0 commit comments

Comments
 (0)