This clarifies that jobs.autoRun only *runs* already-queued jobs. It does not queue the jobs for you. Also adds an e2e test as this functionality had no e2e coverage
66 lines
2.0 KiB
TypeScript
66 lines
2.0 KiB
TypeScript
import type { Payload } from 'payload'
|
|
|
|
import path from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
import type { NextRESTClient } from '../helpers/NextRESTClient.js'
|
|
|
|
import { initPayloadInt } from '../helpers/initPayloadInt.js'
|
|
|
|
let restClient: NextRESTClient
|
|
let payload: Payload
|
|
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
|
|
describe('Custom GraphQL', () => {
|
|
beforeAll(async () => {
|
|
;({ payload, restClient } = await initPayloadInt(dirname))
|
|
})
|
|
|
|
afterAll(async () => {
|
|
await payload.destroy()
|
|
})
|
|
|
|
if (!['sqlite', 'sqlite-uuid'].includes(process.env.PAYLOAD_DATABASE || '')) {
|
|
describe('Isolated Transaction ID', () => {
|
|
it('should isolate transaction IDs between queries in the same request', async () => {
|
|
const query = `query {
|
|
TransactionID1
|
|
TransactionID2
|
|
}`
|
|
const { data } = await restClient
|
|
.GRAPHQL_POST({
|
|
body: JSON.stringify({ query }),
|
|
})
|
|
.then((res) => res.json())
|
|
// either no transactions at all or they are different
|
|
expect(
|
|
(data.TransactionID2 === null && data.TransactionID1 === null) ||
|
|
data.TransactionID2 !== data.TransactionID1,
|
|
).toBe(true)
|
|
})
|
|
it('should isolate transaction IDs between mutations in the same request', async () => {
|
|
const query = `mutation {
|
|
MutateTransactionID1
|
|
MutateTransactionID2
|
|
}`
|
|
const { data } = await restClient
|
|
.GRAPHQL_POST({
|
|
body: JSON.stringify({ query }),
|
|
})
|
|
.then((res) => res.json())
|
|
// either no transactions at all or they are different
|
|
expect(
|
|
(data.MutateTransactionID2 === null && data.MutateTransactionID1 === null) ||
|
|
data.MutateTransactionID2 !== data.MutateTransactionID1,
|
|
).toBe(true)
|
|
})
|
|
})
|
|
} else {
|
|
it('should not run isolated transaction ID tests for sqlite', () => {
|
|
expect(true).toBe(true)
|
|
})
|
|
}
|
|
})
|