slack/test/test.ts

131 lines
3.1 KiB
TypeScript
Raw Normal View History

2024-01-24 15:58:23 +01:00
import { expect, tap } from '@push.rocks/tapbundle';
import { Qenv } from '@push.rocks/qenv';
2018-09-15 22:23:05 +02:00
let testQenv = new Qenv(process.cwd(), process.cwd() + '/.nogit');
2024-01-24 15:58:23 +01:00
import * as slackme from '../ts/index.js';
2017-09-14 07:20:26 +02:00
2019-09-18 16:47:31 +02:00
let testSlackAccount: slackme.SlackAccount;
2018-09-15 22:23:05 +02:00
let testSlackMessage: slackme.SlackMessage;
2019-09-18 19:37:45 +02:00
tap.test('should create a valid slackme instance', async tools => {
2024-01-24 15:58:23 +01:00
testSlackAccount = new slackme.SlackAccount(await testQenv.getEnvVarOnDemand('SLACK_TOKEN'));
2018-09-15 22:23:05 +02:00
});
2019-09-18 19:37:45 +02:00
tap.test('should send a message to Slack', async tools => {
2019-09-18 16:47:31 +02:00
const messageOptions = {
2019-09-05 13:08:42 +02:00
author_name: 'GitLab CI',
author_link: 'https://gitlab.com/',
pretext: '*Good News*: Build successfull!',
color: '#3cb371',
fields: [
{
title: 'Branch',
value: 'Lossless Cloud',
short: true
},
{
title: 'Product ID',
value: 'pushrocks',
short: true
}
2019-09-18 12:26:31 +02:00
]
2019-09-18 16:47:31 +02:00
};
await testSlackAccount.sendMessage({
2019-09-18 15:47:51 +02:00
channelArg: 'random',
2019-09-18 16:47:31 +02:00
messageOptions: messageOptions,
2019-09-18 15:47:51 +02:00
mode: 'new'
});
2019-09-05 13:08:42 +02:00
});
2019-09-18 19:37:45 +02:00
tap.test('should send a message to Slack by directly calling the message', async tools => {
testSlackMessage = new slackme.SlackMessage(testSlackAccount, {
author_name: 'GitLab CI',
author_link: 'https://gitlab.com/',
pretext: '*Good News*: Build successfull!',
color: '#3cb371',
fields: [
{
title: 'Branch',
value: 'Lossless Cloud',
short: true
},
{
title: 'Product ID',
value: 'pushrocks',
short: true
}
]
});
2019-09-05 13:08:42 +02:00
await testSlackMessage.sendToRoom('random');
2019-09-18 12:28:41 +02:00
await tools.delayFor(1000);
2019-09-18 12:26:31 +02:00
await testSlackMessage.updateAndSend({
author_name: 'GitLab CI',
author_link: 'https://gitlab.com/',
pretext: '*Good News*: Build successfull!',
color: '#3cb371',
fields: [
{
title: 'Branch',
value: 'Lossless Studio',
short: true
},
{
title: 'Product ID',
value: 'pushrocks',
short: true
}
]
2019-09-18 15:47:51 +02:00
});
await testSlackMessage.updateAndSend({
author_name: 'GitLab CI',
author_link: 'https://gitlab.com/',
pretext: '*Good News*: Build successfull!',
color: '#3cb371',
fields: [
{
title: 'Branch',
value: 'Lossless Studio',
short: true
},
{
title: 'Product ID',
value: 'onboard.me',
short: true
}
]
});
await testSlackMessage.startThread({
author_name: 'Lossless Compliance',
author_link: 'https://gitlab.com/',
pretext: '*Good News*: Build successfull!',
color: '#3cb371',
fields: [
{
title: 'Branch',
value: 'Lossless Studio',
short: true
},
{
title: 'Product ID',
value: 'pushrocks',
short: true
}
]
2019-09-18 19:37:45 +02:00
});
2018-09-15 22:23:05 +02:00
});
2019-09-18 16:47:31 +02:00
tap.test('should send logs', async () => {
const slackLog = new slackme.SlackLog({
slackAccount: testSlackAccount,
channelName: 'random'
2019-09-18 19:37:45 +02:00
});
2019-09-18 16:47:31 +02:00
for (let i = 0; i < 30; i++) {
await slackLog.sendLogLine('hi there');
await slackLog.sendLogLine('so awesome');
await slackLog.sendLogLine('really');
}
2019-09-18 19:37:45 +02:00
});
2019-09-18 16:47:31 +02:00
2018-09-15 22:23:05 +02:00
tap.start();