mirror of
https://github.com/overleaf/overleaf.git
synced 2024-11-07 20:31:06 -05:00
59 lines
1.8 KiB
CoffeeScript
59 lines
1.8 KiB
CoffeeScript
|
should = require('chai').should()
|
||
|
SandboxedModule = require('sandboxed-module')
|
||
|
assert = require('assert')
|
||
|
path = require('path')
|
||
|
sinon = require('sinon')
|
||
|
modulePath = path.join __dirname, "../../../../app/js/Features/User/UserGetter"
|
||
|
expect = require("chai").expect
|
||
|
|
||
|
describe "UserGetter", ->
|
||
|
|
||
|
beforeEach ->
|
||
|
@fakeUser = {_id:"12390i"}
|
||
|
@findOne = sinon.stub().callsArgWith(2, null, @fakeUser)
|
||
|
@Mongo =
|
||
|
db: users: findOne: @findOne
|
||
|
ObjectId: (id) -> return id
|
||
|
|
||
|
@UserGetter = SandboxedModule.require modulePath, requires:
|
||
|
"logger-sharelatex": log:->
|
||
|
"../../infrastructure/mongojs": @Mongo
|
||
|
"metrics-sharelatex": timeAsyncMethod: sinon.stub()
|
||
|
|
||
|
describe "getUser", ->
|
||
|
it "should get user", (done)->
|
||
|
query = _id: 'foo'
|
||
|
projection = email: 1
|
||
|
@UserGetter.getUser query, projection, (error, user) =>
|
||
|
@findOne.called.should.equal true
|
||
|
@findOne.calledWith(query, projection).should.equal true
|
||
|
user.should.deep.equal @fakeUser
|
||
|
done()
|
||
|
|
||
|
it "should not allow email in query", (done)->
|
||
|
@UserGetter.getUser email: 'foo@bar.com', {}, (error, user) =>
|
||
|
error.should.exist
|
||
|
done()
|
||
|
|
||
|
describe "getUserbyMainEmail", ->
|
||
|
it "query user by main email", (done)->
|
||
|
email = 'hello@world.com'
|
||
|
projection = emails: 1
|
||
|
@UserGetter.getUserByMainEmail email, projection, (error, user) =>
|
||
|
@findOne.called.should.equal true
|
||
|
@findOne.calledWith(email: email, projection).should.equal true
|
||
|
done()
|
||
|
|
||
|
it "return user if found", (done)->
|
||
|
email = 'hello@world.com'
|
||
|
@UserGetter.getUserByMainEmail email, (error, user) =>
|
||
|
user.should.deep.equal @fakeUser
|
||
|
done()
|
||
|
|
||
|
it "trim email", (done)->
|
||
|
email = 'hello@world.com'
|
||
|
@UserGetter.getUserByMainEmail " #{email} ", (error, user) =>
|
||
|
@findOne.called.should.equal true
|
||
|
@findOne.calledWith(email: email).should.equal true
|
||
|
done()
|