/codi

Primary LanguageJavaScriptMIT LicenseMIT

Codi Test Framework ๐Ÿถ

License example workflow

Codi is a lightweight JavaScript test framework that allows you to write and run tests for your JavaScript code. It provides a simple and intuitive API for defining test suites and test cases, making it easy to ensure the correctness of your code. โœจ

Features โœ…

  • ๐Ÿ“ Simple and expressive API for writing tests
  • ๐Ÿ—๏ธ Supports test suites and test cases
  • ๐Ÿ” Provides assertion functions for comparing expected and actual values
  • ๐ŸŒˆ Colorful output for better readability
  • ๐Ÿ–ฅ๏ธ Supports running tests from the command line
  • ๐ŸŒ Compatible with ECMAScript modules (ESM)
  • โšก Super fast thanks to bun.sh

Installation ๐Ÿ“ฆ

To use Codi in your project, you need to have Node.js installed. You can install Codi as a development dependency using npm:

npm install --save-dev codi-test-framework

For user using codi v0.0.14^ ensure that you have bun v1.1.0 installed.

Usage ๐Ÿ› ๏ธ

Writing Tests โœ๏ธ

To write tests using Codi, create a new test file with a .mjs extension. Use the describe function to define a test suite and the it function to define individual test cases.

Here's an example test file:

import { describe, it, assertEqual } from 'codi-test-framework';

describe('Math operations', () => {
  it('should add two numbers correctly', () => {
    const result = 2 + 3;
    assertEqual(result, 5, 'Addition should work correctly');
  });

  it('should subtract two numbers correctly', () => {
    const result = 5 - 3;
    assertEqual(result, 2, 'Subtraction should work correctly');
  });
});

Assertion Functions ๐Ÿงช

Codi provides several assertion functions to compare expected and actual values:

  • assertEqual(actual, expected, message): Asserts that the actual value is equal to the expected value. โš–๏ธ
  • assertNotEqual(actual, expected, message): Asserts that the actual value is not equal to the expected value. ๐Ÿ™…โ€โ™‚๏ธ
  • assertTrue(actual, message): Asserts that the actual value is true. โœ…
  • assertFalse(actual, message): Asserts that the actual value is false. โŒ
  • assertThrows(callback, errorMessage, message): Asserts that the provided callback function throws an error with the specified error message. ๐Ÿ’ฅ

Running Tests ๐Ÿƒโ€โ™‚๏ธ

To run the tests, use the runTests function and provide the directory containing your test files:

import { runTests } from 'codi-test-framework';

runTests('./tests');

You can also run the tests from the command line using the runCLI function:

codi ./tests

License ๐Ÿ“„

This project is licensed under the MIT License.


Feel free to contribute to Codi by opening issues or submitting pull requests. Happy testing! ๐Ÿ˜„