From f9f24b96225e47ad63bb3e92d1ca8fd8392f0d5d Mon Sep 17 00:00:00 2001 From: Sandrina Pereira Date: Thu, 18 Jul 2024 23:09:30 +0100 Subject: [PATCH 1/3] feat(modify): Allow customize x-jsf-presentation shorthand --- src/modify.js | 3 ++- src/tests/modify.test.js | 42 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/src/modify.js b/src/modify.js index ca796674..e460d2c1 100644 --- a/src/modify.js +++ b/src/modify.js @@ -19,10 +19,11 @@ function mergeReplaceArray(_, newVal) { } function standardizeAttrs(attrs) { - const { errorMessage, properties, ...rest } = attrs; + const { errorMessage, presentation, properties, ...rest } = attrs; return { ...rest, + ...(presentation ? { 'x-jsf-presentation': presentation } : {}), ...(errorMessage ? { 'x-jsf-errorMessage': errorMessage } : {}), }; } diff --git a/src/tests/modify.test.js b/src/tests/modify.test.js index 4d752f01..a62fa37f 100644 --- a/src/tests/modify.test.js +++ b/src/tests/modify.test.js @@ -356,7 +356,7 @@ describe('modify() - basic mutations', () => { }); }); - it('error message', () => { + it('customize x-jsf-errorMessage (shorthand)', () => { const result = modify(schemaPet, { fields: { pet_age: (fieldAttrs) => { @@ -396,4 +396,44 @@ describe('modify() - basic mutations', () => { }, }); }); + + it('customize x-jsf-presentation (shorthand)', () => { + const result = modify(schemaPet, { + fields: { + pet_age: () => { + return { + presentation: { + 'data-foo': 123, + }, + }; + }, + 'pet_address.street': { + errorMessage: { + 'data-foo': 456, + }, + }, + }, + }); + + expect(result).toMatchObject({ + properties: { + pet_age: { + 'x-jsf-presentation': { + ...result.properties.pet_age['x-jsf-presentation'], + 'data-foo': 123, + }, + }, + pet_address: { + properties: { + street: { + 'x-jsf-errorMessage': { + ...result.properties.pet_address.properties.street['x-jsf-presentation'], + 'data-foo': 456, + }, + }, + }, + }, + }, + }); + }); }); From b3ca957f8caa015951ad2bbf572ab53f3a81e361 Mon Sep 17 00:00:00 2001 From: Sandrina Pereira Date: Fri, 19 Jul 2024 10:54:18 +0100 Subject: [PATCH 2/3] selfreview - fix test compare --- src/tests/modify.test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tests/modify.test.js b/src/tests/modify.test.js index a62fa37f..4434cfac 100644 --- a/src/tests/modify.test.js +++ b/src/tests/modify.test.js @@ -419,7 +419,7 @@ describe('modify() - basic mutations', () => { properties: { pet_age: { 'x-jsf-presentation': { - ...result.properties.pet_age['x-jsf-presentation'], + ...schemaPet.properties.pet_age['x-jsf-presentation'], 'data-foo': 123, }, }, @@ -427,7 +427,7 @@ describe('modify() - basic mutations', () => { properties: { street: { 'x-jsf-errorMessage': { - ...result.properties.pet_address.properties.street['x-jsf-presentation'], + ...schemaPet.properties.pet_address.properties.street['x-jsf-presentation'], 'data-foo': 456, }, }, From e189f5f0c90bf23bf92f378666a4eb00e9c7fb1d Mon Sep 17 00:00:00 2001 From: Sandrina Pereira Date: Wed, 24 Jul 2024 14:02:35 +0100 Subject: [PATCH 3/3] update test to match new specs --- src/tests/modify.test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tests/modify.test.js b/src/tests/modify.test.js index 4434cfac..92c78fbd 100644 --- a/src/tests/modify.test.js +++ b/src/tests/modify.test.js @@ -415,7 +415,7 @@ describe('modify() - basic mutations', () => { }, }); - expect(result).toMatchObject({ + expect(result.schema).toMatchObject({ properties: { pet_age: { 'x-jsf-presentation': {