UNPKG

corde

Version:

A simple library for Discord bot tests

99 lines (77 loc) 2.51 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true, }); exports.ToSetRolePosition = void 0; const utils_1 = require("../../../utils"); const roleUtils_1 = require("../../roleUtils"); const expectTest_1 = require("../expectTest"); class ToSetRolePosition extends expectTest_1.ExpectTest { constructor(params) { super({ ...params, testName: "toSetRolePosition" }); } async action(newPosition, roleIdentifier) { const identifier = roleUtils_1.roleUtils.getRoleData(roleIdentifier); const error = roleUtils_1.roleUtils.getErrorForUndefinedRoleData(identifier); if (error) { return this.createFailedTest(error); } if (typeof newPosition !== "number") { return this.createReport( "expected: position option to be a number\n", `received: ${(0, utils_1.typeOf)(newPosition)}`, ); } const oldRole = await this.cordeBot.findRole(identifier); const invalidRoleErrorMessage = roleUtils_1.roleUtils.validateRole(oldRole, identifier); if (invalidRoleErrorMessage) { return this.createFailedTest(invalidRoleErrorMessage); } let role = await this.cordeBot.findRole(identifier); const lastRole = this.cordeBot .getRoles() .sort((r1, r2) => r2.position - r1.position) .first(); if (!lastRole) { return this.createReport("no roles were found"); } if (newPosition > lastRole.position) { return this.createReport( `expected: position to be >= 0 and <= ${lastRole.rawPosition} (max value possible)\n`, `received: ${newPosition}`, ); } try { await this.sendCommandMessage(); } catch (error) { return this.createFailedTest(error.message); } try { role = await this.cordeBot.events.onceRolePositionUpdate( identifier, this.timeout, this.guildId, ); } catch { if (this.isNot) { return this.createPassTest(); } return this.createReport( `expected: role position to change to ${newPosition}\n`, "received: position didn't change", ); } if (role.position === newPosition) { this.hasPassed = true; } this.invertHasPassedIfIsNot(); if (this.hasPassed) { return this.createPassTest(); } return this.createReport( `expected: role position to change to ${newPosition}\n`, `received: ${role.rawPosition}`, ); } } exports.ToSetRolePosition = ToSetRolePosition;