skillZs
★ LIVE SKILL TAGS ★
>>> LIVE SKILLS INDEX <<<
* OPEN SOURCE *
NO LOGIN, NO TRACKING
※ REAL INSTALL DATA ※
← back to all skills
lambdatest/agent-skills214 installs

mocha-skill

Generates Mocha tests in JavaScript with Chai assertions and Sinon mocking. Use when user mentions "Mocha", "Chai", "sinon", "describe/it (not Jest)". Triggers on: "Mocha", "Chai", "sinon", "mocha test".

How do I install this agent skill?

npx skills add https://github.com/lambdatest/agent-skills --skill mocha-skill
view source ↗

Is this agent skill safe to install?

  • Gen Agent Trust Hubpass

    This skill provides a comprehensive set of templates, best practices, and configuration examples for JavaScript and TypeScript unit testing. It covers standard testing libraries including Mocha, Chai, and Sinon, with focused guidance on asynchronous testing and CI/CD integration.

  • Socketpass

    No alerts

  • Snykpass

    Risk: LOW · No issues

  • Runlayerwarn

    1/3 files flagged

  • ZeroLeakspass

    Score: 93/100 · 2 sections analyzed

What does this agent skill do?

Mocha Testing Skill

Core Patterns

Basic Test with Chai

const { expect } = require('chai');

describe('Calculator', () => {
  let calc;
  beforeEach(() => { calc = new Calculator(); });

  it('should add two numbers', () => {
    expect(calc.add(2, 3)).to.equal(5);
  });

  it('should throw on divide by zero', () => {
    expect(() => calc.divide(10, 0)).to.throw('Division by zero');
  });
});

Chai Assertions

expect(value).to.equal(5);
expect(arr).to.have.lengthOf(3);
expect(obj).to.have.property('name');
expect(str).to.include('hello');
expect(fn).to.throw(Error);
expect(arr).to.deep.equal([1, 2, 3]);
expect(obj).to.deep.include({ name: 'Alice' });

Sinon Mocking

const sinon = require('sinon');

describe('UserService', () => {
  let sandbox;
  beforeEach(() => { sandbox = sinon.createSandbox(); });
  afterEach(() => { sandbox.restore(); });

  it('fetches user from API', async () => {
    const stub = sandbox.stub(api, 'get').resolves({ name: 'Alice' });
    const user = await userService.getUser(1);
    expect(user.name).to.equal('Alice');
    expect(stub.calledOnce).to.be.true;
  });
});

Async Testing

it('should fetch data', async () => {
  const data = await fetchData();
  expect(data).to.have.property('id');
});

it('callback style', (done) => {
  fetchData((err, data) => {
    expect(err).to.be.null;
    done();
  });
});

Anti-Patterns

BadGoodWhy
Missing done()Use async/awaitHanging tests
No sandboxsinon.createSandbox()Stubs leak
Arrow in describeRegular function for this.timeout()Context

Quick Reference

TaskCommand
Run allnpx mocha
Watchnpx mocha --watch
Grepnpx mocha --grep "login"
Timeoutnpx mocha --timeout 10000
Recursivenpx mocha --recursive

Setup: npm install mocha chai sinon --save-dev

Deep Patterns → reference/playbook.md

§SectionLines
1Production Configurationmocharc, NYC coverage, TypeScript
2Testing with Chai + SinonStubs, spies, assertions
3Advanced Sinon PatternsFake timers, nock HTTP, sequential
4Async PatternsPromise, await, callback, events
5Hooks & Test OrganizationLifecycle, nesting, grep tags
6Custom Reporters & PluginsReporter class, root hooks
7Express/API TestingSupertest integration
8CI/CD IntegrationGitHub Actions, services
9Debugging Quick-Reference10 common problems
10Best Practices Checklist13 items

Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.

<a href="https://skillzs.dev/skills/lambdatest/agent-skills/mocha-skill">View mocha-skill on skillZs</a>