diff --git a/src/util/DataResolver.js b/src/util/DataResolver.js index 36f83780827f..821e1798121e 100644 --- a/src/util/DataResolver.js +++ b/src/util/DataResolver.js @@ -5,7 +5,6 @@ const path = require('path'); const stream = require('stream'); const fetch = require('node-fetch'); const { Error: DiscordError, TypeError } = require('../errors'); -const GuildTemplate = require('../structures/GuildTemplate'); const Invite = require('../structures/Invite'); /** @@ -56,6 +55,7 @@ class DataResolver { * @returns {string} */ static resolveGuildTemplateCode(data) { + const GuildTemplate = require('../structures/GuildTemplate'); return this.resolveCode(data, GuildTemplate.GUILD_TEMPLATES_PATTERN); } diff --git a/test/escapeMarkdown.test.js b/test/escapeMarkdown.test.js index a8f7aede448d..4c7ca180fe21 100644 --- a/test/escapeMarkdown.test.js +++ b/test/escapeMarkdown.test.js @@ -1,6 +1,7 @@ 'use strict'; -/* eslint-disable max-len, no-undef */ +/* eslint-env jest */ +/* eslint-disable max-len */ const Util = require('../src/util/Util'); const testString = "`_Behold!_`\n||___~~***```js\n`use strict`;\nrequire('discord.js');```***~~___||"; diff --git a/test/resolveGuildTemplateCode.test.js b/test/resolveGuildTemplateCode.test.js new file mode 100644 index 000000000000..fb6221714df5 --- /dev/null +++ b/test/resolveGuildTemplateCode.test.js @@ -0,0 +1,11 @@ +'use strict'; + +/* eslint-env jest */ + +const { DataResolver } = require('../src'); + +describe('resolveGuildTemplateCode', () => { + test('basic', () => { + expect(DataResolver.resolveGuildTemplateCode('https://discord.new/abc')).toBe('abc'); + }); +}); diff --git a/test/templateCreateGuild.js b/test/templateCreateGuild.js new file mode 100644 index 000000000000..8e2576a8ef70 --- /dev/null +++ b/test/templateCreateGuild.js @@ -0,0 +1,27 @@ +'use strict'; + +const { token } = require('./auth'); +const { Client } = require('../src'); + +const client = new Client({ intents: ['GUILDS', 'GUILD_MESSAGES'] }); +client + .on('ready', () => console.log('ready')) + .on('message', async message => { + try { + const templates = await message.guild.fetchTemplates(); + if (!templates.size) { + console.log('no templates'); + } else { + const guild = await templates.first().createGuild('guild name'); + console.log(`created guild with ID ${guild.id}`); + await guild.delete(); + console.log('deleted guild'); + } + } catch (error) { + console.error(error); + } finally { + client.destroy(); + } + }) + .login(token) + .catch(console.error);