From d14e89e8b2c71949088a0924f15ec566bf218137 Mon Sep 17 00:00:00 2001 From: pieartsy Date: Sat, 28 Feb 2026 15:28:27 -0500 Subject: [PATCH] Fix: Further converting ES6 to CJS - Making exports named instead of default (#26) * adding to git ignore * making imports named not default to not break all my tests * adjusted setup for memberhelper test --------- Co-authored-by: Aster Fialla --- .gitignore | 4 +++- src/bot.js | 18 ++++++++++-------- src/commands.js | 10 +++++----- src/database.js | 2 +- src/enums.js | 2 +- src/helpers/importHelper.js | 6 +++--- src/helpers/memberHelper.js | 19 ++++++++++--------- src/helpers/messageHelper.js | 16 ++++++++-------- src/helpers/utils.js | 4 ++-- src/helpers/webhookHelper.js | 2 +- tests/helpers/memberHelper.test.js | 10 ++++++---- 11 files changed, 50 insertions(+), 43 deletions(-) diff --git a/.gitignore b/.gitignore index 1e5ce60..7d531d7 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,6 @@ config.json coverage log.txt .env -oya.png \ No newline at end of file +oya.png +variables.env +.env.production \ No newline at end of file diff --git a/src/bot.js b/src/bot.js index 88e357b..69d3a7a 100644 --- a/src/bot.js +++ b/src/bot.js @@ -1,10 +1,10 @@ const {Client, Events, Message} = require('@fluxerjs/core'); -const messageHelper = require("./helpers/messageHelper.js"); -const enums = require("./enums.js"); -const commands = require("./commands.js"); -const webhookHelper = require("./helpers/webhookHelper.js"); +const {messageHelper} = require("./helpers/messageHelper.js"); +const {enums} = require("./enums.js"); +const {commands} = require("./commands.js"); +const {webhookHelper} = require("./helpers/webhookHelper.js"); const env = require('dotenv'); -const utils = require("./helpers/utils.js"); +const {utils} = require("./helpers/utils.js"); env.config(); @@ -15,7 +15,9 @@ if (!token) { process.exit(1); } -const client = new Client({ intents: 0 }); +client = new Client({ intents: 0 }); + +module.exports.client = client; client.on(Events.MessageCreate, async (message) => { await handleMessageCreate(message); @@ -28,7 +30,7 @@ client.on(Events.MessageCreate, async (message) => { * @param {Message} message - The message object * **/ -exports.handleMessageCreate = async function(message) { +module.exports.handleMessageCreate = async function(message) { try { // Ignore bots if (message.author.bot) return; @@ -81,7 +83,7 @@ function printGuilds() { const debouncePrintGuilds = utils.debounce(printGuilds, 2000); // export const debounceLogin = utils.debounce(client.login, 60000); -exports.login = async function() { +module.exports.login = async function() { try { await client.login(token); // await db.check_connection(); diff --git a/src/commands.js b/src/commands.js index f062c50..395fd17 100644 --- a/src/commands.js +++ b/src/commands.js @@ -1,8 +1,8 @@ -const messageHelper = require("./helpers/messageHelper.js"); -const enums = require("./enums.js"); -const memberHelper = require("./helpers/memberHelper.js"); +const {messageHelper} = require("./helpers/messageHelper.js"); +const {enums} = require("./enums.js"); +const {memberHelper} = require("./helpers/memberHelper.js"); const {EmbedBuilder} = require("@fluxerjs/core"); -const importHelper = require("./helpers/importHelper.js"); +const {importHelper} = require("./helpers/importHelper.js"); const commands = { commandsMap: new Map(), @@ -119,4 +119,4 @@ commands.importCommand = async function (message, args) { } -module.exports = commands; \ No newline at end of file +module.exports.commands = commands; \ No newline at end of file diff --git a/src/database.js b/src/database.js index 5eeb66c..b089686 100644 --- a/src/database.js +++ b/src/database.js @@ -83,4 +83,4 @@ async function syncModels() { } } -module.exports = database; \ No newline at end of file +module.exports.database = database; \ No newline at end of file diff --git a/src/enums.js b/src/enums.js index e7ec1cf..3248413 100644 --- a/src/enums.js +++ b/src/enums.js @@ -50,4 +50,4 @@ enums.misc = { } -module.exports = enums; \ No newline at end of file +module.exports.enums = enums; \ No newline at end of file diff --git a/src/helpers/importHelper.js b/src/helpers/importHelper.js index 2b116c8..1482726 100644 --- a/src/helpers/importHelper.js +++ b/src/helpers/importHelper.js @@ -1,5 +1,5 @@ -const enums = require("../enums.js"); -const memberHelper = require("./memberHelper.js"); +const {enums} = require("../enums.js"); +const {memberHelper} = require("./memberHelper.js"); const importHelper = {}; @@ -55,4 +55,4 @@ importHelper.pluralKitImport = async function (authorId, attachmentUrl= null) { return aggregatedText; } -module.exports = importHelper; \ No newline at end of file +exports.importHelper = importHelper; \ No newline at end of file diff --git a/src/helpers/memberHelper.js b/src/helpers/memberHelper.js index d01fef5..879bc30 100644 --- a/src/helpers/memberHelper.js +++ b/src/helpers/memberHelper.js @@ -1,8 +1,8 @@ -const database = require('../database.js'); -const enums = require("../enums.js"); +const {database} = require('../database.js'); +const {enums} = require("../enums.js"); const {Op} = require("sequelize"); const {EmbedBuilder} = require("@fluxerjs/core"); -const utils = require("./utils.js"); +const {utils} = require("./utils.js"); const memberHelper = {}; @@ -365,20 +365,21 @@ memberHelper.addFullMember = async function (authorId, memberName, displayName = } } - let isValidPropic; + let isValidPropic, expirationWarning; if (propic && propic.length > 0) { try { isValidPropic = await utils.checkImageFormatValidity(propic); + expirationWarning = utils.setExpirationWarning(propic, attachmentExpiration); + if (expirationWarning) { + errors.push(expirationWarning); + } } catch(e) { errors.push(`Tried to set profile picture to \"${propic}\". ${e.message}. ${enums.err.SET_TO_NULL}`); isValidPropic = false; } } - const expirationWarning = utils.setExpirationWarning(propic, attachmentExpiration); - if (expirationWarning) { - errors.push(expirationWarning); - } + const member = await database.members.create({ name: memberName, userid: authorId, displayname: isValidDisplayName ? displayName : null, proxy: isValidProxy ? proxy : null, propic: isValidPropic ? propic : null }); @@ -516,4 +517,4 @@ memberHelper.getMemberCommandInfo = function() { } -module.exports = memberHelper; \ No newline at end of file +module.exports.memberHelper = memberHelper; \ No newline at end of file diff --git a/src/helpers/messageHelper.js b/src/helpers/messageHelper.js index f2531b2..31517a5 100644 --- a/src/helpers/messageHelper.js +++ b/src/helpers/messageHelper.js @@ -1,8 +1,8 @@ -const memberHelper = require('./memberHelper.js'); +const {memberHelper} = require('./memberHelper.js'); -const messageHelper = {}; +const msgh = {}; -messageHelper.prefix = "pf;" +msgh.prefix = "pf;" /** * Parses and slices up message arguments, retaining quoted strings. @@ -11,8 +11,8 @@ messageHelper.prefix = "pf;" * @param {string} commandName - The command name. * @returns {string[]} An array of arguments. */ -messageHelper.parseCommandArgs = function(content, commandName) { - const message = content.slice(messageHelper.prefix.length + commandName.length).trim(); +msgh.parseCommandArgs = function(content, commandName) { + const message = content.slice(msgh.prefix.length + commandName.length).trim(); return message.match(/\\?.|^$/g).reduce((accumulator, chara) => { if (chara === '\"' || chara === '\'') { @@ -38,7 +38,7 @@ messageHelper.parseCommandArgs = function(content, commandName) { * @param {string | null} [attachmentUrl] - The url for an attachment to the message, if any exists. * @returns {Promise<{model, string, bool}>} The proxy message object. */ -messageHelper.parseProxyTags = async function (authorId, content, attachmentUrl = null){ +msgh.parseProxyTags = async function (authorId, content, attachmentUrl = null){ const members = await memberHelper.getMembersByAuthor(authorId); // If an author has no members, no sense in searching for proxy if (members.length === 0) { @@ -70,7 +70,7 @@ messageHelper.parseProxyTags = async function (authorId, content, attachmentUrl * @returns {{text: string, file: Buffer | undefined}} The text and buffer object * */ -messageHelper.returnBufferFromText = function (text) { +msgh.returnBufferFromText = function (text) { if (text.length > 2000) { const truncated = text.substring(0, 2000); const restOfText = text.substring(2000); @@ -80,4 +80,4 @@ messageHelper.returnBufferFromText = function (text) { return {text: text, file: undefined} } -module.exports = messageHelper; +module.exports.messageHelper = msgh; diff --git a/src/helpers/utils.js b/src/helpers/utils.js index 8931aa0..153fe12 100644 --- a/src/helpers/utils.js +++ b/src/helpers/utils.js @@ -1,4 +1,4 @@ -const enums = require('../enums'); +const {enums} = require('../enums'); const utils = {}; @@ -54,4 +54,4 @@ utils.setExpirationWarning = function (imgUrl = null, expirationString = null) { return null; } -module.exports = utils; +module.exports.utils = utils; diff --git a/src/helpers/webhookHelper.js b/src/helpers/webhookHelper.js index e32e70b..015a999 100644 --- a/src/helpers/webhookHelper.js +++ b/src/helpers/webhookHelper.js @@ -93,4 +93,4 @@ webhookHelper.getWebhook = async function(client, channel) { return channelWebhooks.find((webhook) => webhook.name === name); } -module.exports = webhookHelper; \ No newline at end of file +module.exports.webhookHelper = webhookHelper; \ No newline at end of file diff --git a/tests/helpers/memberHelper.test.js b/tests/helpers/memberHelper.test.js index 106888e..16b1ae8 100644 --- a/tests/helpers/memberHelper.test.js +++ b/tests/helpers/memberHelper.test.js @@ -590,6 +590,7 @@ describe('MemberHelper', () => { proxy: null, propic: null } + utils.setExpirationWarning = jest.fn().mockReturnValue(); database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs); const expectedReturn = {member: expectedMemberArgs, errors: []} // Act @@ -628,12 +629,12 @@ describe('MemberHelper', () => { test('calls setExpirationWarning if attachmentExpiration exists', async () => { // Arrange utils.checkImageFormatValidity = jest.fn().mockResolvedValue(true); - jest.spyOn(memberHelper, 'setExpirationWarning').mockReturnValue(`${enums.misc.ATTACHMENT_EXPIRATION_WARNING}`); + utils.setExpirationWarning = jest.fn().mockReturnValue(`${enums.misc.ATTACHMENT_EXPIRATION_WARNING}`); // Act await memberHelper.addFullMember(authorId, mockMember.name, null, null, mockMember.propic, attachmentExpiration) // Assert - expect(memberHelper.setExpirationWarning).toHaveBeenCalledTimes(1); - expect(memberHelper.setExpirationWarning).toHaveBeenCalledWith(mockMember.propic, attachmentExpiration); + expect(utils.setExpirationWarning).toHaveBeenCalledTimes(1); + expect(utils.setExpirationWarning).toHaveBeenCalledWith(mockMember.propic, attachmentExpiration); }) test('if all values are valid, call database.members.create', async () => { @@ -648,6 +649,7 @@ describe('MemberHelper', () => { } database.members.create = jest.fn().mockResolvedValue(expectedMemberArgs); utils.checkImageFormatValidity = jest.fn().mockResolvedValue(true); + utils.setExpirationWarning = jest.fn().mockReturnValue(); const expectedReturn = {member: expectedMemberArgs, errors: []} // Act const res = await memberHelper.addFullMember(authorId, mockMember.name, mockMember.displayname, mockMember.proxy, mockMember.propic); @@ -662,7 +664,7 @@ describe('MemberHelper', () => { describe('updateMemberField', () => { const {database} = require('../../src/database.js'); beforeEach(() => { - jest.spyOn(memberHelper, "setExpirationWarning").mockReturnValue(' warning'); + utils.setExpirationWarning = jest.fn().mockReturnValue(`warning`); database.members = { update: jest.fn().mockResolvedValue([1]) };