UNPKG

corde

Version:

A simple library for Discord bot tests

86 lines (68 loc) 2.22 kB
"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;