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
53 lines
1.5 KiB
TypeScript
53 lines
1.5 KiB
TypeScript
import type { Payload } from 'payload'
|
|
|
|
import config from '@payload-config'
|
|
import { createPayloadRequest, getPayload } from 'payload'
|
|
import { afterAll, beforeAll, describe, expect, test } from 'vitest'
|
|
|
|
import { customEndpointHandler } from '../src/endpoints/customEndpointHandler.js'
|
|
|
|
let payload: Payload
|
|
|
|
afterAll(async () => {
|
|
await payload.destroy()
|
|
})
|
|
|
|
beforeAll(async () => {
|
|
payload = await getPayload({ config })
|
|
})
|
|
|
|
describe('Plugin integration tests', () => {
|
|
test('should query custom endpoint added by plugin', async () => {
|
|
const request = new Request('http://localhost:3000/api/my-plugin-endpoint', {
|
|
method: 'GET',
|
|
})
|
|
|
|
const payloadRequest = await createPayloadRequest({ config, request })
|
|
const response = await customEndpointHandler(payloadRequest)
|
|
expect(response.status).toBe(200)
|
|
|
|
const data = await response.json()
|
|
expect(data).toMatchObject({
|
|
message: 'Hello from custom endpoint',
|
|
})
|
|
})
|
|
|
|
test('can create post with custom text field added by plugin', async () => {
|
|
const post = await payload.create({
|
|
collection: 'posts',
|
|
data: {
|
|
addedByPlugin: 'added by plugin',
|
|
},
|
|
})
|
|
expect(post.addedByPlugin).toBe('added by plugin')
|
|
})
|
|
|
|
test('plugin creates and seeds plugin-collection', async () => {
|
|
expect(payload.collections['plugin-collection']).toBeDefined()
|
|
|
|
const { docs } = await payload.find({ collection: 'plugin-collection' })
|
|
|
|
expect(docs).toHaveLength(1)
|
|
})
|
|
})
|