Просмотр исходного кода

Merge pull request #14129 from overleaf/ii-ref-providers

[web] Map refProviders values to booleans

GitOrigin-RevId: d1a81dab4eb432e4e34f1f195b80dd676bfe172e
ilkin-overleaf 3 лет назад
Родитель
Сommit
083bee6545

+ 2 - 2
services/web/app/src/Features/User/UserPagesController.js

@@ -101,8 +101,8 @@ async function settingsPage(req, res) {
         references: user.features.references,
       },
       refProviders: {
-        mendeley: user.refProviders?.mendeley,
-        zotero: user.refProviders?.zotero,
+        mendeley: Boolean(user.refProviders?.mendeley),
+        zotero: Boolean(user.refProviders?.zotero),
       },
     },
     hasPassword: !!user.hashedPassword,

+ 2 - 2
services/web/frontend/js/shared/context/user-context.js

@@ -25,8 +25,8 @@ UserContext.Provider.propTypes = {
         compileTimeout: PropTypes.number,
       }),
       refProviders: PropTypes.shape({
-        mendeley: PropTypes.any,
-        zotero: PropTypes.any,
+        mendeley: PropTypes.boolean,
+        zotero: PropTypes.boolean,
       }),
     }),
   }),

+ 13 - 2
services/web/test/unit/src/User/UserPagesControllerTests.js

@@ -44,8 +44,8 @@ describe('UserPagesController', function () {
         },
       ],
       refProviders: {
-        mendeley: true,
-        zotero: true,
+        mendeley: { encrypted: 'aaaa' },
+        zotero: { encrypted: 'bbbb' },
       },
     }
 
@@ -314,6 +314,17 @@ describe('UserPagesController', function () {
       return this.UserPagesController.settingsPage(this.req, this.res)
     })
 
+    it('should cast refProviders to booleans', function (done) {
+      this.res.render = function (page, opts) {
+        expect(opts.user.refProviders).to.deep.equal({
+          mendeley: true,
+          zotero: true,
+        })
+        return done()
+      }
+      return this.UserPagesController.settingsPage(this.req, this.res)
+    })
+
     describe('when ldap.updateUserDetailsOnLogin is true', function () {
       beforeEach(function () {
         return (this.settings.ldap = { updateUserDetailsOnLogin: true })