From c902a54f345180d466f8e66c69ddd58acdc6a7d5 Mon Sep 17 00:00:00 2001 From: Jason St-Cyr Date: Mon, 18 Mar 2024 10:55:55 -0400 Subject: [PATCH 1/6] Adding new 'Connect' test flow to validate that Connect gets added to the required products --- cypress/e2e/OutcomeFlow/outcome.cy.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/cypress/e2e/OutcomeFlow/outcome.cy.ts b/cypress/e2e/OutcomeFlow/outcome.cy.ts index fbcf8b3..d17b4ec 100644 --- a/cypress/e2e/OutcomeFlow/outcome.cy.ts +++ b/cypress/e2e/OutcomeFlow/outcome.cy.ts @@ -61,4 +61,27 @@ describe('Outcome Page', () => { cy.get('#required-products').children().should('contain', 'CDP'); cy.get('#required-products').children().should('contain', 'Send'); }); + + it('require connect', () => { + cy.visit('/'); + cy.get('#start').click(); + cy.get('[value="Developer"]').click(); + cy.get(':nth-child(9) > .chakra-button').click(); + cy.get('.chakra-container > :nth-child(3) > .chakra-button').click(); + cy.get('[value="xm"]').click(); + cy.get('[value="nosecuredpages"]').click(); + cy.get('[value="search-no"]').click(); + cy.get('[value="xp-connect-sfmc"]').click(); + cy.get('.css-gmuwbf > .chakra-button').click(); + cy.get('[value="scs"]').click(); + cy.get('[value="vuejs"]').click(); + cy.get('.css-gmuwbf > .chakra-button').click(); + cy.get('[value="yesexperienceedge"]').click(); + cy.wait(5000); + cy.get('.chakra-modal__close-btn').click(); + cy.get('#required-products').should('exist').children().should('have.length', 2); + cy.get('#required-products').children().should('contain', 'XM Cloud'); + cy.get('#required-products').children().should('contain', 'Connect'); + cy.get('#shareButton').click(); + }); }); From e19b0758d4391656732b806deb0dadd069195673 Mon Sep 17 00:00:00 2001 From: Jason St-Cyr Date: Mon, 18 Mar 2024 11:16:19 -0400 Subject: [PATCH 2/6] Add 'Connect' to required products calculations for Outcomes --- src/models/OutcomeConditions.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/models/OutcomeConditions.ts b/src/models/OutcomeConditions.ts index 521b764..835dd8d 100644 --- a/src/models/OutcomeConditions.ts +++ b/src/models/OutcomeConditions.ts @@ -252,6 +252,17 @@ export class OutcomeConditions { ); } + /** + * Analyzes current answers to determine if the solution has some form of external system integration + * Any use of Data Exchange Framework or Sitecore external integration module also qualifies for migration + */ + hasSystemIntegration(): boolean { + return ( + this.xpFeaturesUsed.externalDataSystems || + !this.connectorsUsed.none + ); + } + /** * Returns a list of products that can be migrated to. * NOTE: Several product options don't have Prompts yet that can help lead to a result, so are not included. @@ -290,6 +301,11 @@ export class OutcomeConditions { products.push(TargetProduct.orderCloud); } + //If they are using some form of integration, we direct towards migrating to Sitecore Connect + if (this.hasSystemIntegration()) { + products.push(TargetProduct.connect); + } + return products; } } From 5678c7bf0305fade9bc57c5ff1901ace275c1812 Mon Sep 17 00:00:00 2001 From: Jason St-Cyr Date: Mon, 18 Mar 2024 11:21:06 -0400 Subject: [PATCH 3/6] Removing 'external data systems' since this now triggers 'Connect' --- cypress/e2e/OutcomeFlow/outcome.cy.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/cypress/e2e/OutcomeFlow/outcome.cy.ts b/cypress/e2e/OutcomeFlow/outcome.cy.ts index d17b4ec..96325a6 100644 --- a/cypress/e2e/OutcomeFlow/outcome.cy.ts +++ b/cypress/e2e/OutcomeFlow/outcome.cy.ts @@ -36,7 +36,6 @@ describe('Outcome Page', () => { cy.get('[value="exm"]').click(); cy.get('[value="forms"]').click(); cy.get('[value="customanalyticsdashboards"]').click(); - cy.get('[value="externaldatasystems"]').click(); cy.get('[value="historicalpersonalization"]').click(); cy.get('[value="patterncards"]').click(); cy.get('[value="customrules"]').click(); From b6d4b10747ba25a74eb10ba44670547fa3209a67 Mon Sep 17 00:00:00 2001 From: Jason St-Cyr Date: Mon, 18 Mar 2024 11:26:33 -0400 Subject: [PATCH 4/6] Adding Connect Hexagon to the list --- src/components/ui/HexagonCollection/HexagonCollection.tsx | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/components/ui/HexagonCollection/HexagonCollection.tsx b/src/components/ui/HexagonCollection/HexagonCollection.tsx index 51c102e..7ae6060 100644 --- a/src/components/ui/HexagonCollection/HexagonCollection.tsx +++ b/src/components/ui/HexagonCollection/HexagonCollection.tsx @@ -74,6 +74,12 @@ export const HexagonCollection: FC = ({ classStyles }) = : false } /> + x == TargetProduct.connect) ? true : false + } + /> Date: Mon, 18 Mar 2024 12:09:56 -0400 Subject: [PATCH 5/6] Read new 'custom DEF' option for connector prompt --- src/lib/GameContextParser.ts | 4 +++- src/models/OutcomeConditions.ts | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/lib/GameContextParser.ts b/src/lib/GameContextParser.ts index c62e1de..492a0a8 100644 --- a/src/lib/GameContextParser.ts +++ b/src/lib/GameContextParser.ts @@ -251,7 +251,8 @@ export class GameContextParser { dynamics365commerce: false, dynamics365sales: false, komfo: false, - sharepoint: false + sharepoint: false, + customDEF: false, }; } //If they didn't select None, read the rest of their selections @@ -265,6 +266,7 @@ export class GameContextParser { outcomeConditions.connectorsUsed.dynamics365sales = connectorsUsedOptions.value.includes('xp-connect-dynamics365sales'); outcomeConditions.connectorsUsed.komfo = connectorsUsedOptions.value.includes('xp-komfo'); outcomeConditions.connectorsUsed.sharepoint = connectorsUsedOptions.value.includes('xp-sharepoint'); + outcomeConditions.connectorsUsed.customDEF = connectorsUsedOptions.value.includes('connect-custom-def'); } } diff --git a/src/models/OutcomeConditions.ts b/src/models/OutcomeConditions.ts index 835dd8d..4489dea 100644 --- a/src/models/OutcomeConditions.ts +++ b/src/models/OutcomeConditions.ts @@ -79,6 +79,7 @@ export interface IConnectorsUsed { dynamics365sales: boolean, komfo: boolean, sharepoint: boolean, + customDEF: boolean, } export enum ExperienceEdgeOption { @@ -184,7 +185,8 @@ export class OutcomeConditions { dynamics365commerce: false, dynamics365sales: false, komfo: false, - sharepoint: false + sharepoint: false, + customDEF: false }; //If a gameInfoContext was provided, initialize all data from the answers in the context From 41df3305f1555d399aa461860eab9cf5db580101 Mon Sep 17 00:00:00 2001 From: Jason St-Cyr Date: Mon, 18 Mar 2024 12:30:45 -0400 Subject: [PATCH 6/6] Updating boolean checks to only suggest Connect for connectors that are not included in SaaS products --- src/models/OutcomeConditions.ts | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/models/OutcomeConditions.ts b/src/models/OutcomeConditions.ts index 4489dea..59e2dd7 100644 --- a/src/models/OutcomeConditions.ts +++ b/src/models/OutcomeConditions.ts @@ -255,13 +255,19 @@ export class OutcomeConditions { } /** - * Analyzes current answers to determine if the solution has some form of external system integration + * Analyzes current answers to determine if the solution has some form of external system integration that could be moved to Connect. * Any use of Data Exchange Framework or Sitecore external integration module also qualifies for migration + * Not required for some connectors which are included in other products (such as DAM integration) */ - hasSystemIntegration(): boolean { + requiresConnect(): boolean { return ( this.xpFeaturesUsed.externalDataSystems || - !this.connectorsUsed.none + this.connectorsUsed.customDEF || + this.connectorsUsed.dynamics365commerce || + this.connectorsUsed.dynamics365sales || + this.connectorsUsed.komfo || + this.connectorsUsed.sfcrm || + this.connectorsUsed.sfmc ); } @@ -304,7 +310,7 @@ export class OutcomeConditions { } //If they are using some form of integration, we direct towards migrating to Sitecore Connect - if (this.hasSystemIntegration()) { + if (this.requiresConnect()) { products.push(TargetProduct.connect); }