UNPKG

@websolutespa/payload-plugin-bowl

Version:

Bowl PayloadCms plugin of the BOM Repository

65 lines (64 loc) 2.44 kB
import { config, FieldCollection, getTestConfig } from '@/test'; import { clearContext, endUsers, getContext, users } from '@websolutespa/test/payload'; import { v4 as uuid } from 'uuid'; import { afterAll, beforeAll, describe, expect, it } from 'vitest'; import { options } from '../../options'; describe('withMarket field', ()=>{ let payload; let client; let userToken; let endUserToken; let apiKey; let testConfig; beforeAll(async ()=>{ const context = await getContext(config); payload = context.payload; client = context.client; userToken = await client.getToken('users', users.admin); endUserToken = await client.getToken('end_users', endUsers.user); apiKey = users.api.apiKey; testConfig = await getTestConfig(client, userToken); }); afterAll(async ()=>{ await clearContext(); }); describe('Field config', ()=>{ let collection; let field; beforeAll(async ()=>{ collection = payload.config.collections.find((x)=>x.slug === FieldCollection.slug); }); it('should have a field named "markets" of type "relationship"', ()=>{ field = collection.fields.find((field)=>field.type === 'relationship' && field.name === 'markets'); expect(field).toBeDefined(); }); it('should allow more than one relation', ()=>{ expect(field.hasMany).toEqual(true); }); it('should allow relationship with the "market" collection', ()=>{ expect(field.relationTo).toEqual(options.slug.market); }); }); describe('Document creation', ()=>{ let fieldsDoc; let postData; beforeAll(async ()=>{ postData = { _id: uuid(), title: 'Doc title', markets: [ testConfig.documents.market.id ] }; ({ doc: fieldsDoc } = await client.post(`/${FieldCollection.slug}?locale=${testConfig.defaultLocale}`, postData, { headers: { Authorization: `JWT ${userToken}` } })); }); it('should have a valid "markets" field', async ()=>{ expect(JSON.stringify(fieldsDoc.markets.map((x)=>x.id))).toEqual(JSON.stringify(postData.markets)); }); }); }); //# sourceMappingURL=withMarkets.test.js.map