Skip to content

Commit 068586a

Browse files
committed
Add erroring for when variables are given for aBulkOps query
1 parent 4cb5dbf commit 068586a

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

0 commit comments

Comments
 (0)