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