1 import * as request from 'supertest'
3 import { ServerInfo } from '../server/servers'
5 type Client = { id: string, secret: string }
6 type User = { username: string, password: string }
7 type Server = { url: string, client: Client, user: User }
9 function login (url: string, client: Client, user: User, expectedStatus = 200) {
10 const path = '/api/v1/users/token'
14 client_secret: client.secret,
15 username: user.username,
16 password: user.password,
17 response_type: 'code',
18 grant_type: 'password',
26 .expect(expectedStatus)
29 async function serverLogin (server: Server) {
30 const res = await login(server.url, server.client, server.user, 200)
32 return res.body.access_token as string
35 async function userLogin (server: Server, user: User, expectedStatus = 200) {
36 const res = await login(server.url, server.client, user, expectedStatus)
38 return res.body.access_token as string
41 function setAccessTokensToServers (servers: ServerInfo[]) {
42 const tasks: Promise<any>[] = []
44 for (const server of servers) {
45 const p = serverLogin(server).then(t => server.accessToken = t)
49 return Promise.all(tasks)
52 // ---------------------------------------------------------------------------
58 setAccessTokensToServers,