From d2a581deaa031c4c758991901282f753869a7dd6 Mon Sep 17 00:00:00 2001 From: David Featherston Date: Tue, 27 Aug 2024 11:27:07 +1000 Subject: [PATCH] feat(@dpc-sdp/nuxt-ripple-analytics): add new print event --- .../features/publication/publication.feature | 4 +++ packages/nuxt-ripple-analytics/lib/index.ts | 13 +++++++++ .../step_definitions/common/site/analytics.ts | 4 ++- .../components/TidePublicationPageActions.vue | 28 +++++++++++++++++-- 4 files changed, 46 insertions(+), 3 deletions(-) diff --git a/examples/nuxt-app/test/features/publication/publication.feature b/examples/nuxt-app/test/features/publication/publication.feature index 1b83d5d2d1..e2ec52b2f5 100644 --- a/examples/nuxt-app/test/features/publication/publication.feature +++ b/examples/nuxt-app/test/features/publication/publication.feature @@ -41,6 +41,10 @@ Feature: Publication page | title | url | type | size | | Victorian Skills Plan Implementation Update October 2023 | /sites/default/files/2023-10/16686-VSA-Implementation-Plan-Section_FA_Digital.pdf | pdf | 4.61 MB | | Print full document | /victorian-skills-plan-2023-implementation-update/print-all | | | + When I click on the document "Print full document" + Then the dataLayer should include the following events + | event | element_text | link_url | component | + | print_document | Print full document | /victorian-skills-plan-2023-implementation-update/print-all | rpl-document | @mockserver Example: Publication print all diff --git a/packages/nuxt-ripple-analytics/lib/index.ts b/packages/nuxt-ripple-analytics/lib/index.ts index c80b186d1e..7e8d058ddb 100644 --- a/packages/nuxt-ripple-analytics/lib/index.ts +++ b/packages/nuxt-ripple-analytics/lib/index.ts @@ -168,6 +168,19 @@ export default { }) } }, + 'rpl-document/print': () => { + return (payload: any) => { + trackEvent({ + event: `${payload.action}_document`, + element_id: payload?.id, + element_text: payload?.text, + link_url: payload?.value, + name: payload?.name, + component: 'rpl-document', + platform_event: 'print' + }) + } + }, 'rpl-file/download': () => { return (payload: any) => { const { $app_origin } = useNuxtApp() diff --git a/packages/ripple-test-utils/step_definitions/common/site/analytics.ts b/packages/ripple-test-utils/step_definitions/common/site/analytics.ts index bb3bf741e0..a0a285adae 100644 --- a/packages/ripple-test-utils/step_definitions/common/site/analytics.ts +++ b/packages/ripple-test-utils/step_definitions/common/site/analytics.ts @@ -18,7 +18,9 @@ Then( } }, {}) - cy.wrap(event).should('include', updatedRow) + Object.keys(updatedRow).forEach((key) => { + expect(event[key]).to.contain(updatedRow[key]) + }) }) }) } diff --git a/packages/ripple-tide-publication/components/TidePublicationPageActions.vue b/packages/ripple-tide-publication/components/TidePublicationPageActions.vue index 2ebe5d67ee..cac508017e 100644 --- a/packages/ripple-tide-publication/components/TidePublicationPageActions.vue +++ b/packages/ripple-tide-publication/components/TidePublicationPageActions.vue @@ -4,17 +4,24 @@ - + - +