From f4ebe98d9127379486a89e8a93b3e299dd506bc2 Mon Sep 17 00:00:00 2001 From: Mathias Jakobsen Date: Wed, 13 Sep 2023 10:07:11 +0100 Subject: [PATCH] Merge pull request #14786 from overleaf/td-git-bridge-modal-paywall Show paywall in Git bridge dialog when appropriate GitOrigin-RevId: c6056c2a24fe5f2026448cd6cef2449057803cea --- .../js/shared/context/project-context.js | 1 + .../js/shared/context/user-context.js | 1 + .../editor-left-menu.spec.tsx | 33 +++++++++++++++++++ .../components/editor-left-menu/scope.tsx | 3 ++ 4 files changed, 38 insertions(+) diff --git a/services/web/frontend/js/shared/context/project-context.js b/services/web/frontend/js/shared/context/project-context.js index cf8e53cf4c..807c799fba 100644 --- a/services/web/frontend/js/shared/context/project-context.js +++ b/services/web/frontend/js/shared/context/project-context.js @@ -26,6 +26,7 @@ export const projectShape = { mendeley: PropTypes.bool, zotero: PropTypes.bool, versioning: PropTypes.bool, + gitBridge: PropTypes.bool, }), publicAccessLevel: PropTypes.string, owner: PropTypes.shape({ diff --git a/services/web/frontend/js/shared/context/user-context.js b/services/web/frontend/js/shared/context/user-context.js index 116b45e401..1c4207a4bd 100644 --- a/services/web/frontend/js/shared/context/user-context.js +++ b/services/web/frontend/js/shared/context/user-context.js @@ -23,6 +23,7 @@ UserContext.Provider.propTypes = { zotero: PropTypes.boolean, references: PropTypes.boolean, compileTimeout: PropTypes.number, + gitBridge: PropTypes.boolean, }), refProviders: PropTypes.shape({ mendeley: PropTypes.boolean, diff --git a/services/web/test/frontend/components/editor-left-menu/editor-left-menu.spec.tsx b/services/web/test/frontend/components/editor-left-menu/editor-left-menu.spec.tsx index 56928a1080..94d2ca6a3d 100644 --- a/services/web/test/frontend/components/editor-left-menu/editor-left-menu.spec.tsx +++ b/services/web/test/frontend/components/editor-left-menu/editor-left-menu.spec.tsx @@ -244,6 +244,14 @@ describe('', function () { ui: { leftMenuShown: true, }, + project: { + owner: { + _id: '123', + }, + features: { + gitBridge: true, + }, + }, }) cy.mount( @@ -257,6 +265,31 @@ describe('', function () { cy.findByText(/your project using the link displayed below/) }) + it('shows git modal paywall correctly', function () { + const scope = mockScope({ + ui: { + leftMenuShown: true, + }, + project: { + owner: { + _id: '123', + }, + features: { + gitBridge: false, + }, + }, + }) + + cy.mount( + + + + ) + + cy.findByRole('button', { name: 'Git' }).click() + cy.findByText('Collaborate online and offline, using your own workflow') + }) + it('shows github modal correctly', function () { cy.intercept('GET', '/user/github-sync/status', { available: false, diff --git a/services/web/test/frontend/components/editor-left-menu/scope.tsx b/services/web/test/frontend/components/editor-left-menu/scope.tsx index f36ff5ef80..76649d5ee9 100644 --- a/services/web/test/frontend/components/editor-left-menu/scope.tsx +++ b/services/web/test/frontend/components/editor-left-menu/scope.tsx @@ -23,6 +23,9 @@ type Scope = { owner: { _id: string } + features?: { + gitBridge?: boolean + } } user?: { features?: {