Я пытаюсь создать блочное сообщение, содержащее результаты теста e2e, используя Slack's Block kit API.По сути, то, что я пытаюсь динамически построить и отправить, приведено ниже:
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "These are the passes ----------------------"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "someTestFile.spec.js"
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "firstTest"
}
},
Пока что мои результаты теста загружаются в массив объектов, который выглядит примерно так:
let passResults = [{testname: "firstTest"}, {testname: "secondTest"}];
Этот массив затем отправляется функции преобразования, которая удаляет ключ testname и загружает строку testname в другой массив (список), а также добавляет некоторую другую информацию о файле test (имя файла test +, является ли этопройти или потерпеть неудачу):
function logResults() {
slack.sendResultsToSlack(transformer("Passes", passResults));
}
// type = result of test: passes or fails
// arr = passResults or failResults
function transformer(type, arr) {
let list = [];
for (let i = 0; i < arr.length; i++) {
list.push(arr[i].title);
}
list.unshift(currentTestName);
list.unshift('These are the ' + type + '----------------------------');
return list;
}
Затем массив списков отправляется функции, которая собирается создавать сообщения набора блоков Slack, например, или что-то вроде этого ... так как я верю в этовот где мне не удается создать блоки:
function sendResultsToSlack(testResults) {
const block = createBlocks(testResults);
const res = web.chat.postMessage({
channel,
attachments: [{
"blocks": [{
block
}]
}]
});
console.log('Message sent: ', res.ts);
};
function createBlocks(testResults) {
let blockArr = [];
let iterator = testResults.entries();
for (const [key, value] of iterator) {
blockArr.push(`
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": ${value}
}
}
`)
}
console.log(blockArr);
return blockArr;
}
Когда я пытаюсь отправить это в Slack, я получаю сообщение об ошибке invalid_attachment.Я вроде как ломаю голову над этим, но я предполагаю, что это что-то вытекающее из моей функции createBlocks над этим ... любая помощь / предложения будут оценены.Кроме того, blockArr выглядит так (немного трудно читать, поэтому я заранее извиняюсь) ...
[ '\n {\n "type": "section",\n "text": {\n "type": "mrkdwn",\n "text": These are the Passes----------------------------\n }\n }\n ',
'\n {\n "type": "section",\n "text": {\n "type": "mrkdwn",\n "text": account_primary_flows.spec.js\n }\n }\n ',
'\n {\n "type": "section",\n "text": {\n "type": "mrkdwn",\n "text": Should allow a user to edit their information\n
}\n }\n ',
'\n {\n "type": "section",\n "text": {\n "type": "mrkdwn",\n "text": Should allow users to search by lastname\n
}\n }\n ',
'\n {\n "type": "section",\n "text": {\n "type": "mrkdwn",\n "text": Should allow users to search by firstname\n
}\n }\n ',
'\n {\n "type": "section",\n "text": {\n "type": "mrkdwn",\n "text": Should allow users to search by username\n
}\n }\n ',
'\n {\n "type": "section",\n "text": {\n "type": "mrkdwn",\n "text": Should allow users to edit users\n
}\n }\n ' ]
[0-0] ["These are the Fails----------------------------","account_primary_flows.spec.js"]