import * as request from 'supertest' import { wait } from './miscs' function getFriendsList (url: string) { const path = '/api/v1/pods/' return request(url) .get(path) .set('Accept', 'application/json') .expect(200) .expect('Content-Type', /json/) } function getPodsListPaginationAndSort (url: string, start: number, count: number, sort: string) { const path = '/api/v1/pods/' return request(url) .get(path) .query({ start }) .query({ count }) .query({ sort }) .set('Accept', 'application/json') .expect(200) .expect('Content-Type', /json/) } async function makeFriends (url: string, accessToken: string, expectedStatus = 204) { // Which pod makes friends with which pod const friendsMatrix = { 'http://localhost:9001': [ 'localhost:9002' ], 'http://localhost:9002': [ 'localhost:9003' ], 'http://localhost:9003': [ 'localhost:9001' ], 'http://localhost:9004': [ 'localhost:9002' ], 'http://localhost:9005': [ 'localhost:9001', 'localhost:9004' ], 'http://localhost:9006': [ 'localhost:9001', 'localhost:9002', 'localhost:9003' ] } const path = '/api/v1/pods/make-friends' // The first pod make friend with the third const res = await request(url) .post(path) .set('Accept', 'application/json') .set('Authorization', 'Bearer ' + accessToken) .send({ 'hosts': friendsMatrix[url] }) .expect(expectedStatus) // Wait request propagation await wait(1000) return res } async function quitFriends (url: string, accessToken: string, expectedStatus = 204) { const path = '/api/v1/pods/quit-friends' // The first pod make friend with the third const res = await request(url) .get(path) .set('Accept', 'application/json') .set('Authorization', 'Bearer ' + accessToken) .expect(expectedStatus) // Wait request propagation await wait(1000) return res } function quitOneFriend (url: string, accessToken: string, friendId: number, expectedStatus = 204) { const path = '/api/v1/pods/' + friendId return request(url) .delete(path) .set('Accept', 'application/json') .set('Authorization', 'Bearer ' + accessToken) .expect(expectedStatus) } // --------------------------------------------------------------------------- export { getFriendsList, makeFriends, quitFriends, quitOneFriend, getPodsListPaginationAndSort }