mirror of
https://github.com/zerotier/mattermost-webapp.git
synced 2026-09-22 15:28:27 -07:00
* [MM-14734] Added demoted user test. Added functionality to call api. * changes based on feedback: don't load users via fixture, rename test/suite
44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
const axios = require('axios');
|
|
|
|
const cypressConfig = require('../../cypress.json');
|
|
|
|
module.exports = async ({user, method = 'get', path, data = {}}) => {
|
|
const loginUrl = `${cypressConfig.baseUrl}/api/v4/users/login`;
|
|
|
|
// First we need to login with our external user to get cookies/tokens
|
|
const loginResponse = await axios({url: loginUrl, method: 'post', data: {login_id: user.username, password: user.password}});
|
|
const setCookie = loginResponse.headers['set-cookie'];
|
|
|
|
let cookieString = '';
|
|
const cookies = {};
|
|
|
|
setCookie.forEach((cookie) => {
|
|
const nameAndValue = cookie.split(';')[0];
|
|
cookieString += nameAndValue + ';';
|
|
const [name, value] = nameAndValue.split('=');
|
|
cookies[name] = value;
|
|
});
|
|
|
|
let response;
|
|
|
|
try {
|
|
response = await axios({
|
|
method,
|
|
url: `${cypressConfig.baseUrl}/api/v4/${path}`,
|
|
headers: {
|
|
'Content-Type': 'text/plain',
|
|
Cookie: cookieString,
|
|
'X-Requested-With': 'XMLHttpRequest',
|
|
'X-CSRF-Token': cookies.MMCSRF,
|
|
},
|
|
data,
|
|
});
|
|
} catch (error) {
|
|
response = error;
|
|
}
|
|
|
|
return {status: response.status, data: response.data, error: response.error};
|
|
}; |