From c5f9fa0d975305a645023bac0393314caada4e21 Mon Sep 17 00:00:00 2001 From: Jarrod Flesch Date: Mon, 6 Mar 2023 12:27:26 -0500 Subject: [PATCH] chore: adds test to empty json objects REST api --- test/fields/int.spec.ts | 38 ++++++++++++++++++++++++++++++++++++-- test/globals/int.spec.ts | 13 +++++++++++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/test/fields/int.spec.ts b/test/fields/int.spec.ts index faf09e6cb..98590b7f6 100644 --- a/test/fields/int.spec.ts +++ b/test/fields/int.spec.ts @@ -12,11 +12,14 @@ import { localizedTextValue, namedTabDefaultValue, namedTabText, tabsDoc, tabsSl import { defaultNumber, numberDoc } from './collections/Number'; let client; +let serverURL; +let config; describe('Fields', () => { beforeAll(async () => { - const { serverURL } = await initPayloadTest({ __dirname, init: { local: false } }); - const config = await configPromise; + ({ serverURL } = await initPayloadTest({ __dirname, init: { local: false } })); + config = await configPromise; + client = new RESTClient(config, { serverURL, defaultSlug: 'point-fields' }); await client.login(); }); @@ -537,6 +540,37 @@ describe('Fields', () => { expect(createdJSON.json.state).toEqual({}); }); + + it('should save empty json objects via REST', async () => { + const jsonClient = new RESTClient(config, { serverURL, defaultSlug: 'json-fields' }); + await jsonClient.login(); + + const { doc: ogDoc } = await jsonClient.create({ + auth: true, + data: { + json: { + empty: {}, + state: { + foo: 'bar', + }, + }, + }, + }); + + expect(ogDoc.json.empty).toEqual({}); + + const { doc } = await jsonClient.update({ + auth: true, + id: ogDoc.id, + data: { + json: { + state: {}, + }, + }, + }); + + expect(doc.json.state).toEqual({}); + }); }); describe('richText', () => { diff --git a/test/globals/int.spec.ts b/test/globals/int.spec.ts index 7bd009e20..46a8e9978 100644 --- a/test/globals/int.spec.ts +++ b/test/globals/int.spec.ts @@ -57,6 +57,19 @@ describe('globals', () => { expect(doc.array).toMatchObject(array); expect(doc.id).toBeDefined(); }); + + it('should save empty json objects', async () => { + const { doc } = await client.updateGlobal({ + slug, + data: { + json: { + state: {}, + }, + }, + }); + + expect(doc.json.state).toEqual({}); + }); }); describe('local', () => {