Files
PluralFlux-infra/tests/helpers/messageHelper.test.js

121 lines
6.6 KiB
JavaScript
Raw Normal View History

feat: add tests and other such features (#3) * converted import syntax to ES modules removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * converted import syntax to commonJS removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * more correct dockerfile and compose.yaml * Revert "converted import syntax to commonJS" This reverts commit 5ab0d62b * updated jest to sort of work with es6 * separating out enum return from method return * mostly working except for the weirdest error * nevermind it wasn't actually working, gonna move on for now * added babel to convert es modules to cjs * finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach()) * setup fixed more * added error handling parseMemberCommand test * renamed db to database more tests and fixing logic for memberhelper * upgraded fluxer.js * moved import to helpers folder * moved import to helpers folder * more tests for member helper * think i fixed weird error with webhook sending error when a user has no members * simplified sendMessageAsAttachment * added return to addFullMember so that addNewMember can reference it properly in strings * test setup for messagehelper and webhookhelper * readded line i shouldn't have removed in sendMessageAsMember * fixed test and logic * added test for memberHelper * updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly * added tests for parseProxyTags and updated logic * added "return" so tests dont terminate on failure and deleted env.jest * finished tests for messageHelper! * more cases for messageHelper just in case * updating docstring for messageHelper parseProxyTags * more tests for webhookhelper * deleted extra file added during merge * removed confusing brackets from enum docs * finally mocking correctly * adding more cases to messageHelper tests * updating enums * removed error response when proxy is sent without content * , updated tests for webhookHelper and removed error response when proxy is sent without content * added debounce to count guilds properly * added todo note * added tests for updateDisplayName * edited help message trigger for updatePropic * update message helper test to include space case * update bot to suppress errors from API * fixed bug for import not sending help text, added help text if you type a unrecognized command * updated to be enum * updated member helper and tests * edit enums, tweak import content command * removed unnecessary await and console.log * made it easier to make a member * added nicer error listing to importHelper * updated documentation * Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-19 21:45:10 -05:00
const env = require('dotenv');
env.config();
perf: Merge develop into main (#36) * Update dockerfile for standalone deployment (#23) * Add files via upload * Update Docker image for pluralflux service * removing unnecessary network and container name definitions --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Converting ES6 back to CJS (#25) converting back to cjs Co-authored-by: Aster Fialla <asterfialla@gmail.com> * 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 <asterfialla@gmail.com> * feat: add db migrations with typeORM (#28) * adding typescript packages for typeORM * add typeORM initial files * updating package scripts * updating compose.yaml to have an exposed port for the postgres * modifying setup for typeORM * update database stuff and and package.json to help generate migrations * made models and migrations in typeORM * delete unneeded database.js * made database pattern ignored by jest * remove sequelize * separate member repo from member helper * not sure why i made everything numbers in the model but it's fixed now * edited package.json script * remove unused index.ts * adjusted files to reference repository correctly and appdatasource * made appdatasource export as named * removed start-db script * added init to appdatasource in bot.js * migrations finally! * new migration matching model names I want * updating tests * removing testpathignore patterns since it seems to be unecessary? * adjusting migrations to match current schema * removed reference to secrets file * delete old migration * Revert "delete old migration" This reverts commit db1efa39a7a80d8976878856250ccaac6a753ab2. * Revert "adjusting migrations to match current schema" This reverts commit ef89a83f6a2ef0643d6ace0a3fcf9c40f4bc6dd6. * just deleted system creation since it's got nothing in it anyway * renamed memberRepository to memberRepo for consistency * added await back to parseMemberCommand call to memberArgumentHandler * changed call to memberHelper.getMembersByAuthor to memberRepo * renamed repo updateMemberValue to updateMemberField * removed throw references in repo docstrings * remove unneeded subscriber directory ref * changed createdAt and updatedAt columns to be auto-generated made member table have timezone * changed casing of isInitialized in mock for bot.js * removed % from ILike query so that it doesn't match substrings/wildcard * renamed some stray updateMemberValue in mocks -> updateMemberField --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * feat: Add migration to migrate existing data to new member table (#29) added migration to fill new Member table with data from Members Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: update message helper reference hotfix (#30) * forgot to update a reference in messageHelper to memberRepo instead of memberHelper * turned off data-source logging --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: update dockerfile to run npm start (#31) fix: update dockerfile to run npm start (which runs ts-node) instead of node Co-authored-by: Aster Fialla <asterfialla@gmail.com> * added .env with examples, updated data-source to be access a docker container instead of relying on loopback * i forgot to git add data-source.ts :facepalm: * fix: changed property reference for createMember in repo (#32) fix for createMember object references (was referencing non-existent properties) Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: memberRepo methods syntax (#35) * rearranged update member field and remove member to match expected structure in typeORM * update docstring * change insert to save in memberRepo * added command in package.json --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Delete duplicate members migration (#33) * add migration to delete duplicates that currently exist in the db * added a name attribute for consistency --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Add unique index migration (#34) * add migration to delete duplicates that currently exist in the db * change model and migration to add a unique index constraint to id and name * renamed unique index name to be readable * redid model and migration to use @Unique instead of @Index * remove //Here comment --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * why wont these workflows stay up gahdamn --------- Co-authored-by: Laika Bozhko <63646916+LaikaBzko@users.noreply.github.com> Co-authored-by: Aster Fialla <asterfialla@gmail.com> Co-authored-by: laika <laika@sanya.gay>
2026-03-09 09:00:15 -04:00
jest.mock('../../src/repositories/memberRepo.js', () => {
refactor: Removing then/catch from async/await calls (#22) * refactored async/await for import helper to not also use then/catch * added enum * refactor webhookHelper and tests to not use then/catch * changed docstring * refactoring bot and tests to not use then/catch * refactoring commands.js and tests to not use then/catch * refactoring memberHelper.js and tests to not use then/catch * removing then/catch from messageHelper.test.js * fixed set up for commands tests * edited bot to have top level main function * one more test in commands.js, and removed console.error * fixed typo in webhookHelper * forgot to switch over some tests in bot.test and commands.test * removed console.log from import helper * put console.error in commands * converted utils.js to not use then/catch * tested utils checkImageFormatValidity * removed jest-fetch-mock since it turns out I was just manually mocking it anyway * refactored database to not use then/catch * added dash to commands.js and test to pass * added the remaining webhook tests * changed utils to check for 10MB size not 1MB * removed unnecessary try/catch from utils * Simplify getWebhook to use .find() instead of foreach logic * make memberCommand exit when error occurs with parseMemberCommand * changed commands.js to not have user interaction within the catch * updated console.error message in database.js * made importHelper mock throw error instead of "resolve" error * replaced "pk;" with "pf;" in test * Got rid of unnecessary check for empty message from user (Fluxer doesn't allow this to happen) Removed export of token * getAllMembersInfo checks for fields.length * added default case to memberCommandHandler to throw error if command is not recognized * reversed check for valid proxy (was returning valid if the proxy existed and invalid if it didn't) * pushes e.message instead of full error object to errors array in importHelper * adjusted tests to properly use mockRejectedValue for async rejections * changed getAllMembersInfo map to say `index` not `name` as it actually gets the index of a member and then the member object * adjusted importHelper to properly test throwing of aggregate error * revamped setting of expiration warning (moved to utils and changed logic, wrote tests) --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-25 19:30:39 -05:00
return {
perf: Merge develop into main (#36) * Update dockerfile for standalone deployment (#23) * Add files via upload * Update Docker image for pluralflux service * removing unnecessary network and container name definitions --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Converting ES6 back to CJS (#25) converting back to cjs Co-authored-by: Aster Fialla <asterfialla@gmail.com> * 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 <asterfialla@gmail.com> * feat: add db migrations with typeORM (#28) * adding typescript packages for typeORM * add typeORM initial files * updating package scripts * updating compose.yaml to have an exposed port for the postgres * modifying setup for typeORM * update database stuff and and package.json to help generate migrations * made models and migrations in typeORM * delete unneeded database.js * made database pattern ignored by jest * remove sequelize * separate member repo from member helper * not sure why i made everything numbers in the model but it's fixed now * edited package.json script * remove unused index.ts * adjusted files to reference repository correctly and appdatasource * made appdatasource export as named * removed start-db script * added init to appdatasource in bot.js * migrations finally! * new migration matching model names I want * updating tests * removing testpathignore patterns since it seems to be unecessary? * adjusting migrations to match current schema * removed reference to secrets file * delete old migration * Revert "delete old migration" This reverts commit db1efa39a7a80d8976878856250ccaac6a753ab2. * Revert "adjusting migrations to match current schema" This reverts commit ef89a83f6a2ef0643d6ace0a3fcf9c40f4bc6dd6. * just deleted system creation since it's got nothing in it anyway * renamed memberRepository to memberRepo for consistency * added await back to parseMemberCommand call to memberArgumentHandler * changed call to memberHelper.getMembersByAuthor to memberRepo * renamed repo updateMemberValue to updateMemberField * removed throw references in repo docstrings * remove unneeded subscriber directory ref * changed createdAt and updatedAt columns to be auto-generated made member table have timezone * changed casing of isInitialized in mock for bot.js * removed % from ILike query so that it doesn't match substrings/wildcard * renamed some stray updateMemberValue in mocks -> updateMemberField --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * feat: Add migration to migrate existing data to new member table (#29) added migration to fill new Member table with data from Members Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: update message helper reference hotfix (#30) * forgot to update a reference in messageHelper to memberRepo instead of memberHelper * turned off data-source logging --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: update dockerfile to run npm start (#31) fix: update dockerfile to run npm start (which runs ts-node) instead of node Co-authored-by: Aster Fialla <asterfialla@gmail.com> * added .env with examples, updated data-source to be access a docker container instead of relying on loopback * i forgot to git add data-source.ts :facepalm: * fix: changed property reference for createMember in repo (#32) fix for createMember object references (was referencing non-existent properties) Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: memberRepo methods syntax (#35) * rearranged update member field and remove member to match expected structure in typeORM * update docstring * change insert to save in memberRepo * added command in package.json --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Delete duplicate members migration (#33) * add migration to delete duplicates that currently exist in the db * added a name attribute for consistency --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Add unique index migration (#34) * add migration to delete duplicates that currently exist in the db * change model and migration to add a unique index constraint to id and name * renamed unique index name to be readable * redid model and migration to use @Unique instead of @Index * remove //Here comment --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * why wont these workflows stay up gahdamn --------- Co-authored-by: Laika Bozhko <63646916+LaikaBzko@users.noreply.github.com> Co-authored-by: Aster Fialla <asterfialla@gmail.com> Co-authored-by: laika <laika@sanya.gay>
2026-03-09 09:00:15 -04:00
memberRepo: {
refactor: Removing then/catch from async/await calls (#22) * refactored async/await for import helper to not also use then/catch * added enum * refactor webhookHelper and tests to not use then/catch * changed docstring * refactoring bot and tests to not use then/catch * refactoring commands.js and tests to not use then/catch * refactoring memberHelper.js and tests to not use then/catch * removing then/catch from messageHelper.test.js * fixed set up for commands tests * edited bot to have top level main function * one more test in commands.js, and removed console.error * fixed typo in webhookHelper * forgot to switch over some tests in bot.test and commands.test * removed console.log from import helper * put console.error in commands * converted utils.js to not use then/catch * tested utils checkImageFormatValidity * removed jest-fetch-mock since it turns out I was just manually mocking it anyway * refactored database to not use then/catch * added dash to commands.js and test to pass * added the remaining webhook tests * changed utils to check for 10MB size not 1MB * removed unnecessary try/catch from utils * Simplify getWebhook to use .find() instead of foreach logic * make memberCommand exit when error occurs with parseMemberCommand * changed commands.js to not have user interaction within the catch * updated console.error message in database.js * made importHelper mock throw error instead of "resolve" error * replaced "pk;" with "pf;" in test * Got rid of unnecessary check for empty message from user (Fluxer doesn't allow this to happen) Removed export of token * getAllMembersInfo checks for fields.length * added default case to memberCommandHandler to throw error if command is not recognized * reversed check for valid proxy (was returning valid if the proxy existed and invalid if it didn't) * pushes e.message instead of full error object to errors array in importHelper * adjusted tests to properly use mockRejectedValue for async rejections * changed getAllMembersInfo map to say `index` not `name` as it actually gets the index of a member and then the member object * adjusted importHelper to properly test throwing of aggregate error * revamped setting of expiration warning (moved to utils and changed logic, wrote tests) --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-25 19:30:39 -05:00
getMembersByAuthor: jest.fn()
}
}
feat: add tests and other such features (#3) * converted import syntax to ES modules removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * converted import syntax to commonJS removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * more correct dockerfile and compose.yaml * Revert "converted import syntax to commonJS" This reverts commit 5ab0d62b * updated jest to sort of work with es6 * separating out enum return from method return * mostly working except for the weirdest error * nevermind it wasn't actually working, gonna move on for now * added babel to convert es modules to cjs * finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach()) * setup fixed more * added error handling parseMemberCommand test * renamed db to database more tests and fixing logic for memberhelper * upgraded fluxer.js * moved import to helpers folder * moved import to helpers folder * more tests for member helper * think i fixed weird error with webhook sending error when a user has no members * simplified sendMessageAsAttachment * added return to addFullMember so that addNewMember can reference it properly in strings * test setup for messagehelper and webhookhelper * readded line i shouldn't have removed in sendMessageAsMember * fixed test and logic * added test for memberHelper * updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly * added tests for parseProxyTags and updated logic * added "return" so tests dont terminate on failure and deleted env.jest * finished tests for messageHelper! * more cases for messageHelper just in case * updating docstring for messageHelper parseProxyTags * more tests for webhookhelper * deleted extra file added during merge * removed confusing brackets from enum docs * finally mocking correctly * adding more cases to messageHelper tests * updating enums * removed error response when proxy is sent without content * , updated tests for webhookHelper and removed error response when proxy is sent without content * added debounce to count guilds properly * added todo note * added tests for updateDisplayName * edited help message trigger for updatePropic * update message helper test to include space case * update bot to suppress errors from API * fixed bug for import not sending help text, added help text if you type a unrecognized command * updated to be enum * updated member helper and tests * edit enums, tweak import content command * removed unnecessary await and console.log * made it easier to make a member * added nicer error listing to importHelper * updated documentation * Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-19 21:45:10 -05:00
})
const {messageHelper} = require("../../src/helpers/messageHelper.js");
perf: Merge develop into main (#36) * Update dockerfile for standalone deployment (#23) * Add files via upload * Update Docker image for pluralflux service * removing unnecessary network and container name definitions --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Converting ES6 back to CJS (#25) converting back to cjs Co-authored-by: Aster Fialla <asterfialla@gmail.com> * 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 <asterfialla@gmail.com> * feat: add db migrations with typeORM (#28) * adding typescript packages for typeORM * add typeORM initial files * updating package scripts * updating compose.yaml to have an exposed port for the postgres * modifying setup for typeORM * update database stuff and and package.json to help generate migrations * made models and migrations in typeORM * delete unneeded database.js * made database pattern ignored by jest * remove sequelize * separate member repo from member helper * not sure why i made everything numbers in the model but it's fixed now * edited package.json script * remove unused index.ts * adjusted files to reference repository correctly and appdatasource * made appdatasource export as named * removed start-db script * added init to appdatasource in bot.js * migrations finally! * new migration matching model names I want * updating tests * removing testpathignore patterns since it seems to be unecessary? * adjusting migrations to match current schema * removed reference to secrets file * delete old migration * Revert "delete old migration" This reverts commit db1efa39a7a80d8976878856250ccaac6a753ab2. * Revert "adjusting migrations to match current schema" This reverts commit ef89a83f6a2ef0643d6ace0a3fcf9c40f4bc6dd6. * just deleted system creation since it's got nothing in it anyway * renamed memberRepository to memberRepo for consistency * added await back to parseMemberCommand call to memberArgumentHandler * changed call to memberHelper.getMembersByAuthor to memberRepo * renamed repo updateMemberValue to updateMemberField * removed throw references in repo docstrings * remove unneeded subscriber directory ref * changed createdAt and updatedAt columns to be auto-generated made member table have timezone * changed casing of isInitialized in mock for bot.js * removed % from ILike query so that it doesn't match substrings/wildcard * renamed some stray updateMemberValue in mocks -> updateMemberField --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * feat: Add migration to migrate existing data to new member table (#29) added migration to fill new Member table with data from Members Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: update message helper reference hotfix (#30) * forgot to update a reference in messageHelper to memberRepo instead of memberHelper * turned off data-source logging --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: update dockerfile to run npm start (#31) fix: update dockerfile to run npm start (which runs ts-node) instead of node Co-authored-by: Aster Fialla <asterfialla@gmail.com> * added .env with examples, updated data-source to be access a docker container instead of relying on loopback * i forgot to git add data-source.ts :facepalm: * fix: changed property reference for createMember in repo (#32) fix for createMember object references (was referencing non-existent properties) Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: memberRepo methods syntax (#35) * rearranged update member field and remove member to match expected structure in typeORM * update docstring * change insert to save in memberRepo * added command in package.json --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Delete duplicate members migration (#33) * add migration to delete duplicates that currently exist in the db * added a name attribute for consistency --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Add unique index migration (#34) * add migration to delete duplicates that currently exist in the db * change model and migration to add a unique index constraint to id and name * renamed unique index name to be readable * redid model and migration to use @Unique instead of @Index * remove //Here comment --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * why wont these workflows stay up gahdamn --------- Co-authored-by: Laika Bozhko <63646916+LaikaBzko@users.noreply.github.com> Co-authored-by: Aster Fialla <asterfialla@gmail.com> Co-authored-by: laika <laika@sanya.gay>
2026-03-09 09:00:15 -04:00
const {memberRepo} = require("../../src/repositories/memberRepo");
feat: add tests and other such features (#3) * converted import syntax to ES modules removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * converted import syntax to commonJS removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * more correct dockerfile and compose.yaml * Revert "converted import syntax to commonJS" This reverts commit 5ab0d62b * updated jest to sort of work with es6 * separating out enum return from method return * mostly working except for the weirdest error * nevermind it wasn't actually working, gonna move on for now * added babel to convert es modules to cjs * finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach()) * setup fixed more * added error handling parseMemberCommand test * renamed db to database more tests and fixing logic for memberhelper * upgraded fluxer.js * moved import to helpers folder * moved import to helpers folder * more tests for member helper * think i fixed weird error with webhook sending error when a user has no members * simplified sendMessageAsAttachment * added return to addFullMember so that addNewMember can reference it properly in strings * test setup for messagehelper and webhookhelper * readded line i shouldn't have removed in sendMessageAsMember * fixed test and logic * added test for memberHelper * updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly * added tests for parseProxyTags and updated logic * added "return" so tests dont terminate on failure and deleted env.jest * finished tests for messageHelper! * more cases for messageHelper just in case * updating docstring for messageHelper parseProxyTags * more tests for webhookhelper * deleted extra file added during merge * removed confusing brackets from enum docs * finally mocking correctly * adding more cases to messageHelper tests * updating enums * removed error response when proxy is sent without content * , updated tests for webhookHelper and removed error response when proxy is sent without content * added debounce to count guilds properly * added todo note * added tests for updateDisplayName * edited help message trigger for updatePropic * update message helper test to include space case * update bot to suppress errors from API * fixed bug for import not sending help text, added help text if you type a unrecognized command * updated to be enum * updated member helper and tests * edit enums, tweak import content command * removed unnecessary await and console.log * made it easier to make a member * added nicer error listing to importHelper * updated documentation * Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-19 21:45:10 -05:00
describe('messageHelper', () => {
beforeEach(() => {
jest.resetModules();
jest.clearAllMocks();
})
describe('parseCommandArgs', () => {
test.each([
refactor: Removing then/catch from async/await calls (#22) * refactored async/await for import helper to not also use then/catch * added enum * refactor webhookHelper and tests to not use then/catch * changed docstring * refactoring bot and tests to not use then/catch * refactoring commands.js and tests to not use then/catch * refactoring memberHelper.js and tests to not use then/catch * removing then/catch from messageHelper.test.js * fixed set up for commands tests * edited bot to have top level main function * one more test in commands.js, and removed console.error * fixed typo in webhookHelper * forgot to switch over some tests in bot.test and commands.test * removed console.log from import helper * put console.error in commands * converted utils.js to not use then/catch * tested utils checkImageFormatValidity * removed jest-fetch-mock since it turns out I was just manually mocking it anyway * refactored database to not use then/catch * added dash to commands.js and test to pass * added the remaining webhook tests * changed utils to check for 10MB size not 1MB * removed unnecessary try/catch from utils * Simplify getWebhook to use .find() instead of foreach logic * make memberCommand exit when error occurs with parseMemberCommand * changed commands.js to not have user interaction within the catch * updated console.error message in database.js * made importHelper mock throw error instead of "resolve" error * replaced "pk;" with "pf;" in test * Got rid of unnecessary check for empty message from user (Fluxer doesn't allow this to happen) Removed export of token * getAllMembersInfo checks for fields.length * added default case to memberCommandHandler to throw error if command is not recognized * reversed check for valid proxy (was returning valid if the proxy existed and invalid if it didn't) * pushes e.message instead of full error object to errors array in importHelper * adjusted tests to properly use mockRejectedValue for async rejections * changed getAllMembersInfo map to say `index` not `name` as it actually gets the index of a member and then the member object * adjusted importHelper to properly test throwing of aggregate error * revamped setting of expiration warning (moved to utils and changed logic, wrote tests) --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-25 19:30:39 -05:00
['pf;member', ['']],
['pf;member add somePerson "Some Person"', ['add', 'somePerson', 'Some Person']],
['pf;member add \"Some Person\"', ['add', 'Some Person']],
['pf;member add somePerson \'Some Person\'', ['add', 'somePerson', 'Some Person']],
['pf;member add somePerson \"\'Some\' Person\"', ['add', 'somePerson', 'Some Person']],
feat: add tests and other such features (#3) * converted import syntax to ES modules removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * converted import syntax to commonJS removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * more correct dockerfile and compose.yaml * Revert "converted import syntax to commonJS" This reverts commit 5ab0d62b * updated jest to sort of work with es6 * separating out enum return from method return * mostly working except for the weirdest error * nevermind it wasn't actually working, gonna move on for now * added babel to convert es modules to cjs * finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach()) * setup fixed more * added error handling parseMemberCommand test * renamed db to database more tests and fixing logic for memberhelper * upgraded fluxer.js * moved import to helpers folder * moved import to helpers folder * more tests for member helper * think i fixed weird error with webhook sending error when a user has no members * simplified sendMessageAsAttachment * added return to addFullMember so that addNewMember can reference it properly in strings * test setup for messagehelper and webhookhelper * readded line i shouldn't have removed in sendMessageAsMember * fixed test and logic * added test for memberHelper * updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly * added tests for parseProxyTags and updated logic * added "return" so tests dont terminate on failure and deleted env.jest * finished tests for messageHelper! * more cases for messageHelper just in case * updating docstring for messageHelper parseProxyTags * more tests for webhookhelper * deleted extra file added during merge * removed confusing brackets from enum docs * finally mocking correctly * adding more cases to messageHelper tests * updating enums * removed error response when proxy is sent without content * , updated tests for webhookHelper and removed error response when proxy is sent without content * added debounce to count guilds properly * added todo note * added tests for updateDisplayName * edited help message trigger for updatePropic * update message helper test to include space case * update bot to suppress errors from API * fixed bug for import not sending help text, added help text if you type a unrecognized command * updated to be enum * updated member helper and tests * edit enums, tweak import content command * removed unnecessary await and console.log * made it easier to make a member * added nicer error listing to importHelper * updated documentation * Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-19 21:45:10 -05:00
])('%s returns correct arguments', (content, expected) => {
// Arrange
const command = "member";
const result = messageHelper.parseCommandArgs(content, command);
expect(result).toEqual(expected);
})
})
describe(`parseProxyTags`, () => {
const membersFor1 = [
{name: "somePerson", proxy: "--text"},
{name: "someSecondPerson", proxy: undefined},
{name: "someOtherPerson", proxy: "?text}"},
{name: "someLastPerson", proxy: "{text}"},
{name: "someEmojiPerson", proxy: "⭐text"},
{name: "someSpacePerson", proxy: "! text"},
]
const membersFor2 = []
const membersFor3 = [
{name: "someOtherThirdPerson", proxy: undefined}
]
const attachmentUrl = "../oya.png"
beforeEach(() => {
perf: Merge develop into main (#36) * Update dockerfile for standalone deployment (#23) * Add files via upload * Update Docker image for pluralflux service * removing unnecessary network and container name definitions --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Converting ES6 back to CJS (#25) converting back to cjs Co-authored-by: Aster Fialla <asterfialla@gmail.com> * 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 <asterfialla@gmail.com> * feat: add db migrations with typeORM (#28) * adding typescript packages for typeORM * add typeORM initial files * updating package scripts * updating compose.yaml to have an exposed port for the postgres * modifying setup for typeORM * update database stuff and and package.json to help generate migrations * made models and migrations in typeORM * delete unneeded database.js * made database pattern ignored by jest * remove sequelize * separate member repo from member helper * not sure why i made everything numbers in the model but it's fixed now * edited package.json script * remove unused index.ts * adjusted files to reference repository correctly and appdatasource * made appdatasource export as named * removed start-db script * added init to appdatasource in bot.js * migrations finally! * new migration matching model names I want * updating tests * removing testpathignore patterns since it seems to be unecessary? * adjusting migrations to match current schema * removed reference to secrets file * delete old migration * Revert "delete old migration" This reverts commit db1efa39a7a80d8976878856250ccaac6a753ab2. * Revert "adjusting migrations to match current schema" This reverts commit ef89a83f6a2ef0643d6ace0a3fcf9c40f4bc6dd6. * just deleted system creation since it's got nothing in it anyway * renamed memberRepository to memberRepo for consistency * added await back to parseMemberCommand call to memberArgumentHandler * changed call to memberHelper.getMembersByAuthor to memberRepo * renamed repo updateMemberValue to updateMemberField * removed throw references in repo docstrings * remove unneeded subscriber directory ref * changed createdAt and updatedAt columns to be auto-generated made member table have timezone * changed casing of isInitialized in mock for bot.js * removed % from ILike query so that it doesn't match substrings/wildcard * renamed some stray updateMemberValue in mocks -> updateMemberField --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * feat: Add migration to migrate existing data to new member table (#29) added migration to fill new Member table with data from Members Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: update message helper reference hotfix (#30) * forgot to update a reference in messageHelper to memberRepo instead of memberHelper * turned off data-source logging --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: update dockerfile to run npm start (#31) fix: update dockerfile to run npm start (which runs ts-node) instead of node Co-authored-by: Aster Fialla <asterfialla@gmail.com> * added .env with examples, updated data-source to be access a docker container instead of relying on loopback * i forgot to git add data-source.ts :facepalm: * fix: changed property reference for createMember in repo (#32) fix for createMember object references (was referencing non-existent properties) Co-authored-by: Aster Fialla <asterfialla@gmail.com> * fix: memberRepo methods syntax (#35) * rearranged update member field and remove member to match expected structure in typeORM * update docstring * change insert to save in memberRepo * added command in package.json --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Delete duplicate members migration (#33) * add migration to delete duplicates that currently exist in the db * added a name attribute for consistency --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * Add unique index migration (#34) * add migration to delete duplicates that currently exist in the db * change model and migration to add a unique index constraint to id and name * renamed unique index name to be readable * redid model and migration to use @Unique instead of @Index * remove //Here comment --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com> * why wont these workflows stay up gahdamn --------- Co-authored-by: Laika Bozhko <63646916+LaikaBzko@users.noreply.github.com> Co-authored-by: Aster Fialla <asterfialla@gmail.com> Co-authored-by: laika <laika@sanya.gay>
2026-03-09 09:00:15 -04:00
memberRepo.getMembersByAuthor = jest.fn().mockImplementation((specificAuthorId) => {
feat: add tests and other such features (#3) * converted import syntax to ES modules removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * converted import syntax to commonJS removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * more correct dockerfile and compose.yaml * Revert "converted import syntax to commonJS" This reverts commit 5ab0d62b * updated jest to sort of work with es6 * separating out enum return from method return * mostly working except for the weirdest error * nevermind it wasn't actually working, gonna move on for now * added babel to convert es modules to cjs * finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach()) * setup fixed more * added error handling parseMemberCommand test * renamed db to database more tests and fixing logic for memberhelper * upgraded fluxer.js * moved import to helpers folder * moved import to helpers folder * more tests for member helper * think i fixed weird error with webhook sending error when a user has no members * simplified sendMessageAsAttachment * added return to addFullMember so that addNewMember can reference it properly in strings * test setup for messagehelper and webhookhelper * readded line i shouldn't have removed in sendMessageAsMember * fixed test and logic * added test for memberHelper * updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly * added tests for parseProxyTags and updated logic * added "return" so tests dont terminate on failure and deleted env.jest * finished tests for messageHelper! * more cases for messageHelper just in case * updating docstring for messageHelper parseProxyTags * more tests for webhookhelper * deleted extra file added during merge * removed confusing brackets from enum docs * finally mocking correctly * adding more cases to messageHelper tests * updating enums * removed error response when proxy is sent without content * , updated tests for webhookHelper and removed error response when proxy is sent without content * added debounce to count guilds properly * added todo note * added tests for updateDisplayName * edited help message trigger for updatePropic * update message helper test to include space case * update bot to suppress errors from API * fixed bug for import not sending help text, added help text if you type a unrecognized command * updated to be enum * updated member helper and tests * edit enums, tweak import content command * removed unnecessary await and console.log * made it easier to make a member * added nicer error listing to importHelper * updated documentation * Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-19 21:45:10 -05:00
if (specificAuthorId === "1") return membersFor1;
if (specificAuthorId === "2") return membersFor2;
if (specificAuthorId === "3") return membersFor3;
})
});
test.each([
['1', 'hello', null, {}],
['1', '--hello', null, {member: membersFor1[0], message: 'hello', hasAttachment: false}],
['1', 'hello', attachmentUrl, {}],
['1', '--hello', attachmentUrl, {member: membersFor1[0], message: 'hello', hasAttachment: true}],
['1', '--', attachmentUrl, {member: membersFor1[0], message: '', hasAttachment: true}],
['1', '?hello}', null, {member: membersFor1[2], message: 'hello', hasAttachment: false}],
['1', '{hello}', null, {member: membersFor1[3], message: 'hello', hasAttachment: false}],
['1', '⭐hello', null, {member: membersFor1[4], message: 'hello', hasAttachment: false}],
['1', '! hello', null, {member: membersFor1[5], message: 'hello', hasAttachment: false}],
['2', 'hello', null, undefined],
['2', '--hello', null, undefined],
['2', 'hello', attachmentUrl, undefined],
refactor: Removing then/catch from async/await calls (#22) * refactored async/await for import helper to not also use then/catch * added enum * refactor webhookHelper and tests to not use then/catch * changed docstring * refactoring bot and tests to not use then/catch * refactoring commands.js and tests to not use then/catch * refactoring memberHelper.js and tests to not use then/catch * removing then/catch from messageHelper.test.js * fixed set up for commands tests * edited bot to have top level main function * one more test in commands.js, and removed console.error * fixed typo in webhookHelper * forgot to switch over some tests in bot.test and commands.test * removed console.log from import helper * put console.error in commands * converted utils.js to not use then/catch * tested utils checkImageFormatValidity * removed jest-fetch-mock since it turns out I was just manually mocking it anyway * refactored database to not use then/catch * added dash to commands.js and test to pass * added the remaining webhook tests * changed utils to check for 10MB size not 1MB * removed unnecessary try/catch from utils * Simplify getWebhook to use .find() instead of foreach logic * make memberCommand exit when error occurs with parseMemberCommand * changed commands.js to not have user interaction within the catch * updated console.error message in database.js * made importHelper mock throw error instead of "resolve" error * replaced "pk;" with "pf;" in test * Got rid of unnecessary check for empty message from user (Fluxer doesn't allow this to happen) Removed export of token * getAllMembersInfo checks for fields.length * added default case to memberCommandHandler to throw error if command is not recognized * reversed check for valid proxy (was returning valid if the proxy existed and invalid if it didn't) * pushes e.message instead of full error object to errors array in importHelper * adjusted tests to properly use mockRejectedValue for async rejections * changed getAllMembersInfo map to say `index` not `name` as it actually gets the index of a member and then the member object * adjusted importHelper to properly test throwing of aggregate error * revamped setting of expiration warning (moved to utils and changed logic, wrote tests) --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-25 19:30:39 -05:00
['2', '--hello', attachmentUrl, undefined],
feat: add tests and other such features (#3) * converted import syntax to ES modules removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * converted import syntax to commonJS removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * more correct dockerfile and compose.yaml * Revert "converted import syntax to commonJS" This reverts commit 5ab0d62b * updated jest to sort of work with es6 * separating out enum return from method return * mostly working except for the weirdest error * nevermind it wasn't actually working, gonna move on for now * added babel to convert es modules to cjs * finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach()) * setup fixed more * added error handling parseMemberCommand test * renamed db to database more tests and fixing logic for memberhelper * upgraded fluxer.js * moved import to helpers folder * moved import to helpers folder * more tests for member helper * think i fixed weird error with webhook sending error when a user has no members * simplified sendMessageAsAttachment * added return to addFullMember so that addNewMember can reference it properly in strings * test setup for messagehelper and webhookhelper * readded line i shouldn't have removed in sendMessageAsMember * fixed test and logic * added test for memberHelper * updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly * added tests for parseProxyTags and updated logic * added "return" so tests dont terminate on failure and deleted env.jest * finished tests for messageHelper! * more cases for messageHelper just in case * updating docstring for messageHelper parseProxyTags * more tests for webhookhelper * deleted extra file added during merge * removed confusing brackets from enum docs * finally mocking correctly * adding more cases to messageHelper tests * updating enums * removed error response when proxy is sent without content * , updated tests for webhookHelper and removed error response when proxy is sent without content * added debounce to count guilds properly * added todo note * added tests for updateDisplayName * edited help message trigger for updatePropic * update message helper test to include space case * update bot to suppress errors from API * fixed bug for import not sending help text, added help text if you type a unrecognized command * updated to be enum * updated member helper and tests * edit enums, tweak import content command * removed unnecessary await and console.log * made it easier to make a member * added nicer error listing to importHelper * updated documentation * Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-19 21:45:10 -05:00
['3', 'hello', null, {}],
['3', '--hello', null, {}],
['3', 'hello', attachmentUrl, {}],
refactor: Removing then/catch from async/await calls (#22) * refactored async/await for import helper to not also use then/catch * added enum * refactor webhookHelper and tests to not use then/catch * changed docstring * refactoring bot and tests to not use then/catch * refactoring commands.js and tests to not use then/catch * refactoring memberHelper.js and tests to not use then/catch * removing then/catch from messageHelper.test.js * fixed set up for commands tests * edited bot to have top level main function * one more test in commands.js, and removed console.error * fixed typo in webhookHelper * forgot to switch over some tests in bot.test and commands.test * removed console.log from import helper * put console.error in commands * converted utils.js to not use then/catch * tested utils checkImageFormatValidity * removed jest-fetch-mock since it turns out I was just manually mocking it anyway * refactored database to not use then/catch * added dash to commands.js and test to pass * added the remaining webhook tests * changed utils to check for 10MB size not 1MB * removed unnecessary try/catch from utils * Simplify getWebhook to use .find() instead of foreach logic * make memberCommand exit when error occurs with parseMemberCommand * changed commands.js to not have user interaction within the catch * updated console.error message in database.js * made importHelper mock throw error instead of "resolve" error * replaced "pk;" with "pf;" in test * Got rid of unnecessary check for empty message from user (Fluxer doesn't allow this to happen) Removed export of token * getAllMembersInfo checks for fields.length * added default case to memberCommandHandler to throw error if command is not recognized * reversed check for valid proxy (was returning valid if the proxy existed and invalid if it didn't) * pushes e.message instead of full error object to errors array in importHelper * adjusted tests to properly use mockRejectedValue for async rejections * changed getAllMembersInfo map to say `index` not `name` as it actually gets the index of a member and then the member object * adjusted importHelper to properly test throwing of aggregate error * revamped setting of expiration warning (moved to utils and changed logic, wrote tests) --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-25 19:30:39 -05:00
['3', '--hello', attachmentUrl, {}],
])('ID %s with string %s returns correct proxy', async (specificAuthorId, content, attachmentUrl, expected) => {
feat: add tests and other such features (#3) * converted import syntax to ES modules removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * converted import syntax to commonJS removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * more correct dockerfile and compose.yaml * Revert "converted import syntax to commonJS" This reverts commit 5ab0d62b * updated jest to sort of work with es6 * separating out enum return from method return * mostly working except for the weirdest error * nevermind it wasn't actually working, gonna move on for now * added babel to convert es modules to cjs * finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach()) * setup fixed more * added error handling parseMemberCommand test * renamed db to database more tests and fixing logic for memberhelper * upgraded fluxer.js * moved import to helpers folder * moved import to helpers folder * more tests for member helper * think i fixed weird error with webhook sending error when a user has no members * simplified sendMessageAsAttachment * added return to addFullMember so that addNewMember can reference it properly in strings * test setup for messagehelper and webhookhelper * readded line i shouldn't have removed in sendMessageAsMember * fixed test and logic * added test for memberHelper * updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly * added tests for parseProxyTags and updated logic * added "return" so tests dont terminate on failure and deleted env.jest * finished tests for messageHelper! * more cases for messageHelper just in case * updating docstring for messageHelper parseProxyTags * more tests for webhookhelper * deleted extra file added during merge * removed confusing brackets from enum docs * finally mocking correctly * adding more cases to messageHelper tests * updating enums * removed error response when proxy is sent without content * , updated tests for webhookHelper and removed error response when proxy is sent without content * added debounce to count guilds properly * added todo note * added tests for updateDisplayName * edited help message trigger for updatePropic * update message helper test to include space case * update bot to suppress errors from API * fixed bug for import not sending help text, added help text if you type a unrecognized command * updated to be enum * updated member helper and tests * edit enums, tweak import content command * removed unnecessary await and console.log * made it easier to make a member * added nicer error listing to importHelper * updated documentation * Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-19 21:45:10 -05:00
// Act
refactor: Removing then/catch from async/await calls (#22) * refactored async/await for import helper to not also use then/catch * added enum * refactor webhookHelper and tests to not use then/catch * changed docstring * refactoring bot and tests to not use then/catch * refactoring commands.js and tests to not use then/catch * refactoring memberHelper.js and tests to not use then/catch * removing then/catch from messageHelper.test.js * fixed set up for commands tests * edited bot to have top level main function * one more test in commands.js, and removed console.error * fixed typo in webhookHelper * forgot to switch over some tests in bot.test and commands.test * removed console.log from import helper * put console.error in commands * converted utils.js to not use then/catch * tested utils checkImageFormatValidity * removed jest-fetch-mock since it turns out I was just manually mocking it anyway * refactored database to not use then/catch * added dash to commands.js and test to pass * added the remaining webhook tests * changed utils to check for 10MB size not 1MB * removed unnecessary try/catch from utils * Simplify getWebhook to use .find() instead of foreach logic * make memberCommand exit when error occurs with parseMemberCommand * changed commands.js to not have user interaction within the catch * updated console.error message in database.js * made importHelper mock throw error instead of "resolve" error * replaced "pk;" with "pf;" in test * Got rid of unnecessary check for empty message from user (Fluxer doesn't allow this to happen) Removed export of token * getAllMembersInfo checks for fields.length * added default case to memberCommandHandler to throw error if command is not recognized * reversed check for valid proxy (was returning valid if the proxy existed and invalid if it didn't) * pushes e.message instead of full error object to errors array in importHelper * adjusted tests to properly use mockRejectedValue for async rejections * changed getAllMembersInfo map to say `index` not `name` as it actually gets the index of a member and then the member object * adjusted importHelper to properly test throwing of aggregate error * revamped setting of expiration warning (moved to utils and changed logic, wrote tests) --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-25 19:30:39 -05:00
const res = await messageHelper.parseProxyTags(specificAuthorId, content, attachmentUrl);
// Assert
expect(res).toEqual(expected);
feat: add tests and other such features (#3) * converted import syntax to ES modules removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * converted import syntax to commonJS removed unused methods * got test sort of working (jest set up is not crashing but also not mocking correctly) * adjusted beforeeach/beforeall so more pass * more correct test setup * more correct dockerfile and compose.yaml * Revert "converted import syntax to commonJS" This reverts commit 5ab0d62b * updated jest to sort of work with es6 * separating out enum return from method return * mostly working except for the weirdest error * nevermind it wasn't actually working, gonna move on for now * added babel to convert es modules to cjs * finally figured out issue with tests (referencing the method directly in the test.each calls the real method not the mock in beforeEach()) * setup fixed more * added error handling parseMemberCommand test * renamed db to database more tests and fixing logic for memberhelper * upgraded fluxer.js * moved import to helpers folder * moved import to helpers folder * more tests for member helper * think i fixed weird error with webhook sending error when a user has no members * simplified sendMessageAsAttachment * added return to addFullMember so that addNewMember can reference it properly in strings * test setup for messagehelper and webhookhelper * readded line i shouldn't have removed in sendMessageAsMember * fixed test and logic * added test for memberHelper * updated sendMessageAsAttachment to returnBufferFromText and updated commands/webhookHelper accordingly * added tests for parseProxyTags and updated logic * added "return" so tests dont terminate on failure and deleted env.jest * finished tests for messageHelper! * more cases for messageHelper just in case * updating docstring for messageHelper parseProxyTags * more tests for webhookhelper * deleted extra file added during merge * removed confusing brackets from enum docs * finally mocking correctly * adding more cases to messageHelper tests * updating enums * removed error response when proxy is sent without content * , updated tests for webhookHelper and removed error response when proxy is sent without content * added debounce to count guilds properly * added todo note * added tests for updateDisplayName * edited help message trigger for updatePropic * update message helper test to include space case * update bot to suppress errors from API * fixed bug for import not sending help text, added help text if you type a unrecognized command * updated to be enum * updated member helper and tests * edit enums, tweak import content command * removed unnecessary await and console.log * made it easier to make a member * added nicer error listing to importHelper * updated documentation * Merge branch 'main' of https://github.com/pieartsy/PluralFlux into add-tests --------- Co-authored-by: Aster Fialla <asterfialla@gmail.com>
2026-02-19 21:45:10 -05:00
});
})
describe('returnBufferFromText', () => {
const charas2000 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
test('returns truncated text and buffer file when text is more than 2000 characters', () => {
// Arrange
const charasOver2000 = "bbbbb"
const expectedBuffer = Buffer.from(charasOver2000, 'utf-8');
const expected = {text: charas2000, file: expectedBuffer};
// Act
const result = messageHelper.returnBufferFromText(`${charas2000}${charasOver2000}`);
// Assert
expect(result).toEqual(expected);
})
test('returns text when text is 2000 characters or less', () => {
// Arrange
const expected = {text: charas2000, file: undefined};
// Act
const result = messageHelper.returnBufferFromText(`${charas2000}`);
// Assert
expect(result).toEqual(expected);
})
})
afterEach(() => {
// restore the spy created with spyOn
jest.restoreAllMocks();
});
})