51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import { getPayload, Payload } from 'payload'
|
|
import config from '@/payload.config'
|
|
|
|
import { describe, it, beforeAll, expect } from 'vitest'
|
|
|
|
let payload: Payload
|
|
|
|
describe('Payload API', () => {
|
|
beforeAll(async () => {
|
|
// Schéma vznikne z konfigurace (`push` je zapnuté jen v testech).
|
|
payload = await getPayload({ config: await config })
|
|
})
|
|
|
|
it('má nadefinované všechny kolekce', () => {
|
|
const slugy = Object.keys(payload.collections)
|
|
expect(slugy).toEqual(
|
|
expect.arrayContaining(['products', 'categories', 'media', 'pages', 'users']),
|
|
)
|
|
})
|
|
|
|
it('umí založit a najít položku nabídky', async () => {
|
|
const kategorie = await payload.create({
|
|
collection: 'categories',
|
|
data: { nazev: 'Zbraně' },
|
|
})
|
|
expect(kategorie.slug).toBe('zbrane')
|
|
|
|
const vytvorena = await payload.create({
|
|
collection: 'products',
|
|
data: {
|
|
nazev: 'CZ 75 SP-01 Shadow',
|
|
kategorie: kategorie.id,
|
|
cena: 28900,
|
|
stav: 'skladem',
|
|
},
|
|
})
|
|
|
|
expect(vytvorena.id).toBeDefined()
|
|
// slug se doplňuje hookem z názvu
|
|
expect(vytvorena.slug).toBe('cz-75-sp-01-shadow')
|
|
|
|
const nalezene = await payload.find({
|
|
collection: 'products',
|
|
where: { slug: { equals: 'cz-75-sp-01-shadow' } },
|
|
})
|
|
|
|
expect(nalezene.docs).toHaveLength(1)
|
|
expect(nalezene.docs[0]?.cena).toBe(28900)
|
|
})
|
|
})
|