0
owncast/test/automated/api/lib/chat.js
Gabe Kangas 04b1b30b7d
Update API tests (#3894)
* fix(test): remove done callback in tests

* fix(test): expect correct status code

* fix(test): remove logging of var
2024-08-21 14:44:09 -07:00

46 lines
1.1 KiB
JavaScript

var request = require('supertest');
request = request('http://127.0.0.1:8080');
const WebSocket = require('ws');
async function registerChat() {
try {
const response = await request.post('/api/chat/register');
return response.body;
} catch (e) {
console.error(e);
}
}
async function sendChatMessage(message, accessToken, done) {
const ws = new WebSocket(`ws://localhost:8080/ws?accessToken=${accessToken}`);
async function onOpen() {
ws.send(JSON.stringify(message), async function () {
ws.close();
// done();
});
}
ws.on('open', onOpen);
}
async function listenForEvent(name, accessToken, done) {
const ws = new WebSocket(`ws://localhost:8080/ws?accessToken=${accessToken}`);
ws.on('message', function incoming(message) {
const messages = message.split('\n');
messages.forEach(function (message) {
const event = JSON.parse(message);
if (event.type === name) {
done();
ws.close();
}
});
});
}
module.exports.sendChatMessage = sendChatMessage;
module.exports.registerChat = registerChat;
module.exports.listenForEvent = listenForEvent;