Explorar el Código

Merge pull request #1605 from sharelatex/jel-portal-team-data

Refactor portals

GitOrigin-RevId: c75eb5fc17b2755070dfe48eb85845c690fe0230
Jessica Lawshe hace 7 años
padre
commit
0b841aacef

+ 4 - 0
services/web/app/coffee/Features/Subscription/SubscriptionGroupHandler.coffee

@@ -35,6 +35,10 @@ module.exports = SubscriptionGroupHandler =
 			logger.log user_id:user_id, subscription_id:subscription_id, partOfGroup:partOfGroup, "checking if user is part of a group"
 			logger.log user_id:user_id, subscription_id:subscription_id, partOfGroup:partOfGroup, "checking if user is part of a group"
 			callback(err, partOfGroup)
 			callback(err, partOfGroup)
 
 
+	getTotalConfirmedUsersInGroup: (subscription_id, callback=(err, totalUsers)->)->
+		SubscriptionLocator.getSubscription subscription_id, (err, subscription)->
+			callback(err, subscription?.member_ids?.length)
+
 replaceInArray = (model, property, oldValue, newValue, callback) ->
 replaceInArray = (model, property, oldValue, newValue, callback) ->
 	logger.log "Replacing #{oldValue} with #{newValue} in #{property} of #{model}"
 	logger.log "Replacing #{oldValue} with #{newValue} in #{property} of #{model}"
 
 

+ 18 - 1
services/web/test/unit/coffee/Subscription/SubscriptionGroupHandlerTests.coffee

@@ -23,13 +23,14 @@ describe "SubscriptionGroupHandler", ->
 		@SubscriptionLocator =
 		@SubscriptionLocator =
 			getUsersSubscription: sinon.stub()
 			getUsersSubscription: sinon.stub()
 			getSubscriptionByMemberIdAndId: sinon.stub()
 			getSubscriptionByMemberIdAndId: sinon.stub()
-			getSubscription: sinon.stub()
+			getSubscription: sinon.stub().callsArgWith(1, null, @subscription)
 
 
 		@UserCreator =
 		@UserCreator =
 			getUserOrCreateHoldingAccount: sinon.stub().callsArgWith(1, null, @user)
 			getUserOrCreateHoldingAccount: sinon.stub().callsArgWith(1, null, @user)
 
 
 		@SubscriptionUpdater =
 		@SubscriptionUpdater =
 			removeUserFromGroup: sinon.stub().callsArgWith(2)
 			removeUserFromGroup: sinon.stub().callsArgWith(2)
+			getSubscription: sinon.stub().callsArgWith(2)
 
 
 		@TeamInvitesHandler =
 		@TeamInvitesHandler =
 			createInvite: sinon.stub().callsArgWith(2)
 			createInvite: sinon.stub().callsArgWith(2)
@@ -50,6 +51,7 @@ describe "SubscriptionGroupHandler", ->
 
 
 		@Subscription =
 		@Subscription =
 			update: sinon.stub().yields()
 			update: sinon.stub().yields()
+			findOne: sinon.stub().yields()
 
 
 		@settings =
 		@settings =
 			siteUrl:"http://www.sharelatex.com"
 			siteUrl:"http://www.sharelatex.com"
@@ -135,3 +137,18 @@ describe "SubscriptionGroupHandler", ->
 			@Handler.isUserPartOfGroup @user_id, @subscription_id, (err, partOfGroup)->
 			@Handler.isUserPartOfGroup @user_id, @subscription_id, (err, partOfGroup)->
 				partOfGroup.should.equal false
 				partOfGroup.should.equal false
 				done()
 				done()
+
+	describe "getTotalConfirmedUsersInGroup", ->
+		describe "for existing subscriptions", ->
+			beforeEach ->
+				@subscription.member_ids = ["12321", "3121321"]
+			it "should call the subscription locator and return 2 users", (done)->
+				@Handler.getTotalConfirmedUsersInGroup @subscription_id, (err, count)=>
+					@SubscriptionLocator.getSubscription.calledWith(@subscription_id).should.equal true
+					count.should.equal 2
+					done()
+		describe "for nonexistent subscriptions", ->
+			it "should return undefined", (done)->
+				@Handler.getTotalConfirmedUsersInGroup "fake-id", (err, count)=>
+					should.not.exist(count)
+					done()