From 77b1a9299d619da5eebca1c3465ade6b566a1c8b Mon Sep 17 00:00:00 2001 From: Tyler Stewart Date: Thu, 31 Jul 2025 11:38:45 -0600 Subject: [PATCH] feat: hide watermark if in shopify (COR-6853) --- .../react-chat/src/utils/assistant.test.ts | 19 ++++++++++++++++++- packages/react-chat/src/utils/assistant.ts | 9 ++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/packages/react-chat/src/utils/assistant.test.ts b/packages/react-chat/src/utils/assistant.test.ts index e6fda05ad6..76a19dc46f 100644 --- a/packages/react-chat/src/utils/assistant.test.ts +++ b/packages/react-chat/src/utils/assistant.test.ts @@ -1,7 +1,7 @@ import { VoiceflowRuntime } from '@voiceflow/sdk-runtime'; import { createMock } from '@voiceflow/test-common/vitest'; import type { Mock } from 'vitest'; -import { describe, expect, it, vi } from 'vitest'; +import { beforeEach, describe, expect, it, vi } from 'vitest'; import type { RawAssistantOptions } from '@/dtos/AssistantOptions.dto'; import { DEFAULT_AVATAR } from '@/dtos/AssistantOptions.dto'; @@ -148,5 +148,22 @@ describe('assistant utils', () => { extensions: [], }); }); + + describe('window.location', () => { + beforeEach(() => { + vi.spyOn(window, 'location', 'get').mockReturnValue({ + ...window.location, + hostname: 'store.myshopify.com', + }); + }); + + it('should not show watermark on myshopify.com', async () => { + mockGetPublishing().mockResolvedValue({ watermark: true }); + + const merged = await mergeAssistantOptions(config, {}); + + expect(merged.watermark).toBe(false); + }); + }); }); }); diff --git a/packages/react-chat/src/utils/assistant.ts b/packages/react-chat/src/utils/assistant.ts index cd2ce2622b..f6c461ce49 100644 --- a/packages/react-chat/src/utils/assistant.ts +++ b/packages/react-chat/src/utils/assistant.ts @@ -25,7 +25,7 @@ export const mergeAssistantOptions = async ( ...publishing, ...overrides, // watermark can not be overridden with local config - watermark: publishing?.watermark, + watermark: showWatermark(publishing?.watermark), feedback: publishing?.feedback, spacing: { ...publishing?.spacing, @@ -34,3 +34,10 @@ export const mergeAssistantOptions = async ( extensions: [...(publishing?.extensions ?? []), ...(overrides?.extensions ?? [])], }); }; + +const showWatermark = (watermark: boolean | undefined) => { + if (window.location.hostname.endsWith('.myshopify.com')) { + return false; + } + return watermark; +};