corde
Version:
A simple library for Discord bot tests
75 lines (59 loc) • 1.83 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true,
});
exports.ToPinMessage = void 0;
const utils_1 = require("../../../utils");
const messageExpectTest_1 = require("./messageExpectTest");
class ToPinMessage extends messageExpectTest_1.MessageExpectTest {
constructor(params) {
super({ ...params, testName: "toPinMessage" });
}
async action(messageIdentifier) {
if (
!messageIdentifier ||
((0, utils_1.typeOf)(messageIdentifier) !== "string" &&
(0, utils_1.typeOf)(messageIdentifier) !== "object")
) {
return this.createReport(
"expected: message identifier to be a string or a IMessageIdentifier object\n",
`received: ${(0, utils_1.typeOf)(messageIdentifier)}`,
);
}
let _msgIdentifier;
if (typeof messageIdentifier === "string") {
_msgIdentifier = {
id: messageIdentifier,
};
} else {
_msgIdentifier = messageIdentifier;
}
try {
await this.sendCommandMessage();
} catch (error) {
return this.createFailedTest(error.message);
}
const msgString = this.humanizeMessageIdentifierObject(_msgIdentifier);
try {
await this.cordeBot.events.onceMessagePinned(_msgIdentifier, this.timeout, this.channelId);
} catch {
if (this.isNot) {
return this.createPassTest();
}
return this.createReport(
`expected: pin ${msgString}\n`,
"received: informed message was not pinned",
);
}
this.hasPassed = true;
this.invertHasPassedIfIsNot();
if (this.hasPassed) {
return this.createPassTest();
}
return this.createReport(
`expected: to ${this.isNot ? "not " : ""}pin ${msgString}\n`,
"received: message pin = false",
);
}
}
exports.ToPinMessage = ToPinMessage;