2.0.2-alpha.1 • Published 3 years ago

@averagehelper/corde v2.0.2-alpha.1

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

😀 Table of Content

👀 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.

Documentation

The bellow documentation is a resume of what you can find in Corde's site

🚀 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

OptionDescription
cordeTestTokenBot's token that will send commands to the test bot.
botTestIdBot's id that is being tested.
botTestTokenBot's token of your tested bot.
botTestIdBot's id that is testing.
guildIdGuild that your and the test bot are.
channelIdChannel that your and the test bot are.
botPrefixBot invoke command prefix
testFilesPath were all tests files are