🚀 Unit testing made simple and fun: flat colors and emoji in your tests.
JavaScript
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
example
lib
test
.gitignore
CONTRIBUTING.md
DOCUMENTATION.md
LICENSE
README.md
package.json

README.md

tester

Patreon PayPal AMA Version Downloads Get help on Codementor

Unit testing made simple and fun: flat colors and emoji in your tests.

⭐️ Features

  • It does not create any globals.
  • Writing messages in custom streams (by default in process.stdout).
  • Easy interface for handling sync and async stuff.
  • Emoji & Flat colors 🎨
  • Just run the test file using node

Tip 💡

Use the tester-init to init the test file.

tester

☁️ Installation

$ npm i --save-dev tester

After installing the package, you just need to set up a test file where you require the tester package. Your package.json will look like this:

{
  "name": "tester",
  ...
  "scripts": {
    "test": "node test/your-test-file.js"
  },
  ...
  "devDependencies": {
    "tester": "^1.0.0"
  }
}

test/your-test-file.js will contain your tests, like documented below.

📋 Example

const tester = require("tester");

// Use describe to group the tests
tester.describe("Running some example tests", example => {

    // Without a callback (the code will be executed syncronously)
    example.should("be able to make simple checks using expect", () => {
        example.expect(true).toBe(true);
    });

    // Async function which will fail
    example.should("support async functions", (cb) => {
        setTimeout(function() {
            example.expect(true).toBe(false);
            cb();
        }, 100);
    });

    // Wait a second and pass
    example.it("wait a second", (cb) => {
        setTimeout(function() {
            example.expect(true).toBe(true);
            cb();
        }, 1000);
    });
});

tester.describe("Running another set of tests", another => {
    another.it("some test", () => {
        another.expect(true).toBe(true);
    });
});

📝 Documentation

Describe(message, fn)

Creates a new Describe instance.

To change the default configuration, you can override the tester fields:

let tester = require("tester");

Colors

tester uses color-it to color the messages. You can use any available color name (defaults are listed):

  • colors (Object):
    • it (Object)
      • success: "green"
      • error: "red"
    • describe: "yellow"

For example, to have blue describe messages, you will do: tester.colors.describe = "blue".

Icons

tester uses emoji provided by emojic:

  • icons
    • it
      • success: "zap"
      • error: "x"
    • describe: "arrowRight"

Indent

tester uses indento to indent the strings:

  • indent
    • it: 5
    • describe: 2

Loggers

You can override any of the following fields

  • loggers
    • stream: The stream where the messages will be written (default: process.stdout).
    • it (err, itMessage, icon)
    • describe (message)

Params

  • String message: The Describe message.
  • Function fn: The callback function.

run(fn)

Runs the tests from this group.

Params

  • Function fn: The callback function.

expect()

This is a wrapper around the expect package.

Return

  • Expect The Expect result.

it(what, fn)

Adds a new test in the describe queue.

Params

  • String what: The test message.
  • Function fn: The callback function.

should(what, fn)

Adds a new test in the describe queue prefixing the message with should.

Params

  • String what: The test message.
  • Function fn: The callback function.

describe(what, fn)

Groups more tests together.

Params

  • String what: The describe message.
  • Function fn: The callback function.

😋 How to contribute

Have an idea? Found a bug? See how to contribute.

💰 Donations

Another way to support the development of my open-source modules is to set up a recurring donation, via Patreon. 🚀

PayPal donations are appreciated too! Each dollar helps.

Thanks! ❤️

📜 License

MIT © Ionică Bizău