Files
Bob Lubecker b804ba305a [MM-14734] Added demoted user test. Added functionality to call api. (#2593)
* [MM-14734] Added demoted user test. Added functionality to call api.

* changes based on feedback: don't load users via fixture, rename test/suite
2019-04-05 15:55:04 +08:00

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};
};