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
105 lines
2.8 KiB
TypeScript
105 lines
2.8 KiB
TypeScript
import type { Payload } from 'payload'
|
|
|
|
import path from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
|
|
import type { NextRESTClient } from '../helpers/NextRESTClient.js'
|
|
import type { Collection1 } from './payload-types.js'
|
|
|
|
import { devUser } from '../credentials.js'
|
|
import { initPayloadInt } from '../helpers/initPayloadInt.js'
|
|
import { collection1Slug, versionedRelationshipFieldSlug } from './slugs.js'
|
|
|
|
let payload: Payload
|
|
let restClient: NextRESTClient
|
|
|
|
const { email, password } = devUser
|
|
|
|
const filename = fileURLToPath(import.meta.url)
|
|
const dirname = path.dirname(filename)
|
|
|
|
describe('Relationship Fields', () => {
|
|
beforeAll(async () => {
|
|
const initialized = await initPayloadInt(dirname)
|
|
;({ payload, restClient } = initialized)
|
|
|
|
await restClient.login({
|
|
slug: 'users',
|
|
credentials: {
|
|
email,
|
|
password,
|
|
},
|
|
})
|
|
})
|
|
|
|
afterAll(async () => {
|
|
await payload.destroy()
|
|
})
|
|
|
|
describe('Versioned Relationship Field', () => {
|
|
let version2ID: string
|
|
const relatedDocName = 'Related Doc'
|
|
beforeAll(async () => {
|
|
const relatedDoc = await payload.create({
|
|
collection: collection1Slug,
|
|
data: {
|
|
name: relatedDocName,
|
|
},
|
|
})
|
|
|
|
const version1 = await payload.create({
|
|
collection: versionedRelationshipFieldSlug,
|
|
data: {
|
|
title: 'Version 1 Title',
|
|
relationshipField: {
|
|
value: relatedDoc.id,
|
|
relationTo: collection1Slug,
|
|
},
|
|
},
|
|
})
|
|
|
|
const version2 = await payload.update({
|
|
collection: versionedRelationshipFieldSlug,
|
|
id: version1.id,
|
|
data: {
|
|
title: 'Version 2 Title',
|
|
},
|
|
})
|
|
|
|
const versions = await payload.findVersions({
|
|
collection: versionedRelationshipFieldSlug,
|
|
where: {
|
|
parent: {
|
|
equals: version2.id,
|
|
},
|
|
},
|
|
sort: '-updatedAt',
|
|
limit: 1,
|
|
})
|
|
|
|
version2ID = versions.docs[0].id
|
|
})
|
|
it('should return the correct versioned relationship field via REST', async () => {
|
|
const version2Data = await restClient
|
|
.GET(`/${versionedRelationshipFieldSlug}/versions/${version2ID}?locale=all`)
|
|
.then((res) => res.json())
|
|
|
|
expect(version2Data.version.title).toEqual('Version 2 Title')
|
|
expect(version2Data.version.relationshipField[0].value.name).toEqual(relatedDocName)
|
|
})
|
|
|
|
it('should return the correct versioned relationship field via LocalAPI', async () => {
|
|
const version2Data = await payload.findVersionByID({
|
|
collection: versionedRelationshipFieldSlug,
|
|
id: version2ID,
|
|
locale: 'all',
|
|
})
|
|
|
|
expect(version2Data.version.title).toEqual('Version 2 Title')
|
|
expect((version2Data.version.relationshipField[0].value as Collection1).name).toEqual(
|
|
relatedDocName,
|
|
)
|
|
})
|
|
})
|
|
})
|