From 4e86c73212ec71990472e791a6af1d82458d839a Mon Sep 17 00:00:00 2001 From: Robert Baillie Date: Fri, 25 Mar 2022 16:36:54 +0000 Subject: [PATCH] Added passing through of labels into the buttons in the view and edit form Added ability to specify info --- .../__tests__/viewAndEditForm.test.js | 69 +++++++++++++++++-- .../viewAndEditForm/viewAndEditForm-card.html | 9 ++- .../viewAndEditForm-modal.html | 7 +- .../ortoo_FabricatedSObjectRegister.cls | 2 +- 4 files changed, 76 insertions(+), 11 deletions(-) diff --git a/framework/default/ortoo-core/default/lwc/viewAndEditForm/__tests__/viewAndEditForm.test.js b/framework/default/ortoo-core/default/lwc/viewAndEditForm/__tests__/viewAndEditForm.test.js index 7d7e7f434e8..de4f3df58d9 100644 --- a/framework/default/ortoo-core/default/lwc/viewAndEditForm/__tests__/viewAndEditForm.test.js +++ b/framework/default/ortoo-core/default/lwc/viewAndEditForm/__tests__/viewAndEditForm.test.js @@ -30,7 +30,7 @@ describe('c-view-and-edit-form', () => { expect( additionalEditButtons ).not.toBe( null ); }); - it('When visible card and not inEditMode, has an edit button, but no save or cancel', () => { + it('When visible card and not inEditMode, has an edit button, but no save or cancel', () => { const element = createElement('c-view-and-edit-form', { is: ViewAndEditForm }); @@ -51,7 +51,7 @@ describe('c-view-and-edit-form', () => { expect( additionalEditButtons ).toBe( null ); }); - it('When visible card and inEditMode, has an editForm slot but no viewForm slot', () => { + it('When visible card and inEditMode, has an editForm, title and info slot but no viewForm slot', () => { const element = createElement('c-view-and-edit-form', { is: ViewAndEditForm }); @@ -64,9 +64,15 @@ describe('c-view-and-edit-form', () => { const editForm = element.shadowRoot.querySelector( 'slot[name="edit-form"]' ); expect( editForm ).not.toBe( null ); - }); - it('When visible card and not inEditMode, has a viewForm slot but no editForm slot', () => { + const title = element.shadowRoot.querySelector( 'slot[name="title"]' ); + expect( title ).not.toBe( null ); + + const info = element.shadowRoot.querySelector( 'slot[name="info"]' ); + expect( info ).not.toBe( null ); + }); + + it('When visible card and not inEditMode, has a viewForm, title and info slot but no editForm slot', () => { const element = createElement('c-view-and-edit-form', { is: ViewAndEditForm }); @@ -79,6 +85,12 @@ describe('c-view-and-edit-form', () => { const editForm = element.shadowRoot.querySelector( 'slot[name="edit-form"]' ); expect( editForm ).toBe( null ); + + const title = element.shadowRoot.querySelector( 'slot[name="title"]' ); + expect( title ).not.toBe( null ); + + const info = element.shadowRoot.querySelector( 'slot[name="info"]' ); + expect( info ).not.toBe( null ); }); it('When visible card, and inEditMode, clicking save will issue a save event', () => { @@ -144,6 +156,21 @@ describe('c-view-and-edit-form', () => { }) }); + it('When visible card, inEditMode, and save and cancel button labels specified, will display those labels', () => { + const element = createElement('c-view-and-edit-form', { + is: ViewAndEditForm + }); + element.visible = true; + element.inEditMode = true; + element.saveLabel = 'overridden-save'; + element.cancelLabel = 'overridden-cancel'; + document.body.appendChild(element); + + const saveButtons = element.shadowRoot.querySelector( 'c-save-buttons' ); + expect( saveButtons.saveLabel ).toBe( 'overridden-save' ); + expect( saveButtons.cancelLabel ).toBe( 'overridden-cancel' ); + }); + it('When visible modal and inEditMode, has a save and cancel button, but no edit', () => { const element = createElement('c-view-and-edit-form', { is: ViewAndEditForm @@ -188,7 +215,7 @@ describe('c-view-and-edit-form', () => { expect( additionalEditButtons ).toBe( null ); }); - it('When visible modal and inEditMode, has an editForm slot but no viewForm slot', () => { + it('When visible modal and inEditMode, has an editForm, title and info slot but no viewForm slot', () => { const element = createElement('c-view-and-edit-form', { is: ViewAndEditForm }); @@ -202,9 +229,15 @@ describe('c-view-and-edit-form', () => { const editForm = element.shadowRoot.querySelector( 'slot[name="edit-form"]' ); expect( editForm ).not.toBe( null ); - }); - it('When visible modal and not inEditMode, has a viewForm slot but no editForm slot', () => { + const title = element.shadowRoot.querySelector( 'slot[name="title"]' ); + expect( title ).not.toBe( null ); + + const info = element.shadowRoot.querySelector( 'slot[name="info"]' ); + expect( info ).not.toBe( null ); + }); + + it('When visible modal and not inEditMode, has a viewForm, title and info slot but no editForm slot', () => { const element = createElement('c-view-and-edit-form', { is: ViewAndEditForm }); @@ -218,6 +251,12 @@ describe('c-view-and-edit-form', () => { const editForm = element.shadowRoot.querySelector( 'slot[name="edit-form"]' ); expect( editForm ).toBe( null ); + + const title = element.shadowRoot.querySelector( 'slot[name="title"]' ); + expect( title ).not.toBe( null ); + + const info = element.shadowRoot.querySelector( 'slot[name="info"]' ); + expect( info ).not.toBe( null ); }); it('When visible modal, and inEditMode, clicking save will issue a save event', () => { @@ -286,6 +325,22 @@ describe('c-view-and-edit-form', () => { }) }); + it('When visible modal, inEditMode, and save and cancel button labels specified, will display those labels', () => { + const element = createElement('c-view-and-edit-form', { + is: ViewAndEditForm + }); + element.mode = 'modal'; + element.visible = true; + element.inEditMode = true; + element.saveLabel = 'overridden-save'; + element.cancelLabel = 'overridden-cancel'; + document.body.appendChild(element); + + const saveButtons = element.shadowRoot.querySelector( 'c-save-buttons' ); + expect( saveButtons.saveLabel ).toBe( 'overridden-save' ); + expect( saveButtons.cancelLabel ).toBe( 'overridden-cancel' ); + }); + it('When configured with an invalid mode, will throw an error', () => { const element = createElement('c-view-and-edit-form', { is: ViewAndEditForm diff --git a/framework/default/ortoo-core/default/lwc/viewAndEditForm/viewAndEditForm-card.html b/framework/default/ortoo-core/default/lwc/viewAndEditForm/viewAndEditForm-card.html index da40073d40f..69ec9922e7c 100644 --- a/framework/default/ortoo-core/default/lwc/viewAndEditForm/viewAndEditForm-card.html +++ b/framework/default/ortoo-core/default/lwc/viewAndEditForm/viewAndEditForm-card.html @@ -21,6 +21,7 @@
+
@@ -32,7 +33,9 @@
- + + +
@@ -40,7 +43,9 @@
diff --git a/framework/default/ortoo-core/default/lwc/viewAndEditForm/viewAndEditForm-modal.html b/framework/default/ortoo-core/default/lwc/viewAndEditForm/viewAndEditForm-modal.html index 0eedf3e2f73..8b0c60bf7ca 100644 --- a/framework/default/ortoo-core/default/lwc/viewAndEditForm/viewAndEditForm-modal.html +++ b/framework/default/ortoo-core/default/lwc/viewAndEditForm/viewAndEditForm-modal.html @@ -26,6 +26,9 @@
+ + + @@ -37,7 +40,9 @@
- diff --git a/framework/default/sobject-fabricator/classes/ortoo_FabricatedSObjectRegister.cls b/framework/default/sobject-fabricator/classes/ortoo_FabricatedSObjectRegister.cls index d282b9495d6..69393da22f0 100644 --- a/framework/default/sobject-fabricator/classes/ortoo_FabricatedSObjectRegister.cls +++ b/framework/default/sobject-fabricator/classes/ortoo_FabricatedSObjectRegister.cls @@ -201,4 +201,4 @@ public class ortoo_FabricatedSObjectRegister { SobjectField relationshipField = new sfab_ObjectDescriber().getFieldForChildRelationship( parent.getSobjectName(), relationship ); return new Relationship( child, relationshipField, parent ); } -} +} \ No newline at end of file