I'm trying to add a Test Execution to a Test Plan using Xray Rest API & Axios. I have already created an API key and authenticated successfully like so:
const axios = require('axios');
const { argv } = require('yargs');
const { clientId, clientSecret } = argv;
const headers = {
Accept: 'application/json',
'Content-Type': 'application/json',
};
const authenticateXray = async () => {
await axios({
method: 'post',
url: `https://xray.cloud.xpand-it.com/api/v2/authenticate`,
headers,
data: {
client_id: clientId, // my created client id goes here
client_secret: clientSecret, // my created client secret goes here
},
})
.then(res => console.log(`Xray authentication response status was: ${res.status}`)) // 200!
.catch(e => {
throw new Error(e.response.data.error);
});
};
Then, I made a call & passed some param
values gathered before when creating a Test Plan
& Test Execution
like so:
await axios({
method: 'posts',
url: `https://xray.cloud.xpand-it.com/api/internal/testplan/${createdTestPlan.data.id}/addTestExecs`,
data: {
0: createdTestExecIssue.data.id,
},
});
However, I get this error: (node:46352) UnhandledPromiseRejectionWarning: Error: Request failed with status code 400
. I was able to link a Test Execution
to the Test Plan
using another endpoint from Jira Rest API, but I'm looking to add it instead, check the screenshot below for reference.
I was able to solve this issue by passing the
data
differently like so:& passing the
X-acpt
key/value pair in theRequest Header
like so:My request ended up like so: