mirror of
https://github.com/discordjs/discord.js.git
synced 2026-03-18 20:43:30 +01:00
fix(builders): add proper snowflake validation (#11290)
* fix(builders): add proper snowflake validation close #11289 * fix(builders): use snowflake validation for attachment id * test(builders): add validation tests for snowflake attachment IDs * fix: better regex Co-authored-by: Almeida <github@almeidx.dev> * test(builders): fix snowflake validation in fileBody test * Update packages/builders/src/Assertions.ts Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> * fix: update regex --------- Co-authored-by: Jiralite <33201955+Jiralite@users.noreply.github.com> Co-authored-by: Almeida <github@almeidx.dev> Co-authored-by: Vlad Frangu <me@vladfrangu.dev> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
This commit is contained in:
@@ -6,7 +6,7 @@ import { AttachmentBuilder, MessageBuilder } from '../../src/index.js';
|
||||
test('AttachmentBuilder stores and exposes file data', () => {
|
||||
const data = Buffer.from('hello world');
|
||||
const attachment = new AttachmentBuilder()
|
||||
.setId('0')
|
||||
.setId(1)
|
||||
.setFilename('greeting.txt')
|
||||
.setFileData(data)
|
||||
.setFileContentType('text/plain');
|
||||
@@ -14,7 +14,7 @@ test('AttachmentBuilder stores and exposes file data', () => {
|
||||
expect(attachment.getRawFile()).toStrictEqual({
|
||||
contentType: 'text/plain',
|
||||
data,
|
||||
key: 'files[0]',
|
||||
key: 'files[1]',
|
||||
name: 'greeting.txt',
|
||||
});
|
||||
|
||||
@@ -27,7 +27,7 @@ test('AttachmentBuilder stores and exposes file data', () => {
|
||||
test('MessageBuilder.toFileBody returns JSON body and files', () => {
|
||||
const msg = new MessageBuilder().setContent('here is a file').addAttachments(
|
||||
new AttachmentBuilder()
|
||||
.setId('0')
|
||||
.setId(0)
|
||||
.setFilename('file.bin')
|
||||
.setFileData(Buffer.from([1, 2, 3]))
|
||||
.setFileContentType('application/octet-stream'),
|
||||
@@ -47,7 +47,9 @@ test('MessageBuilder.toFileBody returns JSON body and files', () => {
|
||||
});
|
||||
|
||||
test('MessageBuilder.toFileBody returns empty files when attachments reference existing uploads', () => {
|
||||
const msg = new MessageBuilder().addAttachments(new AttachmentBuilder().setId('123').setFilename('existing.png'));
|
||||
const msg = new MessageBuilder().addAttachments(
|
||||
new AttachmentBuilder().setId('1234567890123456789').setFilename('existing.png'),
|
||||
);
|
||||
|
||||
const { body, files } = msg.toFileBody();
|
||||
expect(body).toEqual(msg.toJSON());
|
||||
|
||||
@@ -64,7 +64,7 @@ describe('Message', () => {
|
||||
row.addPrimaryButtonComponents((button) => button.setCustomId('abc').setLabel('def')),
|
||||
)
|
||||
.setStickerIds('123', '456')
|
||||
.addAttachments((attachment) => attachment.setId('hi!').setFilename('abc'))
|
||||
.addAttachments((attachment) => attachment.setId(0).setFilename('abc'))
|
||||
.setFlags(MessageFlags.Ephemeral)
|
||||
.setEnforceNonce(false)
|
||||
.updatePoll((poll) => poll.addAnswers({ poll_media: { text: 'foo' } }).setQuestion({ text: 'foo' }));
|
||||
@@ -83,7 +83,7 @@ describe('Message', () => {
|
||||
},
|
||||
],
|
||||
sticker_ids: ['123', '456'],
|
||||
attachments: [{ id: 'hi!', filename: 'abc' }],
|
||||
attachments: [{ id: 0, filename: 'abc' }],
|
||||
flags: 64,
|
||||
enforce_nonce: false,
|
||||
poll: {
|
||||
|
||||
Reference in New Issue
Block a user