A simple library for testing Discord Bots

A simple library for testing Discord Bots

Corde is a small testing library for Discord.js. As there is a tool to create bots for Discord, it's cool to also have a tool to test then. Corde objective is to be simple, fast and readable to delevopers, such as many others unity test tool around the web.

About

Corde is a small testing library for Discord.js. As there is a tool to create bots for Discord, it's cool to also have a tool to test then. Corde objective is to be simple, fast and readable to delevopers, such as many others unity test tool around the web.

Getting started

Node.js 12.0.0 or newer is required

Starting create tests with Corde is realy simple. First install it locally with npm npm i -D corde or yarn yarn add -D corde. You can also install it globally: npm i -g corde or yarn global add corde.

After installed, add the file corde.json in root of your application with the follow structure:

{
    "cordeTestToken":  "YOUR_TESTING_BOT_TOKEN_HERE",
    "botTestId":  "YOUR_TESTING_BOT_ID_HERE",
    "botTestToken":  "YOUR_BOT_TOKEN_HERE",
    "guildId":  "THE_GUID_OF_BOT_HERE",
    "channelId":  "CHANNELS_ID_HERE",
    "botPrefix":  "+",
    "testFiles":  ["./test"]
}

Check the Config section for a more detailed explanation of each configuration propertie.

Now that the config file is created, let's create some tests. You can keep the unity test natural file name structure, creating a bot.test.js with the follow structure:

const { group, test, command, beforeStart, afterAll } = require("corde");
const { client, loginBot } = require("..");

beforeStart(() => {
  loginBot();
});

group("main commands", () => {
  test("ping command must return... Ping?!!", () => {
    expect("ping").toReturn("Ping?");
  });
});

afterAll(() => {
  client.destroy();
});

What is happenning ?

  1. beforeStart is a fuction that is used to run something before the execution of tests. Put there the instruction that makes the bot login i.e. You can also start the bot and then run all tests, with that, there is no need of use beforeStart function.
  2. group Is a collections of tests that referes to some sort of tests.
  3. test Is the container of a test. it's describe what will be tested, and what is the expectation.
  4. command is the core of Corde, that is what really with validade if a command is or not executing what it should. The simpliest action that a bot can do is send a plain message, with that, command has a collections of options of expectations of response of the bot, in this case, is tested that a command ping should return pong. 5)afterAll is a fuction that is used to run something after the execution of tests. Put there the instructions that make the logoff of the bot, i.e.

Configurations

Option Description
cordeTestToken Bot's token that will send commands to the test bot.
botTestId Bot's id that is being tested.
botTestToken Bot's token of your tested bot.
botTestId Bot's id that is testing.
guildId Guild that your and the test bot are.
channelId Channel that your and the test bot are.
botPrefix Bot invoke command prefix
testFiles Path were all tests files are

Download Details:

Author: lucasgmagalhaes

Source Code: https://github.com/lucasgmagalhaes/corde

nodejs node javascript

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Node canvas is a Cairo backed Canvas implementation for NodeJS.

node-canvas is a Cairo-backed Canvas implementation for Node.js.

What Is Nodejs Used For? | Nodejs Use Cases

A decade has passed since initial release of the node.js, it has gained immense popularity. Read in this article, what is nodejs used for? Nodejs Use Cases.

How to Hire Node.js Developers And How Much Does It Cost?

A Guide to Hire Node.js Developers who can help you create fast and efficient web applications. Also, know how much does it cost to hire Node.js Developers.

Hire NodeJs Developer

Looking to build dynamic, extensively featured, and full-fledged web applications? **[Hire NodeJs Developer](https://hourlydeveloper.io/hire-dedicated-node-js-developer/ "Hire NodeJs Developer")** to create a real-time, faster, and scalable...

Decoding Nodejs

The main goal of this blog is to explain the “Architecture of Nodejs” and to know how the Nodejs works behind the scenes. Generally, most of the server-side languages, like PHP, ASP.NET, Ruby, and including Nodejs follows multi-threaded architecture. That means for each client-side request initiates a new thread or even a new process.