From 3affc0881c5795e7a4da13408c15ba172ae619c3 Mon Sep 17 00:00:00 2001 From: Robert Baillie Date: Wed, 15 Dec 2021 11:47:39 +0000 Subject: [PATCH] Added tests for the errorRenderer --- .github/workflows/create-org-and-deploy.yaml | 6 +- .../__tests__/errorRenderer.test.js | 70 +++++++++++++++++++ .../lwc/errorRenderer/errorRenderer.js | 2 +- 3 files changed, 75 insertions(+), 3 deletions(-) create mode 100644 framework/default/ortoo-core/default/lwc/errorRenderer/__tests__/errorRenderer.test.js diff --git a/.github/workflows/create-org-and-deploy.yaml b/.github/workflows/create-org-and-deploy.yaml index 4ead95b7d76..cc576581928 100644 --- a/.github/workflows/create-org-and-deploy.yaml +++ b/.github/workflows/create-org-and-deploy.yaml @@ -70,11 +70,13 @@ jobs: - name: Run Apex Unit Tests run: sfdx force:apex:test:run -r human -u "${{env.ORG_ALIAS_PREFIX}}${{github.run_number}}" --codecoverage --wait 20 | grep -v ' Pass '; test ${PIPESTATUS[0]} -eq 0 - # Prepate Jest - - name: Install modules + # Prepare Jest Modules + + - name: Prepare Jest Modules run: npm install # Run Jest Unit Tests + - name: Run Jest Unit Tests run: npm test diff --git a/framework/default/ortoo-core/default/lwc/errorRenderer/__tests__/errorRenderer.test.js b/framework/default/ortoo-core/default/lwc/errorRenderer/__tests__/errorRenderer.test.js new file mode 100644 index 00000000000..73c62b38b27 --- /dev/null +++ b/framework/default/ortoo-core/default/lwc/errorRenderer/__tests__/errorRenderer.test.js @@ -0,0 +1,70 @@ +import displayError from 'c/errorRenderer'; + +let showToastEvent = function ShowToastEvent( details ) { + this.detail = details +}; + +jest.mock('lightning/platformShowToastEvent', () => ({ + ShowToastEvent: showToastEvent +})); + +describe('c-error-renderer', () => { + afterEach(() => { + }); + + it( 'When the passed error is a string, will raise a toast with the message as the given text', () => { + + console.error = jest.fn(); + + let objectToRunAgainst = { + dispatchEvent: jest.fn() + }; + + let error = 'An error string'; + + displayError.call( objectToRunAgainst, error ); + + expect( objectToRunAgainst.dispatchEvent ).toBeCalled(); + + let dispatchedEvent = objectToRunAgainst.dispatchEvent.mock.calls[0][0]; + + expect( dispatchedEvent.detail.title ).toBe( 'c.ortoo_core_error_title' ); + expect( dispatchedEvent.detail.message ).toBe( error ); + expect( dispatchedEvent.detail.variant ).toBe( 'error' ); + + expect( console.error ).toHaveBeenCalledTimes( 1 ); + let reportedError = console.error.mock.calls[0][0]; + + expect( reportedError ).toBe( error ); + }); + + it( 'When the passed error is an Apex exception object, will raise a toast with the message as the given text', () => { + + console.error = jest.fn(); + + let objectToRunAgainst = { + dispatchEvent: jest.fn() + }; + + let error = { + body: { + message: 'An error message in the body' + } + } + + displayError.call( objectToRunAgainst, error ); + + expect( objectToRunAgainst.dispatchEvent ).toBeCalled(); + + let dispatchedEvent = objectToRunAgainst.dispatchEvent.mock.calls[0][0]; + + expect( dispatchedEvent.detail.title ).toBe( 'c.ortoo_core_error_title' ); + expect( dispatchedEvent.detail.message ).toBe( 'An error message in the body' ); + expect( dispatchedEvent.detail.variant ).toBe( 'error' ); + + expect( console.error ).toHaveBeenCalledTimes( 1 ); + let reportedError = console.error.mock.calls[0][0]; + + expect( reportedError ).toBe( error ); + }); +}); \ No newline at end of file diff --git a/framework/default/ortoo-core/default/lwc/errorRenderer/errorRenderer.js b/framework/default/ortoo-core/default/lwc/errorRenderer/errorRenderer.js index df052ad231a..b3720e88680 100644 --- a/framework/default/ortoo-core/default/lwc/errorRenderer/errorRenderer.js +++ b/framework/default/ortoo-core/default/lwc/errorRenderer/errorRenderer.js @@ -10,7 +10,7 @@ const displayError = function( error ) { let title = ERROR_TITLE; let message = error; - console.error( 'Error reported:', error ); + console.error( error ); if ( error.body ) { message = error.body.message;