chai

SKILL.md

Chai

Chai is an assertion library. It pairs naturally with Mocha. It supports TDD (assert) and BDD (expect, should) styles.

When to Use

  • With Mocha: The default pair.
  • Expressive Tests: You want tests to read like English ("expect foo to be a string").

Quick Start

import { expect } from "chai";

const foo = "bar";
const beverages = { tea: ["chai", "matcha", "oolong"] };

expect(foo).to.be.a("string");
expect(foo).to.equal("bar");
expect(foo).to.have.lengthOf(3);
expect(beverages).to.have.property("tea").with.lengthOf(3);

Core Concepts

Styles

  • Assert: Classic. assert.equal(foo, 'bar').
  • Expect: BDD. Chainable. expect(foo).to.be.equal('bar').
  • Should: BDD. Extends Object prototype. foo.should.be.equal('bar'). (Less common now due to side effects).

Plugins

Chai has a rich ecosystem.

  • chai-http: For API testing.
  • chai-as-promised: For asserting promises (return expect(promise).to.eventually.equal(2)).

Best Practices (2025)

Do:

  • Stick to one style: Usually Expect. It's clean and doesn't modify prototypes.
  • Use Descriptive Chains: to.be.true reads better than to.equal(true).

Don't:

  • Don't mix Assert and Expect: Confuses the reader.

References

Weekly Installs
1
GitHub Stars
7
First Seen
Feb 10, 2026
Installed on
mcpjam1
claude-code1
replit1
junie1
windsurf1
zencoder1