corde
Version:
A simple library for Discord bot tests
86 lines (68 loc) • 2.22 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.ToEditMessage = void 0;
const utils_1 = require("../../../utils");
const messageExpectTest_1 = require("./messageExpectTest");
class ToEditMessage extends messageExpectTest_1.MessageExpectTest {
constructor(params) {
super({ ...params, testName: "toEditMessage" });
}
async action(newValue, messageIdentifier) {
if (!(0, utils_1.isPrimitiveValue)(newValue) && (0, utils_1.typeOf)(newValue) !== "object") {
return this.createReport(
"expected: expect value to be a primitive value (string, boolean, number) or an IMessageEmbed object\n",
`received: ${(0, utils_1.typeOf)(newValue)}`,
);
}
try {
await this.sendCommandMessage();
} catch (error) {
return this.createFailedTest(error.message);
}
let _messageData;
if (typeof messageIdentifier === "string") {
_messageData = {
id: messageIdentifier,
};
} else {
_messageData = messageIdentifier;
}
let returnedMessage;
try {
returnedMessage = await this.cordeBot.events.onceMessageContentOrEmbedChange(
_messageData,
this.timeout,
this.channelId,
);
} catch {
if (this.isNot) {
return this.createPassTest();
}
if (!_messageData) {
return this.createReport(
"expected: testing bot to edit the last message sent\n",
"received: message was not edited",
);
}
return this.createReport(
`expected: testing bot to edit the ${this.humanizeMessageIdentifierObject(_messageData)}\n`,
"received: message was not edited",
);
}
this.hasPassed = this.isMessagesEquals(returnedMessage, newValue);
this.invertHasPassedIfIsNot();
if (this.hasPassed) {
return this.createPassTest();
}
if (this.isNot) {
return this.createReport(
"expected: message from bot be different from expectation\n",
"received: both returned and expectation are equal",
);
}
return this.createReportForExpectAndResponse(newValue, returnedMessage);
}
}
exports.ToEditMessage = ToEditMessage;