|
@@ -20,11 +20,15 @@ describe "UserGetter", ->
|
|
|
@Mongo =
|
|
@Mongo =
|
|
|
db: users: findOne: @findOne
|
|
db: users: findOne: @findOne
|
|
|
ObjectId: (id) -> return id
|
|
ObjectId: (id) -> return id
|
|
|
|
|
+ settings = apis: { v1: { url: 'v1.url', user: '', pass: '' } }
|
|
|
|
|
+ @request = sinon.stub()
|
|
|
|
|
|
|
|
@UserGetter = SandboxedModule.require modulePath, requires:
|
|
@UserGetter = SandboxedModule.require modulePath, requires:
|
|
|
"logger-sharelatex": log:->
|
|
"logger-sharelatex": log:->
|
|
|
"../../infrastructure/mongojs": @Mongo
|
|
"../../infrastructure/mongojs": @Mongo
|
|
|
"metrics-sharelatex": timeAsyncMethod: sinon.stub()
|
|
"metrics-sharelatex": timeAsyncMethod: sinon.stub()
|
|
|
|
|
+ 'settings-sharelatex': settings
|
|
|
|
|
+ 'request': @request
|
|
|
|
|
|
|
|
describe "getUser", ->
|
|
describe "getUser", ->
|
|
|
it "should get user", (done)->
|
|
it "should get user", (done)->
|
|
@@ -42,6 +46,9 @@ describe "UserGetter", ->
|
|
|
done()
|
|
done()
|
|
|
|
|
|
|
|
describe "getUserFullEmails", -
|
|
describe "getUserFullEmails", -
|
|
|
|
|
+ beforeEach ->
|
|
|
|
|
+ @request.callsArgWith(1, null, { statusCode: 200 }, [])
|
|
|
|
|
+
|
|
|
it "should get user", (done)->
|
|
it "should get user", (done)->
|
|
|
@UserGetter.getUser = sinon.stub().callsArgWith(2, null, @fakeUser)
|
|
@UserGetter.getUser = sinon.stub().callsArgWith(2, null, @fakeUser)
|
|
|
projection = email: 1, emails: 1
|
|
projection = email: 1, emails: 1
|
|
@@ -59,6 +66,33 @@ describe "UserGetter", ->
|
|
|
]
|
|
]
|
|
|
done()
|
|
done()
|
|
|
|
|
|
|
|
|
|
+ it "should merge affiliation data", (done)->
|
|
|
|
|
+ @UserGetter.getUser = sinon.stub().callsArgWith(2, null, @fakeUser)
|
|
|
|
|
+ affiliationsData = [
|
|
|
|
|
+ {
|
|
|
|
|
+ email: 'email1@foo.bar'
|
|
|
|
|
+ role: 'Prof'
|
|
|
|
|
+ department: 'Maths'
|
|
|
|
|
+ inferred: false
|
|
|
|
|
+ institution: { name: 'University Name', isUniversity: true }
|
|
|
|
|
+ }
|
|
|
|
|
+ ]
|
|
|
|
|
+ @request.callsArgWith(1, null, { statusCode: 200 }, affiliationsData)
|
|
|
|
|
+ @UserGetter.getUserFullEmails @fakeUser._id, (error, fullEmails) =>
|
|
|
|
|
+ assert.deepEqual fullEmails, [
|
|
|
|
|
+ {
|
|
|
|
|
+ email: 'email1@foo.bar'
|
|
|
|
|
+ default: false
|
|
|
|
|
+ affiliation:
|
|
|
|
|
+ institution: affiliationsData[0].institution
|
|
|
|
|
+ inferred: affiliationsData[0].inferred
|
|
|
|
|
+ department: affiliationsData[0].department
|
|
|
|
|
+ role: affiliationsData[0].role
|
|
|
|
|
+ }
|
|
|
|
|
+ { email: 'email2@foo.bar', default: true }
|
|
|
|
|
+ ]
|
|
|
|
|
+ done()
|
|
|
|
|
+
|
|
|
describe "getUserbyMainEmail", ->
|
|
describe "getUserbyMainEmail", ->
|
|
|
it "query user by main email", (done)->
|
|
it "query user by main email", (done)->
|
|
|
email = 'hello@world.com'
|
|
email = 'hello@world.com'
|