@@ -182,4 +182,48 @@ describe('github integration', () => {
182182 const response = [ { login : 'chrisns' } , { login : 'chrisns' } , { login : 'foo' } , { } ]
183183 return expect ( mod . formatUserList ( response ) ) . toEqual ( new Set ( [ 'chrisns' , 'foo' ] ) )
184184 } )
185+
186+ it ( 'formatUserList trims leading and trailing whitespace from logins' , ( ) => {
187+ const response = [ { login : ' chrisns' } , { login : 'foo ' } , { login : ' bar ' } ]
188+ return expect ( mod . formatUserList ( response ) ) . toEqual ( new Set ( [ 'chrisns' , 'foo' , 'bar' ] ) )
189+ } )
190+
191+ it ( 'addUserToGitHubOrg trims whitespace before checking ignored users' , ( ) => {
192+ jest . spyOn ( config , 'ignoredUsers' , 'get' ) . mockReturnValue ( [ 'foo' ] )
193+ return expect ( mod . addUserToGitHubOrg ( ' foo ' ) ) . resolves . toBe ( false )
194+ } )
195+
196+ it ( 'addUserToGitHubOrg trims whitespace before looking up the username' , async ( ) => {
197+ const fakeOctokit = {
198+ orgs : {
199+ createInvitation : jest . fn ( ) . mockResolvedValue ( true ) ,
200+ } ,
201+ }
202+ jest . spyOn ( config , 'githubOrg' , 'get' ) . mockReturnValue ( 'myorg' )
203+ const getUserIdSpy = jest . spyOn ( mod , 'getUserIdFromUsername' ) . mockResolvedValue ( 123 )
204+ // @ts -expect-error mock service isn't a complete implementation, so being lazy and just doing the bare minimum
205+ jest . spyOn ( mod , 'getAuthenticatedOctokit' ) . mockReturnValue ( fakeOctokit )
206+ const result = await mod . addUserToGitHubOrg ( ' foo ' )
207+ expect ( result ) . toBe ( true )
208+ expect ( getUserIdSpy ) . toHaveBeenCalledWith ( 'foo' )
209+ } )
210+
211+ it ( 'removeUserFromGitHubOrg trims whitespace before checking ignored users' , ( ) => {
212+ jest . spyOn ( config , 'ignoredUsers' , 'get' ) . mockReturnValue ( [ 'foo' ] )
213+ return expect ( mod . removeUserFromGitHubOrg ( ' foo ' ) ) . resolves . toBe ( false )
214+ } )
215+
216+ it ( 'removeUserFromGitHubOrg trims whitespace before calling the API' , async ( ) => {
217+ const fakeOctokit = {
218+ orgs : {
219+ removeMembershipForUser : jest . fn ( ) . mockResolvedValue ( true ) ,
220+ } ,
221+ }
222+ jest . spyOn ( config , 'githubOrg' , 'get' ) . mockReturnValue ( 'myorg' )
223+ // @ts -expect-error mock service isn't a complete implementation, so being lazy and just doing the bare minimum
224+ jest . spyOn ( mod , 'getAuthenticatedOctokit' ) . mockReturnValue ( fakeOctokit )
225+ const result = await mod . removeUserFromGitHubOrg ( ' foo ' )
226+ expect ( result ) . toBe ( true )
227+ expect ( fakeOctokit . orgs . removeMembershipForUser ) . toHaveBeenCalledWith ( expect . objectContaining ( { username : 'foo' } ) )
228+ } )
185229} )
0 commit comments