UNPKG

corde

Version:

A simple library for Discord bot tests

91 lines (70 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true, }); exports.ToSetRoleMentionable = void 0; const utils_1 = require("../../../utils"); const roleUtils_1 = require("../../roleUtils"); const expectTest_1 = require("../expectTest"); class ToSetRoleMentionable extends expectTest_1.ExpectTest { constructor(params) { super({ ...params, testName: "toSetRoleMentionable" }); } async action(mentionable, roleIdentifier) { const identifier = roleUtils_1.roleUtils.getRoleData(roleIdentifier); const error = roleUtils_1.roleUtils.getErrorForUndefinedRoleData(identifier); if (error) { return this.createFailedTest(error); } if (mentionable == undefined) { return this.createReport( "expected: mentionable option to be true or false\n", `received: ${(0, utils_1.typeOf)(mentionable)}`, ); } if (typeof mentionable !== "boolean") { return this.createReport( "expected: mentionable parameter to be of boolean type\n", `received: ${(0, utils_1.typeOf)(mentionable)}`, ); } const oldRole = await this.cordeBot.findRole(identifier); const invalidRoleErrorMessage = roleUtils_1.roleUtils.validateRole(oldRole, identifier); if (invalidRoleErrorMessage) { return this.createFailedTest(invalidRoleErrorMessage); } try { await this.sendCommandMessage(); } catch (error) { return this.createFailedTest(error.message); } let role; try { role = await this.cordeBot.events.onceRoleMentionableUpdate( identifier, this.timeout, this.guildId, ); } catch { if (this.isNot) { return this.createPassTest(); } return this.createReport( `expected: mentionable to be ${mentionable}\n`, "received: role mentionable was not updated", ); } if (role.mentionable === mentionable) { this.hasPassed = true; } this.invertHasPassedIfIsNot(); if (this.hasPassed) { return this.createPassTest(); } return this.createReport( `expected: mentionable to ${this.isNot ? "not " : ""}be ${mentionable}\n`, `received: ${role.mentionable}`, ); } } exports.ToSetRoleMentionable = ToSetRoleMentionable;