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?: {