]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/commitdiff
Introduce login command
authorChocobozzz <me@florianbigard.com>
Tue, 13 Jul 2021 09:05:15 +0000 (11:05 +0200)
committerChocobozzz <me@florianbigard.com>
Tue, 20 Jul 2021 13:27:18 +0000 (15:27 +0200)
63 files changed:
server/tests/api/activitypub/fetch.ts
server/tests/api/check-params/abuses.ts
server/tests/api/check-params/blocklist.ts
server/tests/api/check-params/bulk.ts
server/tests/api/check-params/config.ts
server/tests/api/check-params/custom-pages.ts
server/tests/api/check-params/debug.ts
server/tests/api/check-params/follows.ts
server/tests/api/check-params/jobs.ts
server/tests/api/check-params/live.ts
server/tests/api/check-params/logs.ts
server/tests/api/check-params/plugins.ts
server/tests/api/check-params/redundancy.ts
server/tests/api/check-params/upload-quota.ts
server/tests/api/check-params/user-subscriptions.ts
server/tests/api/check-params/users.ts
server/tests/api/check-params/video-blacklist.ts
server/tests/api/check-params/video-captions.ts
server/tests/api/check-params/video-channels.ts
server/tests/api/check-params/video-comments.ts
server/tests/api/check-params/video-imports.ts
server/tests/api/check-params/videos-filter.ts
server/tests/api/check-params/videos.ts
server/tests/api/moderation/abuses.ts
server/tests/api/moderation/blocklist-notification.ts
server/tests/api/moderation/blocklist.ts
server/tests/api/moderation/video-blacklist.ts
server/tests/api/search/search-activitypub-video-channels.ts
server/tests/api/server/bulk.ts
server/tests/api/server/email.ts
server/tests/api/server/follow-constraints.ts
server/tests/api/server/follows.ts
server/tests/api/server/reverse-proxy.ts
server/tests/api/server/stats.ts
server/tests/api/users/user-subscriptions.ts
server/tests/api/users/users-multiple-servers.ts
server/tests/api/users/users-verification.ts
server/tests/api/users/users.ts
server/tests/api/videos/multiple-servers.ts
server/tests/api/videos/video-change-ownership.ts
server/tests/api/videos/video-channels.ts
server/tests/api/videos/video-comments.ts
server/tests/api/videos/video-nsfw.ts
server/tests/api/videos/video-playlists.ts
server/tests/api/videos/video-privacy.ts
server/tests/api/videos/videos-filter.ts
server/tests/api/videos/videos-history.ts
server/tests/cli/peertube.ts
server/tests/cli/reset-password.ts
server/tests/external-plugins/auth-ldap.ts
server/tests/feeds/feeds.ts
server/tests/plugins/action-hooks.ts
server/tests/plugins/external-auth.ts
server/tests/plugins/id-and-pass-auth.ts
shared/extra-utils/requests/requests.ts
shared/extra-utils/server/clients.ts [deleted file]
shared/extra-utils/server/servers.ts
shared/extra-utils/shared/abstract-command.ts
shared/extra-utils/users/index.ts
shared/extra-utils/users/login-command.ts [new file with mode: 0644]
shared/extra-utils/users/login.ts
shared/extra-utils/users/notifications.ts
shared/extra-utils/users/users.ts

index d5e21404c39eeed956022697f6f17142ef8a33a5..c1af23016f8b487c6db3846d4237711f5ac4cd4b 100644 (file)
@@ -11,7 +11,6 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '../../../../shared/extra-utils'
 import { Video } from '../../../../shared/models/videos'
@@ -36,7 +35,7 @@ describe('Test ActivityPub fetcher', function () {
       await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
     }
 
-    const userAccessToken = await userLogin(servers[0], user)
+    const userAccessToken = await servers[0].loginCommand.getAccessToken(user)
 
     await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'video root' })
     const res = await uploadVideo(servers[0].url, servers[0].accessToken, { name: 'bad video root' })
index e158e50dc478f87c5aa2126519fe3884ec59d26e..14949d30111b6c8fb97449875482ba9ccd75a375 100644 (file)
@@ -18,7 +18,6 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { AbuseCreate, AbuseState } from '@shared/models'
@@ -47,7 +46,7 @@ describe('Test abuses API validators', function () {
     const username = 'user1'
     const password = 'my super password'
     await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
-    userToken = await userLogin(server, { username, password })
+    userToken = await server.loginCommand.getAccessToken({ username, password })
 
     userToken2 = await generateUserAccessToken(server, 'user_2')
 
index 5ed8810ced05c1f2efbcf92c60e082b87f6a565b..11a79387f5426fe11bf2e45d4faa42ae18cbcbb2 100644 (file)
@@ -11,8 +11,7 @@ import {
   makeGetRequest,
   makePostBodyRequest,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 import {
   checkBadCountPagination,
@@ -37,7 +36,7 @@ describe('Test blocklist API validators', function () {
     const user = { username: 'user1', password: 'password' }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
 
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
 
     await doubleFollow(servers[0], servers[1])
   })
index 07b920ba72a7c24e35f577da744bb9f1d325940c..85520b3bd54261d014ac86b89ceabd615089d146 100644 (file)
@@ -6,8 +6,7 @@ import {
   createUser,
   flushAndRunServer,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 import { makePostBodyRequest } from '../../../../shared/extra-utils/requests/requests'
 import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
@@ -27,7 +26,7 @@ describe('Test bulk API validators', function () {
     const user = { username: 'user1', password: 'password' }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
 
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
   })
 
   describe('When removing comments of', function () {
index 291de93ea8cf4068de05c7c26d1d52d30ee193c2..e93523e4b1e4dc643b8c6456e222e088b069da1b 100644 (file)
@@ -11,8 +11,7 @@ import {
   makeGetRequest,
   makePutBodyRequest,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '@shared/extra-utils'
 import { CustomConfig } from '@shared/models'
 
@@ -208,7 +207,7 @@ describe('Test config API validators', function () {
       password: 'password'
     }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
   })
 
   describe('When getting the configuration', function () {
index 74ca3384cac584c85c3e9241dae58905abc94820..c1dd258aa6c9392648b9b7b2a56fd6772adc5299 100644 (file)
@@ -7,8 +7,7 @@ import {
   createUser,
   flushAndRunServer,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 import { makeGetRequest, makePutBodyRequest } from '../../../../shared/extra-utils/requests/requests'
 
@@ -29,7 +28,7 @@ describe('Test custom pages validators', function () {
     const user = { username: 'user1', password: 'password' }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
 
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
   })
 
   describe('When updating instance homepage', function () {
index 37bf0f99b700d7fbd9a1289a38406ae98fb97f08..dc033a44145ecaa6f23e7884a27770ad6124901c 100644 (file)
@@ -7,8 +7,7 @@ import {
   createUser,
   flushAndRunServer,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 import { makeGetRequest } from '../../../../shared/extra-utils/requests/requests'
 import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
@@ -32,7 +31,7 @@ describe('Test debug API validators', function () {
       password: 'my super password'
     }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
   })
 
   describe('When getting debug endpoint', function () {
index c03dd5c9c4bcd19047413fac42556b019333aca7..8cf5b130ed2b6a371ffbeb3bc923c4d97bbd7b8b 100644 (file)
@@ -9,8 +9,7 @@ import {
   makeDeleteRequest, makeGetRequest,
   makePostBodyRequest,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 import {
   checkBadCountPagination,
@@ -42,7 +41,7 @@ describe('Test server follows API validators', function () {
       }
 
       await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-      userAccessToken = await userLogin(server, user)
+      userAccessToken = await server.loginCommand.getAccessToken(user)
     })
 
     describe('When adding follows', function () {
index 3c1d2049bbbcb7e00dd101a286e1956f20e94be9..cbe6a28b8c7db95203caa73962873363c8bf272f 100644 (file)
@@ -7,8 +7,7 @@ import {
   createUser,
   flushAndRunServer,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 import {
   checkBadCountPagination,
@@ -37,7 +36,7 @@ describe('Test jobs API validators', function () {
       password: 'my super password'
     }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
   })
 
   describe('When listing jobs', function () {
index 3949672855096f057c5c1db47a318f5ab36e8e6e..045f3a1b167ce042deb1e3fe197bfdebd0e7e16f 100644 (file)
@@ -17,8 +17,7 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   stopFfmpeg,
-  uploadVideoAndGetId,
-  userLogin
+  uploadVideoAndGetId
 } from '../../../../shared/extra-utils'
 
 describe('Test video lives API validator', function () {
@@ -53,7 +52,7 @@ describe('Test video lives API validator', function () {
     const username = 'user1'
     const password = 'my super password'
     await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
-    userAccessToken = await userLogin(server, { username, password })
+    userAccessToken = await server.loginCommand.getAccessToken({ username, password })
 
     {
       const res = await getMyUserInformation(server.url, server.accessToken)
@@ -150,7 +149,7 @@ describe('Test video lives API validator', function () {
       }
       await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
 
-      const accessTokenUser = await userLogin(server, user)
+      const accessTokenUser = await server.loginCommand.getAccessToken(user)
       const res = await getMyUserInformation(server.url, accessTokenUser)
       const customChannelId = res.body.videoChannels[0].id
 
index dac1e6b98d2cd777ec5314436bc733b2e9f1680e..83ecfec93284506f7cd3a634f1bb43a7302cc5d1 100644 (file)
@@ -7,8 +7,7 @@ import {
   createUser,
   flushAndRunServer,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 import { makeGetRequest } from '../../../../shared/extra-utils/requests/requests'
 import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
@@ -32,7 +31,7 @@ describe('Test logs API validators', function () {
       password: 'my super password'
     }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
   })
 
   describe('When getting logs', function () {
index 8509b8ac5b8e46a8be0f4f93cdc87e53da2725ab..130cf6869062cf9a115c3e2f2098efc9547ee2c9 100644 (file)
@@ -13,8 +13,7 @@ import {
   makePostBodyRequest,
   makePutBodyRequest,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '@shared/extra-utils'
 import { PeerTubePlugin, PluginType } from '@shared/models'
 
@@ -45,7 +44,7 @@ describe('Test server plugins API validators', function () {
     }
 
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
 
     {
       const res = await server.pluginsCommand.install({ npmName: npmPlugin })
index dac6938de1296c90227ed995c9637c995ccd22f0..2e10e378af8530483aa291da360b85d6cfeaa18c 100644 (file)
@@ -19,7 +19,6 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   uploadVideoAndGetId,
-  userLogin,
   waitJobs
 } from '../../../../shared/extra-utils'
 
@@ -45,7 +44,7 @@ describe('Test server redundancy API validators', function () {
     }
 
     await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(servers[0], user)
+    userAccessToken = await servers[0].loginCommand.getAccessToken(user)
 
     videoIdLocal = (await uploadVideoAndGetId({ server: servers[0], videoName: 'video' })).id
 
index c444663b89e13771714dc06206221bedc2c1fa5e..3dc6cf2b495bf77f7d860256303206d18278f20b 100644 (file)
@@ -15,7 +15,6 @@ import {
   setDefaultVideoChannel,
   updateUser,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '../../../../shared/extra-utils'
 
@@ -50,7 +49,7 @@ describe('Test upload quota', function () {
 
       const user = { username: 'registered' + randomInt(1, 1500), password: 'password' }
       await registerUser(server.url, user.username, user.password)
-      const userAccessToken = await userLogin(server, user)
+      const userAccessToken = await server.loginCommand.getAccessToken(user)
 
       const videoAttributes = { fixture: 'video_short2.webm' }
       for (let i = 0; i < 5; i++) {
@@ -65,7 +64,7 @@ describe('Test upload quota', function () {
 
       const user = { username: 'registered' + randomInt(1, 1500), password: 'password' }
       await registerUser(server.url, user.username, user.password)
-      const userAccessToken = await userLogin(server, user)
+      const userAccessToken = await server.loginCommand.getAccessToken(user)
 
       const videoAttributes = { fixture: 'video_short2.webm' }
       for (let i = 0; i < 5; i++) {
index 538201647417a259e3df5194e908442133c6a792..64e2703b91f750fa1ef2af78b9ea41a3ddae4ac8 100644 (file)
@@ -10,8 +10,7 @@ import {
   makeGetRequest,
   makePostBodyRequest,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 
 import {
@@ -41,7 +40,7 @@ describe('Test user subscriptions API validators', function () {
       password: 'my super password'
     }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
   })
 
   describe('When listing my subscriptions', function () {
index fda7e9640ce11411d8ea86794490f07eff036311..54baeebe1372e82353d4ff4acad23030a0f10329 100644 (file)
@@ -27,8 +27,7 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   unblockUser,
-  uploadVideo,
-  userLogin
+  uploadVideo
 } from '../../../../shared/extra-utils'
 import { MockSmtpServer } from '../../../../shared/extra-utils/mock-servers/mock-email'
 import {
@@ -87,7 +86,7 @@ describe('Test users API validators', function () {
         password: user.password,
         videoQuota: videoQuota
       })
-      userAccessToken = await userLogin(server, user)
+      userAccessToken = await server.loginCommand.getAccessToken(user)
     }
 
     {
@@ -104,7 +103,7 @@ describe('Test users API validators', function () {
         role: UserRole.MODERATOR
       })
 
-      moderatorAccessToken = await userLogin(server, moderator)
+      moderatorAccessToken = await server.loginCommand.getAccessToken(moderator)
     }
 
     {
@@ -394,7 +393,7 @@ describe('Test users API validators', function () {
         username: 'user1',
         password: 'my super password'
       }
-      userAccessToken = await userLogin(server, user)
+      userAccessToken = await server.loginCommand.getAccessToken(user)
 
       const fields = {
         username: 'user3',
index 98cf2e11a596e89737dda5c1b845162fa04f5760..c33bc196d7f451f9d31259d49dbf46805678f66c 100644 (file)
@@ -19,7 +19,6 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { VideoBlacklistType, VideoDetails } from '@shared/models'
@@ -46,14 +45,14 @@ describe('Test video blacklist API validators', function () {
       const username = 'user1'
       const password = 'my super password'
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: username, password: password })
-      userAccessToken1 = await userLogin(servers[0], { username, password })
+      userAccessToken1 = await servers[0].loginCommand.getAccessToken({ username, password })
     }
 
     {
       const username = 'user2'
       const password = 'my super password'
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: username, password: password })
-      userAccessToken2 = await userLogin(servers[0], { username, password })
+      userAccessToken2 = await servers[0].loginCommand.getAccessToken({ username, password })
     }
 
     {
index baab0f2764ab0fb8dcb3b51900011150e4ae8e6b..f2fd61b911d2da2ae6bcb3075847c81607559387 100644 (file)
@@ -12,8 +12,7 @@ import {
   makeUploadRequest,
   ServerInfo,
   setAccessTokensToServers,
-  uploadVideo,
-  userLogin
+  uploadVideo
 } from '@shared/extra-utils'
 import { VideoCreateResult } from '@shared/models'
 
@@ -44,7 +43,7 @@ describe('Test video captions API validator', function () {
         password: 'my super password'
       }
       await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-      userAccessToken = await userLogin(server, user)
+      userAccessToken = await server.loginCommand.getAccessToken(user)
     }
   })
 
index 3b72d3796986c4b4b4023473dbd49cf288813cc9..5361f69172592f93a3716c4155b754177c9412a9 100644 (file)
@@ -18,8 +18,7 @@ import {
   makePutBodyRequest,
   makeUploadRequest,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '@shared/extra-utils'
 import { VideoChannelUpdate } from '@shared/models'
 
@@ -47,7 +46,7 @@ describe('Test video channels API validator', function () {
 
     {
       await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-      accessTokenUser = await userLogin(server, user)
+      accessTokenUser = await server.loginCommand.getAccessToken(user)
     }
 
     command = server.channelsCommand
index 0f8c81392945e7a7f98ee24dca19044b93ab8c0d..c21aebaaea92762e34e075bce9b423ed005e76e9 100644 (file)
@@ -15,8 +15,7 @@ import {
   makePostBodyRequest,
   ServerInfo,
   setAccessTokensToServers,
-  uploadVideo,
-  userLogin
+  uploadVideo
 } from '@shared/extra-utils'
 import { VideoCreateResult } from '@shared/models'
 
@@ -55,13 +54,13 @@ describe('Test video comments API validator', function () {
     {
       const user = { username: 'user1', password: 'my super password' }
       await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-      userAccessToken = await userLogin(server, user)
+      userAccessToken = await server.loginCommand.getAccessToken(user)
     }
 
     {
       const user = { username: 'user2', password: 'my super password' }
       await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-      userAccessToken2 = await userLogin(server, user)
+      userAccessToken2 = await server.loginCommand.getAccessToken(user)
     }
   })
 
index 2cc124cc1a645a4d7a21acdbf3b21a19e214ec4f..51260affab3de43f7be9d24af2f225a777968585 100644 (file)
@@ -17,8 +17,7 @@ import {
   makePostBodyRequest,
   makeUploadRequest,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '@shared/extra-utils'
 import { VideoPrivacy } from '@shared/models'
 
@@ -40,7 +39,7 @@ describe('Test video imports API validator', function () {
     const username = 'user1'
     const password = 'my super password'
     await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
-    userAccessToken = await userLogin(server, { username, password })
+    userAccessToken = await server.loginCommand.getAccessToken({ username, password })
 
     {
       const res = await getMyUserInformation(server.url, server.accessToken)
@@ -167,7 +166,7 @@ describe('Test video imports API validator', function () {
       }
       await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
 
-      const accessTokenUser = await userLogin(server, user)
+      const accessTokenUser = await server.loginCommand.getAccessToken(user)
       const res = await getMyUserInformation(server.url, accessTokenUser)
       const customChannelId = res.body.videoChannels[0].id
 
index 4d54a4fd04e757a6355cff7b20fb04f52b0f97d3..095b946569ee71ad009498600e9c602d7d959d20 100644 (file)
@@ -8,8 +8,7 @@ import {
   makeGetRequest,
   ServerInfo,
   setAccessTokensToServers,
-  setDefaultVideoChannel,
-  userLogin
+  setDefaultVideoChannel
 } from '../../../../shared/extra-utils'
 import { UserRole } from '../../../../shared/models/users'
 import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
@@ -52,7 +51,7 @@ describe('Test video filters validators', function () {
 
     const user = { username: 'user1', password: 'my super password' }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
 
     const moderator = { username: 'moderator', password: 'my super password' }
     await createUser(
@@ -66,7 +65,7 @@ describe('Test video filters validators', function () {
         role: UserRole.MODERATOR
       }
     )
-    moderatorAccessToken = await userLogin(server, moderator)
+    moderatorAccessToken = await server.loginCommand.getAccessToken(moderator)
   })
 
   describe('When setting a video filter', function () {
index 6549063b1d5e69139b922725204ed5883645110a..8e11232bd930f1b704120c73a65cddbc5b1ddc55 100644 (file)
@@ -22,8 +22,7 @@ import {
   removeVideo,
   root,
   ServerInfo,
-  setAccessTokensToServers,
-  userLogin
+  setAccessTokensToServers
 } from '../../../../shared/extra-utils'
 import {
   checkBadCountPagination,
@@ -55,7 +54,7 @@ describe('Test videos API validator', function () {
     const username = 'user1'
     const password = 'my super password'
     await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
-    userAccessToken = await userLogin(server, { username, password })
+    userAccessToken = await server.loginCommand.getAccessToken({ username, password })
 
     {
       const res = await getMyUserInformation(server.url, server.accessToken)
@@ -286,7 +285,7 @@ describe('Test videos API validator', function () {
         }
         await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
 
-        const accessTokenUser = await userLogin(server, user)
+        const accessTokenUser = await server.loginCommand.getAccessToken(user)
         const res = await getMyUserInformation(server.url, accessTokenUser)
         const customChannelId = res.body.videoChannels[0].id
 
index e428cf1a8affb7e1a9b426af19bd51447fdda545..d7462f38f146c6d5f648b444bfd7418991ca0111 100644 (file)
@@ -17,7 +17,6 @@ import {
   setAccessTokensToServers,
   uploadVideo,
   uploadVideoAndGetId,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { AbuseMessage, AbusePredefinedReasonsString, AbuseState, AdminAbuse, UserAbuse } from '@shared/models'
@@ -280,7 +279,7 @@ describe('Test abuses', function () {
       // register a second user to have two reporters/reportees
       const user = { username: 'user2', password: 'password' }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, ...user })
-      const userAccessToken = await userLogin(servers[0], user)
+      const userAccessToken = await servers[0].loginCommand.getAccessToken(user)
 
       // upload a third video via this user
       const video3Attributes = {
index b676a4db46f29500c23ceee1826b20fc84ae2b27..4f2be61984d2b1a6c2ef53258d3520101aea07cf 100644 (file)
@@ -10,7 +10,6 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { UserNotificationType } from '@shared/models'
@@ -86,7 +85,7 @@ describe('Test blocklist', function () {
         videoQuotaDaily: -1
       })
 
-      userToken1 = await userLogin(servers[0], user)
+      userToken1 = await servers[0].loginCommand.getAccessToken(user)
       await uploadVideo(servers[0].url, userToken1, { name: 'video user 1' })
     }
 
@@ -94,14 +93,14 @@ describe('Test blocklist', function () {
       const user = { username: 'user2', password: 'password' }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password })
 
-      userToken2 = await userLogin(servers[0], user)
+      userToken2 = await servers[0].loginCommand.getAccessToken(user)
     }
 
     {
       const user = { username: 'user3', password: 'password' }
       await createUser({ url: servers[1].url, accessToken: servers[1].accessToken, username: user.username, password: user.password })
 
-      remoteUserToken = await userLogin(servers[1], user)
+      remoteUserToken = await servers[1].loginCommand.getAccessToken(user)
     }
 
     await doubleFollow(servers[0], servers[1])
index 44e3de4e40cd93cd48bd95dffb77c9ef7edffb9d..c38a7dad403f62dc6e877c1ba255b12be99844b4 100644 (file)
@@ -14,7 +14,6 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { UserNotificationType, Video } from '@shared/models'
@@ -94,7 +93,7 @@ describe('Test blocklist', function () {
       const user = { username: 'user1', password: 'password' }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password })
 
-      userToken1 = await userLogin(servers[0], user)
+      userToken1 = await servers[0].loginCommand.getAccessToken(user)
       await uploadVideo(servers[0].url, userToken1, { name: 'video user 1' })
     }
 
@@ -102,14 +101,14 @@ describe('Test blocklist', function () {
       const user = { username: 'moderator', password: 'password' }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password })
 
-      userModeratorToken = await userLogin(servers[0], user)
+      userModeratorToken = await servers[0].loginCommand.getAccessToken(user)
     }
 
     {
       const user = { username: 'user2', password: 'password' }
       await createUser({ url: servers[1].url, accessToken: servers[1].accessToken, username: user.username, password: user.password })
 
-      userToken2 = await userLogin(servers[1], user)
+      userToken2 = await servers[1].loginCommand.getAccessToken(user)
       await uploadVideo(servers[1].url, userToken2, { name: 'video user 2' })
     }
 
index 8b4723a2b0ae091d601955d281f52a597702a30f..b61effc5751166e4785ae9aea05ad922089c3589 100644 (file)
@@ -19,7 +19,6 @@ import {
   setAccessTokensToServers,
   updateVideo,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { User, UserAdminFlag, UserRole, VideoBlacklist, VideoBlacklistType } from '@shared/models'
@@ -366,7 +365,7 @@ describe('Test video blacklist', function () {
           role: UserRole.USER
         })
 
-        userWithoutFlag = await userLogin(servers[0], user)
+        userWithoutFlag = await servers[0].loginCommand.getAccessToken(user)
 
         const res = await getMyUserInformation(servers[0].url, userWithoutFlag)
         const body: User = res.body
@@ -384,7 +383,7 @@ describe('Test video blacklist', function () {
           role: UserRole.USER
         })
 
-        userWithFlag = await userLogin(servers[0], user)
+        userWithFlag = await servers[0].loginCommand.getAccessToken(user)
       }
 
       await waitJobs(servers)
index 83be9cd1eb7d00117c7fc519b378ab3de629f55c..3cba2b0191c69929b020bef36596367737ccc469 100644 (file)
@@ -13,7 +13,6 @@ import {
   updateMyUser,
   updateVideo,
   uploadVideo,
-  userLogin,
   wait,
   waitJobs
 } from '@shared/extra-utils'
@@ -47,7 +46,7 @@ describe('Test ActivityPub video channels search', function () {
     {
       const user = { username: 'user1_server2', password: 'password' }
       await createUser({ url: servers[1].url, accessToken: servers[1].accessToken, username: user.username, password: user.password })
-      userServer2Token = await userLogin(servers[1], user)
+      userServer2Token = await servers[1].loginCommand.getAccessToken(user)
 
       const channel = {
         name: 'channel1_server2',
index 5c8673e00e3bb3cf7933ad3f07b6206b0a9abeb0..a09c2122857991100576485d0a56f3b197ee8306 100644 (file)
@@ -2,7 +2,6 @@
 
 import 'mocha'
 import * as chai from 'chai'
-import { Video } from '@shared/models'
 import {
   BulkCommand,
   cleanupTests,
@@ -13,9 +12,9 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   uploadVideo,
-  userLogin,
   waitJobs
-} from '../../../../shared/extra-utils/index'
+} from '@shared/extra-utils'
+import { Video } from '@shared/models'
 
 const expect = chai.expect
 
@@ -41,21 +40,21 @@ describe('Test bulk actions', function () {
       const user = { username: 'user1', password: 'password' }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password })
 
-      user1Token = await userLogin(servers[0], user)
+      user1Token = await servers[0].loginCommand.getAccessToken(user)
     }
 
     {
       const user = { username: 'user2', password: 'password' }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password })
 
-      user2Token = await userLogin(servers[0], user)
+      user2Token = await servers[0].loginCommand.getAccessToken(user)
     }
 
     {
       const user = { username: 'user3', password: 'password' }
       await createUser({ url: servers[1].url, accessToken: servers[1].accessToken, username: user.username, password: user.password })
 
-      user3Token = await userLogin(servers[1], user)
+      user3Token = await servers[1].loginCommand.getAccessToken(user)
     }
 
     await doubleFollow(servers[0], servers[1])
index 5d997713b6aa549855068c2361e28fb20802deba..c64c120e3045aba1ddeb8e9d884672dfa811b9bc 100644 (file)
@@ -15,7 +15,6 @@ import {
   setAccessTokensToServers,
   unblockUser,
   uploadVideo,
-  userLogin,
   verifyEmail
 } from '../../../../shared/extra-utils'
 import { MockSmtpServer } from '../../../../shared/extra-utils/mock-servers/mock-email'
@@ -62,7 +61,7 @@ describe('Test emails', function () {
       const res = await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
       userId = res.body.user.id
 
-      userAccessToken = await userLogin(server, user)
+      userAccessToken = await server.loginCommand.getAccessToken(user)
     }
 
     {
@@ -128,7 +127,7 @@ describe('Test emails', function () {
     it('Should login with this new password', async function () {
       user.password = 'super_password2'
 
-      await userLogin(server, user)
+      await server.loginCommand.getAccessToken(user)
     })
   })
 
@@ -175,7 +174,7 @@ describe('Test emails', function () {
     })
 
     it('Should login with this new password', async function () {
-      await userLogin(server, {
+      await server.loginCommand.getAccessToken({
         username: 'create_password',
         password: 'newly_created_password'
       })
index 0f1c6264d1067437b28260a6d15288c8c0198f6a..74cdf353b3f3630a594f7ac822fb5ba21dad0f67 100644 (file)
@@ -15,8 +15,7 @@ import {
   getVideoWithToken,
   ServerInfo,
   setAccessTokensToServers,
-  uploadVideo,
-  userLogin
+  uploadVideo
 } from '../../../../shared/extra-utils'
 
 const expect = chai.expect
@@ -49,7 +48,7 @@ describe('Test follow constraints', function () {
       password: 'super_password'
     }
     await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(servers[0], user)
+    userAccessToken = await servers[0].loginCommand.getAccessToken(user)
 
     await doubleFollow(servers[0], servers[1])
   })
index 4a9ed2d05f8cc2d5d2df9e8020b826fbbc85997f..c2a0620a581878530a648ec2487460f17d55ac64 100644 (file)
@@ -16,7 +16,6 @@ import {
   setAccessTokensToServers,
   testCaptionFile,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { Video, VideoPrivacy } from '@shared/models'
@@ -330,7 +329,7 @@ describe('Test follows', function () {
       {
         const user = { username: 'captain', password: 'password' }
         await createUser({ url: servers[2].url, accessToken: servers[2].accessToken, username: user.username, password: user.password })
-        const userAccessToken = await userLogin(servers[2], user)
+        const userAccessToken = await servers[2].loginCommand.getAccessToken(user)
 
         const resVideos = await getVideosList(servers[2].url)
         video4 = resVideos.body.data.find(v => v.name === 'server3-4')
index 17d1ee4a573e47ae0a51417b80746faee8fdaf1c..d9c669571d7530b873101311fd6c9769045c6788 100644 (file)
@@ -1,12 +1,17 @@
 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 
-import 'mocha'
-import * as chai from 'chai'
-import { cleanupTests, getVideo, registerUser, uploadVideo, userLogin, viewVideo, wait } from '../../../../shared/extra-utils'
-import { flushAndRunServer, setAccessTokensToServers } from '../../../../shared/extra-utils/index'
-import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
-
-const expect = chai.expect
+import { expect } from 'chai'
+import { HttpStatusCode } from '@shared/core-utils'
+import {
+  cleanupTests,
+  flushAndRunServer,
+  getVideo,
+  registerUser,
+  setAccessTokensToServers,
+  uploadVideo,
+  viewVideo,
+  wait
+} from '@shared/extra-utils'
 
 describe('Test application behind a reverse proxy', function () {
   let server = null
@@ -97,10 +102,10 @@ describe('Test application behind a reverse proxy', function () {
     const user = { username: 'root', password: 'fail' }
 
     for (let i = 0; i < 19; i++) {
-      await userLogin(server, user, HttpStatusCode.BAD_REQUEST_400)
+      await server.loginCommand.getAccessToken(user, HttpStatusCode.BAD_REQUEST_400)
     }
 
-    await userLogin(server, user, HttpStatusCode.TOO_MANY_REQUESTS_429)
+    await server.loginCommand.getAccessToken(user, HttpStatusCode.TOO_MANY_REQUESTS_429)
   })
 
   it('Should rate limit signup', async function () {
index ded305899ed55f84a3a03e2116141d3f803c7e27..aa26f978d739bb9fdd73d0aa179b85c523376176 100644 (file)
@@ -10,7 +10,6 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   uploadVideo,
-  userLogin,
   viewVideo,
   wait,
   waitJobs
@@ -119,7 +118,7 @@ describe('Test stats (excluding redundancy)', function () {
     }
 
     {
-      await userLogin(server, user)
+      await server.loginCommand.getAccessToken(user)
 
       const data = await server.statsCommand.get()
 
index c119622ad6f96dccd7d2c25e74f5fa6339d1e8a4..1d0fc35f1052ac211f1f298be7728369dfb25b2f 100644 (file)
@@ -13,7 +13,6 @@ import {
   SubscriptionsCommand,
   updateVideo,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 
@@ -42,7 +41,7 @@ describe('Test users subscriptions', function () {
         const user = { username: 'user' + server.serverNumber, password: 'password' }
         await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
 
-        const accessToken = await userLogin(server, user)
+        const accessToken = await server.loginCommand.getAccessToken(user)
         users.push({ accessToken })
 
         const videoName1 = 'video 1-' + server.serverNumber
index 7b650cb8fd8e707d98f7d1eb91f071c1a603597f..99fa08fe201d35f42453d814c51e13ed58559e0a 100644 (file)
@@ -19,7 +19,6 @@ import {
   updateMyAvatar,
   updateMyUser,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { User } from '@shared/models'
@@ -64,7 +63,7 @@ describe('Test users with multiple servers', function () {
         password: user.password
       })
       userId = res.body.user.id
-      userAccessToken = await userLogin(servers[0], user)
+      userAccessToken = await servers[0].loginCommand.getAccessToken(user)
     }
 
     {
index 23f81d804c2d90e3c67a3ba7a8f19318410f2c81..ade730323e6655f8a94dc23e3044c5d4246522aa 100644 (file)
@@ -2,23 +2,21 @@
 
 import 'mocha'
 import * as chai from 'chai'
-import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
+import { HttpStatusCode } from '@shared/core-utils'
 import {
   cleanupTests,
   flushAndRunServer,
   getMyUserInformation,
   getUserInformation,
-  login,
+  MockSmtpServer,
   registerUser,
   ServerInfo,
+  setAccessTokensToServers,
   updateMyUser,
-  userLogin,
-  verifyEmail
-} from '../../../../shared/extra-utils'
-import { MockSmtpServer } from '../../../../shared/extra-utils/mock-servers/mock-email'
-import { waitJobs } from '../../../../shared/extra-utils/server/jobs'
-import { setAccessTokensToServers } from '../../../../shared/extra-utils/users/login'
-import { User } from '../../../../shared/models/users'
+  verifyEmail,
+  waitJobs
+} from '@shared/extra-utils'
+import { User } from '@shared/models'
 
 const expect = chai.expect
 
@@ -91,15 +89,15 @@ describe('Test users account verification', function () {
   })
 
   it('Should not allow login for user with unverified email', async function () {
-    const resLogin = await login(server.url, server.client, user1, HttpStatusCode.BAD_REQUEST_400)
-    expect(resLogin.body.detail).to.contain('User email is not verified.')
+    const { detail } = await server.loginCommand.login({ user: user1, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+    expect(detail).to.contain('User email is not verified.')
   })
 
   it('Should verify the user via email and allow login', async function () {
     await verifyEmail(server.url, userId, verificationString)
 
-    const res = await login(server.url, server.client, user1)
-    userAccessToken = res.body.access_token
+    const body = await server.loginCommand.login({ user: user1 })
+    userAccessToken = body.access_token
 
     const resUserVerified = await getUserInformation(server.url, server.accessToken, userId)
     expect(resUserVerified.body.emailVerified).to.be.true
@@ -164,7 +162,7 @@ describe('Test users account verification', function () {
     await waitJobs(server)
     expect(emails).to.have.lengthOf(expectedEmailsLength)
 
-    const accessToken = await userLogin(server, user2)
+    const accessToken = await server.loginCommand.getAccessToken(user2)
 
     const resMyUserInfo = await getMyUserInformation(server.url, accessToken)
     expect(resMyUserInfo.body.emailVerified).to.be.null
@@ -181,7 +179,7 @@ describe('Test users account verification', function () {
       }
     })
 
-    await userLogin(server, user2)
+    await server.loginCommand.getAccessToken(user2)
   })
 
   after(async function () {
index 69a8dba346f8813e6f5e1f91bb18fc25e5dcd384..608bedb8b8be4a15457aafc6b2acd344614eeba8 100644 (file)
@@ -18,11 +18,8 @@ import {
   getUsersListPaginationAndSort,
   getVideosList,
   killallServers,
-  login,
-  logout,
   makePutBodyRequest,
   rateVideo,
-  refreshToken,
   registerUserWithChannel,
   removeUser,
   removeVideo,
@@ -35,7 +32,6 @@ import {
   updateMyUser,
   updateUser,
   uploadVideo,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { AbuseState, MyUser, OAuth2ErrorCode, User, UserAdminFlag, UserRole, Video, VideoPlaylistType } from '@shared/models'
@@ -78,22 +74,22 @@ describe('Test users', function () {
 
     it('Should not login with an invalid client id', async function () {
       const client = { id: 'client', secret: server.client.secret }
-      const res = await login(server.url, client, server.user, HttpStatusCode.BAD_REQUEST_400)
+      const body = await server.loginCommand.login({ client, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
 
-      expect(res.body.code).to.equal(OAuth2ErrorCode.INVALID_CLIENT)
-      expect(res.body.error).to.contain('client is invalid')
-      expect(res.body.type.startsWith('https://')).to.be.true
-      expect(res.body.type).to.contain(OAuth2ErrorCode.INVALID_CLIENT)
+      expect(body.code).to.equal(OAuth2ErrorCode.INVALID_CLIENT)
+      expect(body.error).to.contain('client is invalid')
+      expect(body.type.startsWith('https://')).to.be.true
+      expect(body.type).to.contain(OAuth2ErrorCode.INVALID_CLIENT)
     })
 
     it('Should not login with an invalid client secret', async function () {
       const client = { id: server.client.id, secret: 'coucou' }
-      const res = await login(server.url, client, server.user, HttpStatusCode.BAD_REQUEST_400)
+      const body = await server.loginCommand.login({ client, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
 
-      expect(res.body.code).to.equal(OAuth2ErrorCode.INVALID_CLIENT)
-      expect(res.body.error).to.contain('client is invalid')
-      expect(res.body.type.startsWith('https://')).to.be.true
-      expect(res.body.type).to.contain(OAuth2ErrorCode.INVALID_CLIENT)
+      expect(body.code).to.equal(OAuth2ErrorCode.INVALID_CLIENT)
+      expect(body.error).to.contain('client is invalid')
+      expect(body.type.startsWith('https://')).to.be.true
+      expect(body.type).to.contain(OAuth2ErrorCode.INVALID_CLIENT)
     })
   })
 
@@ -101,22 +97,22 @@ describe('Test users', function () {
 
     it('Should not login with an invalid username', async function () {
       const user = { username: 'captain crochet', password: server.user.password }
-      const res = await login(server.url, server.client, user, HttpStatusCode.BAD_REQUEST_400)
+      const body = await server.loginCommand.login({ user, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
 
-      expect(res.body.code).to.equal(OAuth2ErrorCode.INVALID_GRANT)
-      expect(res.body.error).to.contain('credentials are invalid')
-      expect(res.body.type.startsWith('https://')).to.be.true
-      expect(res.body.type).to.contain(OAuth2ErrorCode.INVALID_GRANT)
+      expect(body.code).to.equal(OAuth2ErrorCode.INVALID_GRANT)
+      expect(body.error).to.contain('credentials are invalid')
+      expect(body.type.startsWith('https://')).to.be.true
+      expect(body.type).to.contain(OAuth2ErrorCode.INVALID_GRANT)
     })
 
     it('Should not login with an invalid password', async function () {
       const user = { username: server.user.username, password: 'mew_three' }
-      const res = await login(server.url, server.client, user, HttpStatusCode.BAD_REQUEST_400)
+      const body = await server.loginCommand.login({ user, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
 
-      expect(res.body.code).to.equal(OAuth2ErrorCode.INVALID_GRANT)
-      expect(res.body.error).to.contain('credentials are invalid')
-      expect(res.body.type.startsWith('https://')).to.be.true
-      expect(res.body.type).to.contain(OAuth2ErrorCode.INVALID_GRANT)
+      expect(body.code).to.equal(OAuth2ErrorCode.INVALID_GRANT)
+      expect(body.error).to.contain('credentials are invalid')
+      expect(body.type.startsWith('https://')).to.be.true
+      expect(body.type).to.contain(OAuth2ErrorCode.INVALID_GRANT)
     })
 
     it('Should not be able to upload a video', async function () {
@@ -139,20 +135,20 @@ describe('Test users', function () {
     it('Should not be able to unfollow')
 
     it('Should be able to login', async function () {
-      const res = await login(server.url, server.client, server.user, HttpStatusCode.OK_200)
+      const body = await server.loginCommand.login({ expectedStatus: HttpStatusCode.OK_200 })
 
-      accessToken = res.body.access_token
+      accessToken = body.access_token
     })
 
     it('Should be able to login with an insensitive username', async function () {
       const user = { username: 'RoOt', password: server.user.password }
-      await login(server.url, server.client, user, HttpStatusCode.OK_200)
+      await server.loginCommand.login({ user, expectedStatus: HttpStatusCode.OK_200 })
 
       const user2 = { username: 'rOoT', password: server.user.password }
-      await login(server.url, server.client, user2, HttpStatusCode.OK_200)
+      await server.loginCommand.login({ user: user2, expectedStatus: HttpStatusCode.OK_200 })
 
       const user3 = { username: 'ROOt', password: server.user.password }
-      await login(server.url, server.client, user3, HttpStatusCode.OK_200)
+      await server.loginCommand.login({ user: user3, expectedStatus: HttpStatusCode.OK_200 })
     })
   })
 
@@ -222,7 +218,7 @@ describe('Test users', function () {
 
   describe('Logout', function () {
     it('Should logout (revoke token)', async function () {
-      await logout(server.url, server.accessToken)
+      await server.loginCommand.logout({ token: server.accessToken })
     })
 
     it('Should not be able to get the user information', async function () {
@@ -250,9 +246,9 @@ describe('Test users', function () {
     })
 
     it('Should be able to login again', async function () {
-      const res = await login(server.url, server.client, server.user)
-      server.accessToken = res.body.access_token
-      server.refreshToken = res.body.refresh_token
+      const body = await server.loginCommand.login()
+      server.accessToken = body.access_token
+      server.refreshToken = body.refresh_token
     })
 
     it('Should be able to get my user information again', async function () {
@@ -268,11 +264,11 @@ describe('Test users', function () {
       await killallServers([ server ])
       await reRunServer(server)
 
-      await getMyUserInformation(server.url, server.accessToken, 401)
+      await getMyUserInformation(server.url, server.accessToken, HttpStatusCode.UNAUTHORIZED_401)
     })
 
     it('Should not be able to refresh an access token with an expired refresh token', async function () {
-      await refreshToken(server, server.refreshToken, 400)
+      await server.loginCommand.refreshToken({ refreshToken: server.refreshToken, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     })
 
     it('Should refresh the token', async function () {
@@ -284,7 +280,7 @@ describe('Test users', function () {
       await killallServers([ server ])
       await reRunServer(server)
 
-      const res = await refreshToken(server, server.refreshToken)
+      const res = await server.loginCommand.refreshToken({ refreshToken: server.refreshToken })
       server.accessToken = res.body.access_token
       server.refreshToken = res.body.refresh_token
     })
@@ -308,7 +304,7 @@ describe('Test users', function () {
     })
 
     it('Should be able to login with this user', async function () {
-      accessTokenUser = await userLogin(server, user)
+      accessTokenUser = await server.loginCommand.getAccessToken(user)
     })
 
     it('Should be able to get user information', async function () {
@@ -562,6 +558,7 @@ describe('Test users', function () {
   })
 
   describe('Update my account', function () {
+
     it('Should update my password', async function () {
       await updateMyUser({
         url: server.url,
@@ -571,7 +568,7 @@ describe('Test users', function () {
       })
       user.password = 'new password'
 
-      await userLogin(server, user, HttpStatusCode.OK_200)
+      await server.loginCommand.login({ user })
     })
 
     it('Should be able to change the NSFW display attribute', async function () {
@@ -781,7 +778,7 @@ describe('Test users', function () {
     it('Should have removed the user token', async function () {
       await getMyUserVideoQuotaUsed(server.url, accessTokenUser, HttpStatusCode.UNAUTHORIZED_401)
 
-      accessTokenUser = await userLogin(server, user)
+      accessTokenUser = await server.loginCommand.getAccessToken(user)
     })
 
     it('Should be able to update another user password', async function () {
@@ -794,10 +791,10 @@ describe('Test users', function () {
 
       await getMyUserVideoQuotaUsed(server.url, accessTokenUser, HttpStatusCode.UNAUTHORIZED_401)
 
-      await userLogin(server, user, HttpStatusCode.BAD_REQUEST_400)
+      await server.loginCommand.login({ user, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
 
       user.password = 'password updated'
-      accessTokenUser = await userLogin(server, user)
+      accessTokenUser = await server.loginCommand.getAccessToken(user)
     })
   })
 
@@ -813,7 +810,7 @@ describe('Test users', function () {
     })
 
     it('Should not be able to login with this user', async function () {
-      await userLogin(server, user, HttpStatusCode.BAD_REQUEST_400)
+      await server.loginCommand.login({ user, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     })
 
     it('Should not have videos of this user', async function () {
@@ -842,7 +839,7 @@ describe('Test users', function () {
         password: 'my super password'
       }
 
-      user15AccessToken = await userLogin(server, user15)
+      user15AccessToken = await server.loginCommand.getAccessToken(user15)
     })
 
     it('Should have the correct display name', async function () {
@@ -897,13 +894,13 @@ describe('Test users', function () {
       })
       user16Id = resUser.body.user.id
 
-      user16AccessToken = await userLogin(server, user16)
+      user16AccessToken = await server.loginCommand.getAccessToken(user16)
 
       await getMyUserInformation(server.url, user16AccessToken, HttpStatusCode.OK_200)
       await blockUser(server.url, user16Id, server.accessToken)
 
       await getMyUserInformation(server.url, user16AccessToken, HttpStatusCode.UNAUTHORIZED_401)
-      await userLogin(server, user16, HttpStatusCode.BAD_REQUEST_400)
+      await server.loginCommand.login({ user: user16, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     })
 
     it('Should search user by banned status', async function () {
@@ -930,7 +927,7 @@ describe('Test users', function () {
 
     it('Should unblock a user', async function () {
       await unblockUser(server.url, user16Id, server.accessToken)
-      user16AccessToken = await userLogin(server, user16)
+      user16AccessToken = await server.loginCommand.getAccessToken(user16)
       await getMyUserInformation(server.url, user16AccessToken, HttpStatusCode.OK_200)
     })
   })
@@ -952,7 +949,7 @@ describe('Test users', function () {
       })
 
       user17Id = resUser.body.user.id
-      user17AccessToken = await userLogin(server, user17)
+      user17AccessToken = await server.loginCommand.getAccessToken(user17)
 
       const res = await getUserInformation(server.url, server.accessToken, user17Id, true)
       const user: User = res.body
index 1905aac837e05558a6eb117e658be3fd24984c1b..740314bfdc71c61979b334ddc6340fe58267cab9 100644 (file)
@@ -24,7 +24,6 @@ import {
   testImage,
   updateVideo,
   uploadVideo,
-  userLogin,
   viewVideo,
   wait,
   waitJobs,
@@ -155,7 +154,7 @@ describe('Test multiple servers', function () {
         password: 'super_password'
       }
       await createUser({ url: servers[1].url, accessToken: servers[1].accessToken, username: user.username, password: user.password })
-      const userAccessToken = await userLogin(servers[1], user)
+      const userAccessToken = await servers[1].loginCommand.getAccessToken(user)
 
       const videoAttributes = {
         name: 'my super name for server 2',
index 1b81fe0473b3353e2b2b72a52052880e57e8f2fe..17c738e6fbd32e05bf44557ecf5ba5d89a2f7cdd 100644 (file)
@@ -16,8 +16,7 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   setDefaultVideoChannel,
-  uploadVideo,
-  userLogin
+  uploadVideo
 } from '../../../../shared/extra-utils'
 import { waitJobs } from '../../../../shared/extra-utils/server/jobs'
 import { User } from '../../../../shared/models/users'
@@ -82,8 +81,8 @@ describe('Test video change ownership - nominal', function () {
       videoQuota: videoQuota
     })
 
-    firstUserToken = await userLogin(servers[0], firstUser)
-    secondUserToken = await userLogin(servers[0], secondUser)
+    firstUserToken = await servers[0].loginCommand.getAccessToken(firstUser)
+    secondUserToken = await servers[0].loginCommand.getAccessToken(secondUser)
 
     {
       const res = await getMyUserInformation(servers[0].url, firstUserToken)
@@ -323,8 +322,8 @@ describe('Test video change ownership - quota too small', function () {
       videoQuota: limitedVideoQuota
     })
 
-    firstUserToken = await userLogin(server, firstUser)
-    secondUserToken = await userLogin(server, secondUser)
+    firstUserToken = await server.loginCommand.getAccessToken(firstUser)
+    secondUserToken = await server.loginCommand.getAccessToken(secondUser)
 
     // Upload some videos on the server
     const video1Attributes = {
index e441ebbd433ddf7d34995979fb3e34822d9d7a72..83645640ce73f6b67a113b6e3f262a961c251f69 100644 (file)
@@ -16,7 +16,6 @@ import {
   testImage,
   updateVideo,
   uploadVideo,
-  userLogin,
   wait
 } from '../../../../shared/extra-utils'
 import { getMyUserInformation, ServerInfo, setAccessTokensToServers, viewVideo } from '../../../../shared/extra-utils/index'
@@ -391,7 +390,7 @@ describe('Test video channels', function () {
 
     {
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: 'toto', password: 'password' })
-      const accessToken = await userLogin(servers[0], { username: 'toto', password: 'password' })
+      const accessToken = await servers[0].loginCommand.getAccessToken({ username: 'toto', password: 'password' })
 
       const res = await getMyUserInformation(servers[0].url, accessToken)
       const videoChannel = res.body.videoChannels[0]
index 548d9fbf5f13e3ce2d1dfb8b4feb6188a4e0b34b..f9bd2364627d1779dc2dc911dc5776fa23954ee1 100644 (file)
@@ -8,7 +8,6 @@ import {
   createUser,
   dateIsValid,
   flushAndRunServer,
-  getAccessToken,
   ServerInfo,
   setAccessTokensToServers,
   testImage,
@@ -52,7 +51,7 @@ describe('Test video comments', function () {
       username: 'user1',
       password: 'password'
     })
-    userAccessTokenServer1 = await getAccessToken(server.url, 'user1', 'password')
+    userAccessTokenServer1 = await server.loginCommand.getAccessToken('user1', 'password')
 
     command = server.commentsCommand
   })
index c9c3792ebc79f10674d2b7a87294af4225617e89..a30b11ace49593753de9fbf6f42eb4cef4f51409 100644 (file)
@@ -15,8 +15,7 @@ import {
   ServerInfo,
   setAccessTokensToServers,
   updateMyUser,
-  uploadVideo,
-  userLogin
+  uploadVideo
 } from '@shared/extra-utils'
 import { BooleanBothQuery, CustomConfig, ResultList, User, Video, VideosOverview } from '@shared/models'
 
@@ -151,7 +150,7 @@ describe('Test video NSFW policy', function () {
       const password = 'my super password'
       await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
 
-      userAccessToken = await userLogin(server, { username, password })
+      userAccessToken = await server.loginCommand.getAccessToken({ username, password })
 
       const res = await getMyUserInformation(server.url, userAccessToken)
       const user = res.body
index 2bb019348929a9645f2b1139d1f7b764df7b16c9..38133e2ce42dcb69bcc07c761db06cc755eae2f4 100644 (file)
@@ -10,7 +10,6 @@ import {
   doubleFollow,
   flushAndRunMultipleServers,
   generateUserAccessToken,
-  getAccessToken,
   getMyUserInformation,
   PlaylistsCommand,
   removeUser,
@@ -21,7 +20,6 @@ import {
   updateVideo,
   uploadVideo,
   uploadVideoAndGetId,
-  userLogin,
   wait,
   waitJobs
 } from '@shared/extra-utils'
@@ -122,7 +120,7 @@ describe('Test video playlists', function () {
         username: 'user1',
         password: 'password'
       })
-      userTokenServer1 = await getAccessToken(servers[0].url, 'user1', 'password')
+      userTokenServer1 = await servers[0].loginCommand.getAccessToken('user1', 'password')
     }
 
     await waitJobs(servers)
@@ -1129,7 +1127,7 @@ describe('Test video playlists', function () {
       })
 
       const userId = res.body.user.id
-      const userAccessToken = await userLogin(servers[0], user)
+      const userAccessToken = await servers[0].loginCommand.getAccessToken(user)
 
       const resChannel = await getMyUserInformation(servers[0].url, userAccessToken)
       const userChannel = (resChannel.body as User).videoChannels[0]
index 950aeb7cf713a223c0349c9c68f3661cf0c8b5c7..f831dd8a9f86b1bf29a5e60633dc4221bfc73e30 100644 (file)
@@ -2,23 +2,24 @@
 
 import 'mocha'
 import * as chai from 'chai'
-import { HttpStatusCode } from '@shared/core-utils/miscs/http-error-codes'
-import { Video, VideoCreateResult } from '@shared/models'
+import { HttpStatusCode } from '@shared/core-utils'
 import {
   cleanupTests,
+  createUser,
+  doubleFollow,
   flushAndRunServer,
+  getMyVideos,
+  getVideo,
   getVideosList,
   getVideosListWithToken,
+  getVideoWithToken,
   ServerInfo,
   setAccessTokensToServers,
-  uploadVideo
-} from '../../../../shared/extra-utils/index'
-import { doubleFollow } from '../../../../shared/extra-utils/server/follows'
-import { waitJobs } from '../../../../shared/extra-utils/server/jobs'
-import { userLogin } from '../../../../shared/extra-utils/users/login'
-import { createUser } from '../../../../shared/extra-utils/users/users'
-import { getMyVideos, getVideo, getVideoWithToken, updateVideo } from '../../../../shared/extra-utils/videos/videos'
-import { VideoPrivacy } from '../../../../shared/models/videos/video-privacy.enum'
+  updateVideo,
+  uploadVideo,
+  waitJobs
+} from '@shared/extra-utils'
+import { Video, VideoCreateResult, VideoPrivacy } from '@shared/models'
 
 const expect = chai.expect
 
@@ -126,7 +127,7 @@ describe('Test video privacy', function () {
       }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: user.username, password: user.password })
 
-      anotherUserToken = await userLogin(servers[0], user)
+      anotherUserToken = await servers[0].loginCommand.getAccessToken(user)
       await getVideoWithToken(servers[0].url, anotherUserToken, privateVideoUUID, HttpStatusCode.FORBIDDEN_403)
     })
 
index 7428b82c57cc99e8e758026bff7b8d1100ba6ebd..519dad646fc9a087068af626648167a7942c19f8 100644 (file)
@@ -1,7 +1,8 @@
 /* eslint-disable @typescript-eslint/no-unused-expressions,@typescript-eslint/require-await */
 
-import * as chai from 'chai'
 import 'mocha'
+import * as chai from 'chai'
+import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
 import {
   cleanupTests,
   createUser,
@@ -10,12 +11,10 @@ import {
   makeGetRequest,
   ServerInfo,
   setAccessTokensToServers,
-  uploadVideo,
-  userLogin
+  uploadVideo
 } from '../../../../shared/extra-utils'
-import { Video, VideoPrivacy } from '../../../../shared/models/videos'
 import { UserRole } from '../../../../shared/models/users'
-import { HttpStatusCode } from '../../../../shared/core-utils/miscs/http-error-codes'
+import { Video, VideoPrivacy } from '../../../../shared/models/videos'
 
 const expect = chai.expect
 
@@ -72,7 +71,7 @@ describe('Test videos filter', function () {
           role: UserRole.MODERATOR
         }
       )
-      server['moderatorAccessToken'] = await userLogin(server, moderator)
+      server['moderatorAccessToken'] = await server.loginCommand.getAccessToken(moderator)
 
       await uploadVideo(server.url, server.accessToken, { name: 'public ' + server.serverNumber })
 
index 9a7635c35f841603898fa872cbade3e8228cee3b..256271bd0ec790bbcc5e26a3de968d866dbf47f0 100644 (file)
@@ -16,7 +16,6 @@ import {
   setAccessTokensToServers,
   updateMyUser,
   uploadVideo,
-  userLogin,
   wait
 } from '@shared/extra-utils'
 import { Video, VideoDetails } from '@shared/models'
@@ -61,7 +60,7 @@ describe('Test videos history', function () {
       password: 'super password'
     }
     await createUser({ url: server.url, accessToken: server.accessToken, username: user.username, password: user.password })
-    userAccessToken = await userLogin(server, user)
+    userAccessToken = await server.loginCommand.getAccessToken(user)
   })
 
   it('Should get videos, without watching history', async function () {
index 5ab07edb05b0c5faf0ad2c3f693fa3cd4a99d322..e055b46840ed4c39e109a15ee98932bf1e82d46d 100644 (file)
@@ -21,7 +21,6 @@ import {
   setAccessTokensToServers,
   testHelloWorldRegisteredSettings,
   uploadVideoAndGetId,
-  userLogin,
   waitJobs
 } from '../../../shared/extra-utils'
 
@@ -41,7 +40,7 @@ describe('Test CLI wrapper', function () {
 
     await createUser({ url: server.url, accessToken: server.accessToken, username: 'user_1', password: 'super_password' })
 
-    userAccessToken = await userLogin(server, { username: 'user_1', password: 'super_password' })
+    userAccessToken = await server.loginCommand.getAccessToken({ username: 'user_1', password: 'super_password' })
 
     {
       const attributes = { name: 'user_channel', displayName: 'User channel', support: 'super support text' }
index 97a6eae15e9b348a7bca2f265b85d98062f2b083..a5f958bf7e1fc2e23bb3c121fca723589b458e4e 100644 (file)
@@ -1,14 +1,5 @@
 import 'mocha'
-import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
-import {
-  cleanupTests,
-  CLICommand,
-  createUser,
-  flushAndRunServer,
-  login,
-  ServerInfo,
-  setAccessTokensToServers
-} from '../../../shared/extra-utils'
+import { cleanupTests, CLICommand, createUser, flushAndRunServer, ServerInfo, setAccessTokensToServers } from '../../../shared/extra-utils'
 
 describe('Test reset password scripts', function () {
   let server: ServerInfo
@@ -27,7 +18,7 @@ describe('Test reset password scripts', function () {
     const env = server.cliCommand.getEnv()
     await CLICommand.exec(`echo coucou | ${env} npm run reset-password -- -u user_1`)
 
-    await login(server.url, server.client, { username: 'user_1', password: 'coucou' }, HttpStatusCode.OK_200)
+    await server.loginCommand.login({ user: { username: 'user_1', password: 'coucou' } })
   })
 
   after(async function () {
index 0d4edbee0fc17118f9bdd2b0083ce9b6a931722b..8153e2b8117fd04335193aba2478a71d1efe3a08 100644 (file)
@@ -2,8 +2,9 @@
 
 import 'mocha'
 import { expect } from 'chai'
+import { HttpStatusCode } from '@shared/core-utils'
 import { User } from '@shared/models/users/user.model'
-import { blockUser, getMyUserInformation, setAccessTokensToServers, unblockUser, uploadVideo, userLogin } from '../../../shared/extra-utils'
+import { blockUser, getMyUserInformation, setAccessTokensToServers, unblockUser, uploadVideo } from '../../../shared/extra-utils'
 import { cleanupTests, flushAndRunServer, ServerInfo } from '../../../shared/extra-utils/server/servers'
 
 describe('Official plugin auth-ldap', function () {
@@ -21,7 +22,7 @@ describe('Official plugin auth-ldap', function () {
   })
 
   it('Should not login with without LDAP settings', async function () {
-    await userLogin(server, { username: 'fry', password: 'fry' }, 400)
+    await server.loginCommand.login({ user: { username: 'fry', password: 'fry' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
   })
 
   it('Should not login with bad LDAP settings', async function () {
@@ -39,7 +40,7 @@ describe('Official plugin auth-ldap', function () {
       }
     })
 
-    await userLogin(server, { username: 'fry', password: 'fry' }, 400)
+    await server.loginCommand.login({ user: { username: 'fry', password: 'fry' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
   })
 
   it('Should not login with good LDAP settings but wrong username/password', async function () {
@@ -57,16 +58,16 @@ describe('Official plugin auth-ldap', function () {
       }
     })
 
-    await userLogin(server, { username: 'fry', password: 'bad password' }, 400)
-    await userLogin(server, { username: 'fryr', password: 'fry' }, 400)
+    await server.loginCommand.login({ user: { username: 'fry', password: 'bad password' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+    await server.loginCommand.login({ user: { username: 'fryr', password: 'fry' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
   })
 
   it('Should login with the appropriate username/password', async function () {
-    accessToken = await userLogin(server, { username: 'fry', password: 'fry' })
+    accessToken = await server.loginCommand.getAccessToken({ username: 'fry', password: 'fry' })
   })
 
   it('Should login with the appropriate email/password', async function () {
-    accessToken = await userLogin(server, { username: 'fry@planetexpress.com', password: 'fry' })
+    accessToken = await server.loginCommand.getAccessToken({ username: 'fry@planetexpress.com', password: 'fry' })
   })
 
   it('Should login get my profile', async function () {
@@ -86,19 +87,25 @@ describe('Official plugin auth-ldap', function () {
   it('Should not be able to login if the user is banned', async function () {
     await blockUser(server.url, userId, server.accessToken)
 
-    await userLogin(server, { username: 'fry@planetexpress.com', password: 'fry' }, 400)
+    await server.loginCommand.login({
+      user: { username: 'fry@planetexpress.com', password: 'fry' },
+      expectedStatus: HttpStatusCode.BAD_REQUEST_400
+    })
   })
 
   it('Should be able to login if the user is unbanned', async function () {
     await unblockUser(server.url, userId, server.accessToken)
 
-    await userLogin(server, { username: 'fry@planetexpress.com', password: 'fry' })
+    await server.loginCommand.login({ user: { username: 'fry@planetexpress.com', password: 'fry' } })
   })
 
   it('Should not login if the plugin is uninstalled', async function () {
     await server.pluginsCommand.uninstall({ npmName: 'peertube-plugin-auth-ldap' })
 
-    await userLogin(server, { username: 'fry@planetexpress.com', password: 'fry' }, 400)
+    await server.loginCommand.login({
+      user: { username: 'fry@planetexpress.com', password: 'fry' },
+      expectedStatus: HttpStatusCode.BAD_REQUEST_400
+    })
   })
 
   after(async function () {
index 610849105c1a524e5123be1d31127eee3e93e3c3..9c78ae0e8d4f117c0346bb51c7861377f617f505 100644 (file)
@@ -17,7 +17,6 @@ import {
   setAccessTokensToServers,
   uploadVideo,
   uploadVideoAndGetId,
-  userLogin,
   waitJobs
 } from '@shared/extra-utils'
 import { User, VideoPrivacy } from '@shared/models'
@@ -64,7 +63,7 @@ describe('Test syndication feeds', () => {
     {
       const attr = { username: 'john', password: 'password' }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: attr.username, password: attr.password })
-      userAccessToken = await userLogin(servers[0], attr)
+      userAccessToken = await servers[0].loginCommand.getAccessToken(attr)
 
       const res = await getMyUserInformation(servers[0].url, userAccessToken)
       const user: User = res.body
@@ -301,7 +300,7 @@ describe('Test syndication feeds', () => {
     it('Should list no videos for a user with no videos and no subscriptions', async function () {
       const attr = { username: 'feeduser', password: 'password' }
       await createUser({ url: servers[0].url, accessToken: servers[0].accessToken, username: attr.username, password: attr.password })
-      const feeduserAccessToken = await userLogin(servers[0], attr)
+      const feeduserAccessToken = await servers[0].loginCommand.getAccessToken(attr)
 
       {
         const res = await getMyUserInformation(servers[0].url, feeduserAccessToken)
index cf81e44b742f178cb25461c0ac7b08d49eb8e0ed..84f4e8501053af83cd14232ce7f02cf279ea5f81 100644 (file)
@@ -14,7 +14,6 @@ import {
   updateUser,
   updateVideo,
   uploadVideo,
-  userLogin,
   viewVideo
 } from '../../../shared/extra-utils'
 import {
@@ -138,7 +137,7 @@ describe('Test plugin action hooks', function () {
     })
 
     it('Should run action:api.user.oauth2-got-token', async function () {
-      await userLogin(servers[0], { username: 'created_user', password: 'super_password' })
+      await servers[0].loginCommand.getAccessToken('created_user', 'super_password')
 
       await checkHook('action:api.user.oauth2-got-token')
     })
index f7cee588abf78ba0a8d41100af3cdae20577e47e..e421fd2245d0ecc692c1b2889e5126abc57861b8 100644 (file)
@@ -9,14 +9,10 @@ import {
   decodeQueryString,
   flushAndRunServer,
   getMyUserInformation,
-  loginUsingExternalToken,
-  logout,
   PluginsCommand,
-  refreshToken,
   ServerInfo,
   setAccessTokensToServers,
   updateMyUser,
-  userLogin,
   wait
 } from '@shared/extra-utils'
 import { User, UserRole } from '@shared/models'
@@ -43,12 +39,11 @@ async function loginExternal (options: {
   const location = res.header.location
   const { externalAuthToken } = decodeQueryString(location)
 
-  const resLogin = await loginUsingExternalToken(
-    options.server,
-    options.username,
-    externalAuthToken as string,
-    options.statusCodeExpectedStep2
-  )
+  const resLogin = await options.server.loginCommand.loginUsingExternalToken({
+    username: options.username,
+    externalAuthToken: externalAuthToken as string,
+    expectedStatus: options.statusCodeExpectedStep2
+  })
 
   return resLogin.body
 }
@@ -110,13 +105,17 @@ describe('Test external auth plugins', function () {
   })
 
   it('Should reject auto external login with a missing or invalid token', async function () {
-    await loginUsingExternalToken(server, 'cyan', '', HttpStatusCode.BAD_REQUEST_400)
-    await loginUsingExternalToken(server, 'cyan', 'blabla', HttpStatusCode.BAD_REQUEST_400)
+    const command = server.loginCommand
+
+    await command.loginUsingExternalToken({ username: 'cyan', externalAuthToken: '', expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+    await command.loginUsingExternalToken({ username: 'cyan', externalAuthToken: 'blabla', expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
   })
 
   it('Should reject auto external login with a missing or invalid username', async function () {
-    await loginUsingExternalToken(server, '', externalAuthToken, HttpStatusCode.BAD_REQUEST_400)
-    await loginUsingExternalToken(server, '', externalAuthToken, HttpStatusCode.BAD_REQUEST_400)
+    const command = server.loginCommand
+
+    await command.loginUsingExternalToken({ username: '', externalAuthToken, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+    await command.loginUsingExternalToken({ username: '', externalAuthToken, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
   })
 
   it('Should reject auto external login with an expired token', async function () {
@@ -124,7 +123,11 @@ describe('Test external auth plugins', function () {
 
     await wait(5000)
 
-    await loginUsingExternalToken(server, 'cyan', externalAuthToken, HttpStatusCode.BAD_REQUEST_400)
+    await server.loginCommand.loginUsingExternalToken({
+      username: 'cyan',
+      externalAuthToken,
+      expectedStatus: HttpStatusCode.BAD_REQUEST_400
+    })
 
     await server.serversCommand.waitUntilLog('expired external auth token', 2)
   })
@@ -182,7 +185,7 @@ describe('Test external auth plugins', function () {
 
   it('Should refresh Cyan token, but not Kefka token', async function () {
     {
-      const resRefresh = await refreshToken(server, cyanRefreshToken)
+      const resRefresh = await server.loginCommand.refreshToken({ refreshToken: cyanRefreshToken })
       cyanAccessToken = resRefresh.body.access_token
       cyanRefreshToken = resRefresh.body.refresh_token
 
@@ -192,7 +195,7 @@ describe('Test external auth plugins', function () {
     }
 
     {
-      await refreshToken(server, kefkaRefreshToken, HttpStatusCode.BAD_REQUEST_400)
+      await server.loginCommand.refreshToken({ refreshToken: kefkaRefreshToken, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     }
   })
 
@@ -212,7 +215,7 @@ describe('Test external auth plugins', function () {
   })
 
   it('Should logout Cyan', async function () {
-    await logout(server.url, cyanAccessToken)
+    await server.loginCommand.logout({ token: cyanAccessToken })
   })
 
   it('Should have logged out Cyan', async function () {
@@ -269,7 +272,7 @@ describe('Test external auth plugins', function () {
       settings: { disableKefka: true }
     })
 
-    await userLogin(server, { username: 'kefka', password: 'fake' }, HttpStatusCode.BAD_REQUEST_400)
+    await server.loginCommand.login({ user: { username: 'kefka', password: 'fake' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
 
     await loginExternal({
       server,
@@ -307,9 +310,9 @@ describe('Test external auth plugins', function () {
       statusCodeExpected: HttpStatusCode.NOT_FOUND_404
     })
 
-    await userLogin(server, { username: 'cyan', password: null }, HttpStatusCode.BAD_REQUEST_400)
-    await userLogin(server, { username: 'cyan', password: '' }, HttpStatusCode.BAD_REQUEST_400)
-    await userLogin(server, { username: 'cyan', password: 'fake' }, HttpStatusCode.BAD_REQUEST_400)
+    await server.loginCommand.login({ user: { username: 'cyan', password: null }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+    await server.loginCommand.login({ user: { username: 'cyan', password: '' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+    await server.loginCommand.login({ user: { username: 'cyan', password: 'fake' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
   })
 
   it('Should not login kefka with another plugin', async function () {
@@ -369,9 +372,8 @@ describe('Test external auth plugins', function () {
       username: 'cid'
     })
 
-    const resLogout = await logout(server.url, resLogin.access_token)
-
-    expect(resLogout.body.redirectUrl).to.equal('https://example.com/redirectUrl')
+    const { redirectUrl } = await server.loginCommand.logout({ token: resLogin.access_token })
+    expect(redirectUrl).to.equal('https://example.com/redirectUrl')
   })
 
   it('Should call the plugin\'s onLogout method with the request', async function () {
@@ -382,8 +384,7 @@ describe('Test external auth plugins', function () {
       username: 'cid'
     })
 
-    const resLogout = await logout(server.url, resLogin.access_token)
-
-    expect(resLogout.body.redirectUrl).to.equal('https://example.com/redirectUrl?access_token=' + resLogin.access_token)
+    const { redirectUrl } = await server.loginCommand.logout({ token: resLogin.access_token })
+    expect(redirectUrl).to.equal('https://example.com/redirectUrl?access_token=' + resLogin.access_token)
   })
 })
index a0b31bc1f70229eaf3e59f2d66b395ff19939a89..e3da6411051b8e7406e36df32fb42ff3585977fa 100644 (file)
@@ -2,19 +2,16 @@
 
 import 'mocha'
 import { expect } from 'chai'
+import { HttpStatusCode } from '@shared/core-utils'
 import {
   cleanupTests,
   flushAndRunServer,
   getMyUserInformation,
   getUsersList,
-  login,
-  logout,
   PluginsCommand,
-  refreshToken,
   ServerInfo,
   setAccessTokensToServers,
   updateMyUser,
-  userLogin,
   wait
 } from '@shared/extra-utils'
 import { User, UserRole } from '@shared/models'
@@ -52,11 +49,11 @@ describe('Test id and pass auth plugins', function () {
   })
 
   it('Should not login', async function () {
-    await userLogin(server, { username: 'toto', password: 'password' }, 400)
+    await server.loginCommand.login({ user: { username: 'toto', password: 'password' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
   })
 
   it('Should login Spyro, create the user and use the token', async function () {
-    const accessToken = await userLogin(server, { username: 'spyro', password: 'spyro password' })
+    const accessToken = await server.loginCommand.getAccessToken({ username: 'spyro', password: 'spyro password' })
 
     const res = await getMyUserInformation(server.url, accessToken)
 
@@ -68,9 +65,9 @@ describe('Test id and pass auth plugins', function () {
 
   it('Should login Crash, create the user and use the token', async function () {
     {
-      const res = await login(server.url, server.client, { username: 'crash', password: 'crash password' })
-      crashAccessToken = res.body.access_token
-      crashRefreshToken = res.body.refresh_token
+      const body = await server.loginCommand.login({ user: { username: 'crash', password: 'crash password' } })
+      crashAccessToken = body.access_token
+      crashRefreshToken = body.refresh_token
     }
 
     {
@@ -85,9 +82,9 @@ describe('Test id and pass auth plugins', function () {
 
   it('Should login the first Laguna, create the user and use the token', async function () {
     {
-      const res = await login(server.url, server.client, { username: 'laguna', password: 'laguna password' })
-      lagunaAccessToken = res.body.access_token
-      lagunaRefreshToken = res.body.refresh_token
+      const body = await server.loginCommand.login({ user: { username: 'laguna', password: 'laguna password' } })
+      lagunaAccessToken = body.access_token
+      lagunaRefreshToken = body.refresh_token
     }
 
     {
@@ -102,7 +99,7 @@ describe('Test id and pass auth plugins', function () {
 
   it('Should refresh crash token, but not laguna token', async function () {
     {
-      const resRefresh = await refreshToken(server, crashRefreshToken)
+      const resRefresh = await server.loginCommand.refreshToken({ refreshToken: crashRefreshToken })
       crashAccessToken = resRefresh.body.access_token
       crashRefreshToken = resRefresh.body.refresh_token
 
@@ -112,7 +109,7 @@ describe('Test id and pass auth plugins', function () {
     }
 
     {
-      await refreshToken(server, lagunaRefreshToken, 400)
+      await server.loginCommand.refreshToken({ refreshToken: lagunaRefreshToken, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     }
   })
 
@@ -132,7 +129,7 @@ describe('Test id and pass auth plugins', function () {
   })
 
   it('Should logout Crash', async function () {
-    await logout(server.url, crashAccessToken)
+    await server.loginCommand.logout({ token: crashAccessToken })
   })
 
   it('Should have logged out Crash', async function () {
@@ -142,7 +139,7 @@ describe('Test id and pass auth plugins', function () {
   })
 
   it('Should login Crash and keep the old existing profile', async function () {
-    crashAccessToken = await userLogin(server, { username: 'crash', password: 'crash password' })
+    crashAccessToken = await server.loginCommand.getAccessToken({ username: 'crash', password: 'crash password' })
 
     const res = await getMyUserInformation(server.url, crashAccessToken)
 
@@ -162,16 +159,18 @@ describe('Test id and pass auth plugins', function () {
   })
 
   it('Should reject an invalid username, email, role or display name', async function () {
-    await userLogin(server, { username: 'ward', password: 'ward password' }, 400)
+    const command = server.loginCommand
+
+    await command.login({ user: { username: 'ward', password: 'ward password' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     await server.serversCommand.waitUntilLog('valid username')
 
-    await userLogin(server, { username: 'kiros', password: 'kiros password' }, 400)
+    await command.login({ user: { username: 'kiros', password: 'kiros password' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     await server.serversCommand.waitUntilLog('valid display name')
 
-    await userLogin(server, { username: 'raine', password: 'raine password' }, 400)
+    await command.login({ user: { username: 'raine', password: 'raine password' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     await server.serversCommand.waitUntilLog('valid role')
 
-    await userLogin(server, { username: 'ellone', password: 'elonne password' }, 400)
+    await command.login({ user: { username: 'ellone', password: 'elonne password' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
     await server.serversCommand.waitUntilLog('valid email')
   })
 
@@ -181,8 +180,9 @@ describe('Test id and pass auth plugins', function () {
       settings: { disableSpyro: true }
     })
 
-    await userLogin(server, { username: 'spyro', password: 'spyro password' }, 400)
-    await userLogin(server, { username: 'spyro', password: 'fake' }, 400)
+    const command = server.loginCommand
+    await command.login({ user: { username: 'spyro', password: 'spyro password' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
+    await command.login({ user: { username: 'spyro', password: 'fake' }, expectedStatus: HttpStatusCode.BAD_REQUEST_400 })
   })
 
   it('Should have disabled this auth', async function () {
@@ -198,7 +198,10 @@ describe('Test id and pass auth plugins', function () {
   it('Should uninstall the plugin one and do not login existing Crash', async function () {
     await server.pluginsCommand.uninstall({ npmName: 'peertube-plugin-test-id-pass-auth-one' })
 
-    await userLogin(server, { username: 'crash', password: 'crash password' }, 400)
+    await server.loginCommand.login({
+      user: { username: 'crash', password: 'crash password' },
+      expectedStatus: HttpStatusCode.BAD_REQUEST_400
+    })
   })
 
   it('Should display the correct configuration', async function () {
index f9d112acad92bb38e3ff9b805d98e2de748351e6..c5ee63e05c857e96720e4ad31866a86b58fb1e7b 100644 (file)
@@ -27,6 +27,7 @@ function makeGetRequest (options: {
   range?: string
   redirects?: number
   accept?: string
+  host?: string
 }) {
   if (!options.statusCodeExpected) options.statusCodeExpected = HttpStatusCode.BAD_REQUEST_400
   if (options.contentType === undefined) options.contentType = 'application/json'
@@ -38,6 +39,7 @@ function makeGetRequest (options: {
   if (options.query) req.query(options.query)
   if (options.range) req.set('Range', options.range)
   if (options.accept) req.set('Accept', options.accept)
+  if (options.host) req.set('Host', options.host)
   if (options.redirects) req.redirects(options.redirects)
 
   return req.expect(options.statusCodeExpected)
@@ -113,6 +115,7 @@ function makePostBodyRequest (options: {
   path: string
   token?: string
   fields?: { [ fieldName: string ]: any }
+  type?: string
   statusCodeExpected?: HttpStatusCode
 }) {
   if (!options.fields) options.fields = {}
@@ -123,6 +126,7 @@ function makePostBodyRequest (options: {
                 .set('Accept', 'application/json')
 
   if (options.token) req.set('Authorization', 'Bearer ' + options.token)
+  if (options.type) req.type(options.type)
 
   return req.send(options.fields)
             .expect(options.statusCodeExpected)
diff --git a/shared/extra-utils/server/clients.ts b/shared/extra-utils/server/clients.ts
deleted file mode 100644 (file)
index 894fe49..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-import * as request from 'supertest'
-import { URL } from 'url'
-import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
-
-function getClient (url: string) {
-  const path = '/api/v1/oauth-clients/local'
-
-  return request(url)
-          .get(path)
-          .set('Host', new URL(url).host)
-          .set('Accept', 'application/json')
-          .expect(HttpStatusCode.OK_200)
-          .expect('Content-Type', /json/)
-}
-
-// ---------------------------------------------------------------------------
-
-export {
-  getClient
-}
index f5dc0326fff65430471367df3b01ebff27b1debd..4d95996800ce4010d73852e51420fc91a1f19e62 100644 (file)
@@ -16,7 +16,7 @@ import { AbusesCommand } from '../moderation'
 import { OverviewsCommand } from '../overviews'
 import { SearchCommand } from '../search'
 import { SocketIOCommand } from '../socket'
-import { AccountsCommand, BlocklistCommand, NotificationsCommand, SubscriptionsCommand } from '../users'
+import { AccountsCommand, BlocklistCommand, LoginCommand, NotificationsCommand, SubscriptionsCommand } from '../users'
 import {
   BlacklistCommand,
   CaptionsCommand,
@@ -126,6 +126,7 @@ interface ServerInfo {
   sqlCommand?: SQLCommand
   notificationsCommand?: NotificationsCommand
   serversCommand?: ServersCommand
+  loginCommand?: LoginCommand
 }
 
 function flushAndRunMultipleServers (totalServers: number, configOverride?: Object) {
@@ -357,6 +358,7 @@ function assignCommands (server: ServerInfo) {
   server.sqlCommand = new SQLCommand(server)
   server.notificationsCommand = new NotificationsCommand(server)
   server.serversCommand = new ServersCommand(server)
+  server.loginCommand = new LoginCommand(server)
 }
 
 async function reRunServer (server: ServerInfo, configOverride?: any) {
index 4e61554a29fe0cc8bddaa4a772fb43a4d4d1c15e..af9ecd926e82e21686d233e59a3b48afbd16bbd2 100644 (file)
@@ -33,6 +33,7 @@ interface InternalGetCommandOptions extends InternalCommonCommandOptions {
   accept?: string
   redirects?: number
   range?: string
+  host?: string
 }
 
 abstract class AbstractCommand {
@@ -78,7 +79,7 @@ abstract class AbstractCommand {
   }
 
   protected getRequest (options: InternalGetCommandOptions) {
-    const { redirects, query, contentType, accept, range } = options
+    const { redirects, query, contentType, accept, range, host } = options
 
     return makeGetRequest({
       ...this.buildCommonRequestOptions(options),
@@ -87,6 +88,7 @@ abstract class AbstractCommand {
       query,
       contentType,
       range,
+      host,
       accept
     })
   }
@@ -109,13 +111,15 @@ abstract class AbstractCommand {
 
   protected postBodyRequest (options: InternalCommonCommandOptions & {
     fields?: { [ fieldName: string ]: any }
+    type?: string
   }) {
-    const { fields } = options
+    const { type, fields } = options
 
     return makePostBodyRequest({
       ...this.buildCommonRequestOptions(options),
 
-      fields
+      fields,
+      type
     })
   }
 
index ed166c756da21dd82e739fcf1bdc8cbd764c31f1..b200ae705e09ad6412cba5d19bc68df64bc14831 100644 (file)
@@ -2,6 +2,7 @@ export * from './accounts-command'
 export * from './accounts'
 export * from './blocklist-command'
 export * from './login'
+export * from './login-command'
 export * from './notifications'
 export * from './notifications-command'
 export * from './subscriptions-command'
diff --git a/shared/extra-utils/users/login-command.ts b/shared/extra-utils/users/login-command.ts
new file mode 100644 (file)
index 0000000..97efcb7
--- /dev/null
@@ -0,0 +1,134 @@
+import { PeerTubeRequestError } from '@server/helpers/requests'
+import { HttpStatusCode } from '@shared/core-utils'
+import { PeerTubeProblemDocument } from '@shared/models'
+import { unwrapBody } from '../requests'
+import { AbstractCommand, OverrideCommandOptions } from '../shared'
+
+export class LoginCommand extends AbstractCommand {
+
+  login (options: OverrideCommandOptions & {
+    client?: { id?: string, secret?: string }
+    user?: { username: string, password: string }
+  } = {}) {
+    const { client = this.server.client, user = this.server.user } = options
+    const path = '/api/v1/users/token'
+
+    const body = {
+      client_id: client.id,
+      client_secret: client.secret,
+      username: user.username,
+      password: user.password,
+      response_type: 'code',
+      grant_type: 'password',
+      scope: 'upload'
+    }
+
+    return unwrapBody<{ access_token: string, refresh_token: string } & PeerTubeProblemDocument>(this.postBodyRequest({
+      ...options,
+
+      path,
+      type: 'form',
+      fields: body,
+      implicitToken: false,
+      defaultExpectedStatus: HttpStatusCode.OK_200
+    }))
+  }
+
+  getAccessToken (user?: { username: string, password: string }): Promise<string>
+  getAccessToken (username: string, password: string): Promise<string>
+  async getAccessToken (arg1?: { username: string, password: string } | string, password?: string) {
+    let user: { username: string, password: string }
+
+    if (!arg1) user = this.server.user
+    else if (typeof arg1 === 'object') user = arg1
+    else user = { username: arg1, password }
+
+    try {
+      const body = await this.login({ user })
+
+      return body.access_token
+    } catch (err) {
+      throw new Error('Cannot authenticate. Please check your username/password.')
+    }
+  }
+
+  loginUsingExternalToken (options: OverrideCommandOptions & {
+    username: string
+    externalAuthToken: string
+  }) {
+    const { username, externalAuthToken } = options
+    const path = '/api/v1/users/token'
+
+    const body = {
+      client_id: this.server.client.id,
+      client_secret: this.server.client.secret,
+      username: username,
+      response_type: 'code',
+      grant_type: 'password',
+      scope: 'upload',
+      externalAuthToken
+    }
+
+    return this.postBodyRequest({
+      ...options,
+
+      path,
+      type: 'form',
+      fields: body,
+      implicitToken: false,
+      defaultExpectedStatus: HttpStatusCode.OK_200
+    })
+  }
+
+  logout (options: OverrideCommandOptions & {
+    token: string
+  }) {
+    const path = '/api/v1/users/revoke-token'
+
+    return unwrapBody<{ redirectUrl: string }>(this.postBodyRequest({
+      ...options,
+
+      path,
+      type: 'form',
+      implicitToken: false,
+      defaultExpectedStatus: HttpStatusCode.OK_200
+    }))
+  }
+
+  refreshToken (options: OverrideCommandOptions & {
+    refreshToken: string
+  }) {
+    const path = '/api/v1/users/token'
+
+    const body = {
+      client_id: this.server.client.id,
+      client_secret: this.server.client.secret,
+      refresh_token: options.refreshToken,
+      response_type: 'code',
+      grant_type: 'refresh_token'
+    }
+
+    return this.postBodyRequest({
+      ...options,
+
+      path,
+      type: 'form',
+      fields: body,
+      implicitToken: false,
+      defaultExpectedStatus: HttpStatusCode.OK_200
+    })
+  }
+
+  getClient (options: OverrideCommandOptions = {}) {
+    const path = '/api/v1/oauth-clients/local'
+
+    return this.getRequestBody<{ client_id: string, client_secret: string }>({
+      ...options,
+
+      path,
+      host: this.server.host,
+      implicitToken: false,
+      defaultExpectedStatus: HttpStatusCode.OK_200
+    })
+  }
+}
index c14367542ca79a74e20157a75fe80e433e9f4bc2..d4ee8e517cd1006c80c1793988ac67674259096d 100644 (file)
-import * as request from 'supertest'
-
 import { ServerInfo } from '../server/servers'
-import { getClient } from '../server/clients'
-import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes'
-
-type Client = { id?: string, secret?: string }
-type User = { username: string, password: string }
-type Server = { url?: string, client?: Client, user?: User }
-
-function login (url: string, client: Client, user: User, expectedStatus = HttpStatusCode.OK_200) {
-  const path = '/api/v1/users/token'
-
-  const body = {
-    client_id: client.id,
-    client_secret: client.secret,
-    username: user.username,
-    password: user.password,
-    response_type: 'code',
-    grant_type: 'password',
-    scope: 'upload'
-  }
-
-  return request(url)
-          .post(path)
-          .type('form')
-          .send(body)
-          .expect(expectedStatus)
-}
-
-function logout (url: string, token: string, expectedStatus = HttpStatusCode.OK_200) {
-  const path = '/api/v1/users/revoke-token'
-
-  return request(url)
-    .post(path)
-    .set('Authorization', 'Bearer ' + token)
-    .type('form')
-    .expect(expectedStatus)
-}
-
-async function serverLogin (server: Server) {
-  const res = await login(server.url, server.client, server.user, HttpStatusCode.OK_200)
-
-  return res.body.access_token as string
-}
-
-function refreshToken (server: ServerInfo, refreshToken: string, expectedStatus = HttpStatusCode.OK_200) {
-  const path = '/api/v1/users/token'
-
-  const body = {
-    client_id: server.client.id,
-    client_secret: server.client.secret,
-    refresh_token: refreshToken,
-    response_type: 'code',
-    grant_type: 'refresh_token'
-  }
-
-  return request(server.url)
-    .post(path)
-    .type('form')
-    .send(body)
-    .expect(expectedStatus)
-}
-
-async function userLogin (server: Server, user: User, expectedStatus = HttpStatusCode.OK_200) {
-  const res = await login(server.url, server.client, user, expectedStatus)
-
-  return res.body.access_token as string
-}
-
-async function getAccessToken (url: string, username: string, password: string) {
-  const resClient = await getClient(url)
-  const client = {
-    id: resClient.body.client_id,
-    secret: resClient.body.client_secret
-  }
-
-  const user = { username, password }
-
-  try {
-    const res = await login(url, client, user)
-    return res.body.access_token
-  } catch (err) {
-    throw new Error('Cannot authenticate. Please check your username/password.')
-  }
-}
 
 function setAccessTokensToServers (servers: ServerInfo[]) {
   const tasks: Promise<any>[] = []
 
   for (const server of servers) {
-    const p = serverLogin(server).then(t => { server.accessToken = t })
+    const p = server.loginCommand.getAccessToken()
+                                 .then(t => { server.accessToken = t })
     tasks.push(p)
   }
 
   return Promise.all(tasks)
 }
 
-function loginUsingExternalToken (server: Server, username: string, externalAuthToken: string, expectedStatus = HttpStatusCode.OK_200) {
-  const path = '/api/v1/users/token'
-
-  const body = {
-    client_id: server.client.id,
-    client_secret: server.client.secret,
-    username: username,
-    response_type: 'code',
-    grant_type: 'password',
-    scope: 'upload',
-    externalAuthToken
-  }
-
-  return request(server.url)
-          .post(path)
-          .type('form')
-          .send(body)
-          .expect(expectedStatus)
-}
-
 // ---------------------------------------------------------------------------
 
 export {
-  login,
-  logout,
-  serverLogin,
-  refreshToken,
-  userLogin,
-  getAccessToken,
-  setAccessTokensToServers,
-  Server,
-  Client,
-  User,
-  loginUsingExternalToken
+  setAccessTokensToServers
 }
index 81f0729fa9a2d0415fe840946d01527a99334405..79cb6f61708499cefa976fe84146ea66a4f510ec 100644 (file)
@@ -7,7 +7,7 @@ import { UserNotification, UserNotificationSetting, UserNotificationSettingValue
 import { MockSmtpServer } from '../mock-servers/mock-email'
 import { doubleFollow } from '../server/follows'
 import { flushAndRunMultipleServers, ServerInfo } from '../server/servers'
-import { setAccessTokensToServers, userLogin } from './login'
+import { setAccessTokensToServers } from './login'
 import { createUser, getMyUserInformation } from './users'
 
 function getAllNotificationsSettings (): UserNotificationSetting {
@@ -662,7 +662,7 @@ async function prepareNotificationsTest (serversCount = 3, overrideConfigArg: an
     password: user.password,
     videoQuota: 10 * 1000 * 1000
   })
-  const userAccessToken = await userLogin(servers[0], user)
+  const userAccessToken = await servers[0].loginCommand.getAccessToken(user)
 
   await servers[0].notificationsCommand.updateMySettings({ token: userAccessToken, settings: getAllNotificationsSettings() })
   await servers[0].notificationsCommand.updateMySettings({ settings: getAllNotificationsSettings() })
index 0f15962ad40fc94cfe7e8a8896181a9c224a1758..835ad08ba6bc139af97e82001cdc14f800d2ba64 100644 (file)
@@ -7,7 +7,6 @@ import { UserRegister } from '../../models/users/user-register.model'
 import { UserRole } from '../../models/users/user-role'
 import { makeGetRequest, makePostBodyRequest, makePutBodyRequest, updateImageRequest } from '../requests/requests'
 import { ServerInfo } from '../server/servers'
-import { userLogin } from './login'
 
 function createUser (parameters: {
   url: string
@@ -55,7 +54,7 @@ async function generateUser (server: ServerInfo, username: string) {
   const password = 'my super password'
   const resCreate = await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
 
-  const token = await userLogin(server, { username, password })
+  const token = await server.loginCommand.getAccessToken({ username, password })
 
   const resMe = await getMyUserInformation(server.url, token)
 
@@ -70,7 +69,7 @@ async function generateUserAccessToken (server: ServerInfo, username: string) {
   const password = 'my super password'
   await createUser({ url: server.url, accessToken: server.accessToken, username: username, password: password })
 
-  return userLogin(server, { username, password })
+  return server.loginCommand.getAccessToken({ username, password })
 }
 
 function registerUser (url: string, username: string, password: string, specialStatus = HttpStatusCode.NO_CONTENT_204) {