158 lines
4.2 KiB
CoffeeScript
158 lines
4.2 KiB
CoffeeScript
describe "UserService", ->
|
|
userService = null
|
|
$q = null
|
|
provide = null
|
|
$rootScope = null
|
|
mocks = {}
|
|
|
|
_mockResources = () ->
|
|
mocks.resources = {}
|
|
mocks.resources.users = {
|
|
getProjects: sinon.stub(),
|
|
getContacts: sinon.stub()
|
|
}
|
|
|
|
provide.value "tgResources", mocks.resources
|
|
|
|
_mocks = () ->
|
|
module ($provide) ->
|
|
provide = $provide
|
|
_mockResources()
|
|
|
|
return null
|
|
|
|
_inject = (callback) ->
|
|
inject (_tgUserService_, _$q_, _$rootScope_) ->
|
|
userService = _tgUserService_
|
|
$q = _$q_
|
|
$rootScope = _$rootScope_
|
|
|
|
beforeEach ->
|
|
module "taigaCommon"
|
|
_mocks()
|
|
_inject()
|
|
|
|
it "attach user contacts to projects", (done) ->
|
|
userId = 2
|
|
|
|
projects = Immutable.fromJS([
|
|
{id: 1, members: [1, 2, 3]},
|
|
{id: 2, members: [2, 3]},
|
|
{id: 3, members: [1]}
|
|
])
|
|
|
|
contacts = Immutable.fromJS([
|
|
{id: 1, name: "fake1"},
|
|
{id: 2, name: "fake2"},
|
|
{id: 3, name: "fake3"}
|
|
])
|
|
|
|
mocks.resources.users.getContacts = sinon.stub()
|
|
mocks.resources.users.getContacts.withArgs(userId).promise().resolve(contacts)
|
|
|
|
userService.attachUserContactsToProjects(userId, projects).then (_projects_) ->
|
|
contacts = _projects_.get(0).get("contacts")
|
|
|
|
expect(contacts.get(0).get("name")).to.be.equal('fake1')
|
|
|
|
done()
|
|
|
|
it "get user contacts", (done) ->
|
|
userId = 2
|
|
|
|
contacts = [
|
|
{id: 1},
|
|
{id: 2},
|
|
{id: 3}
|
|
]
|
|
|
|
mocks.resources.users.getContacts = sinon.stub()
|
|
mocks.resources.users.getContacts.withArgs(userId).promise().resolve(contacts)
|
|
|
|
userService.getContacts(userId).then (_contacts_) ->
|
|
expect(_contacts_).to.be.eql(contacts)
|
|
done()
|
|
|
|
$rootScope.$apply()
|
|
|
|
it "get user liked", (done) ->
|
|
userId = 2
|
|
pageNumber = 1
|
|
objectType = null
|
|
textQuery = null
|
|
|
|
liked = [
|
|
{id: 1},
|
|
{id: 2},
|
|
{id: 3}
|
|
]
|
|
|
|
mocks.resources.users.getLiked = sinon.stub()
|
|
mocks.resources.users.getLiked.withArgs(userId, pageNumber, objectType, textQuery)
|
|
.promise()
|
|
.resolve(liked)
|
|
|
|
userService.getLiked(userId, pageNumber, objectType, textQuery).then (_liked_) ->
|
|
expect(_liked_).to.be.eql(liked)
|
|
done()
|
|
|
|
$rootScope.$apply()
|
|
|
|
it "get user voted", (done) ->
|
|
userId = 2
|
|
pageNumber = 1
|
|
objectType = null
|
|
textQuery = null
|
|
|
|
voted = [
|
|
{id: 1},
|
|
{id: 2},
|
|
{id: 3}
|
|
]
|
|
|
|
mocks.resources.users.getVoted = sinon.stub()
|
|
mocks.resources.users.getVoted.withArgs(userId, pageNumber, objectType, textQuery)
|
|
.promise()
|
|
.resolve(voted)
|
|
|
|
userService.getVoted(userId, pageNumber, objectType, textQuery).then (_voted_) ->
|
|
expect(_voted_).to.be.eql(voted)
|
|
done()
|
|
|
|
$rootScope.$apply()
|
|
|
|
it "get user watched", (done) ->
|
|
userId = 2
|
|
pageNumber = 1
|
|
objectType = null
|
|
textQuery = null
|
|
|
|
watched = [
|
|
{id: 1},
|
|
{id: 2},
|
|
{id: 3}
|
|
]
|
|
|
|
mocks.resources.users.getWatched = sinon.stub()
|
|
mocks.resources.users.getWatched.withArgs(userId, pageNumber, objectType, textQuery)
|
|
.promise()
|
|
.resolve(watched)
|
|
|
|
userService.getWatched(userId, pageNumber, objectType, textQuery).then (_watched_) ->
|
|
expect(_watched_).to.be.eql(watched)
|
|
done()
|
|
|
|
$rootScope.$apply()
|
|
|
|
it "get user by username", (done) ->
|
|
username = "username-1"
|
|
|
|
user = {id: 1}
|
|
|
|
mocks.resources.users.getUserByUsername = sinon.stub()
|
|
mocks.resources.users.getUserByUsername.withArgs(username).promise().resolve(user)
|
|
|
|
userService.getUserByUserName(username).then (_user_) ->
|
|
expect(_user_).to.be.eql(user)
|
|
done()
|