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".
DeepseekModel
Curated skill
Quality Excellent · 78
v1.0.0
Get
https://deepseekmodel.com/api/download.php?id=lambdatest-agent-skills-mocha-skill-skill-md&format=skill
Download .skill
Standard format with system_prompt and model_config, ready for any agent framework
The actual content of the system_prompt field in the .skill file.
name mocha-skill description 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". languages ["JavaScript","TypeScript"] category unit-testing license MIT metadata {"author":"TestMu AI","version":"1.0"} 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 Bad Good Why Missing done() Use async/await Hanging tests No sandbox sinon.createSandbox() Stubs leak Arrow in describe Regular function for this.timeout() Context Quick Reference Task Command Run all npx mocha Watch npx mocha --watch Grep npx mocha --grep "login" Timeout npx mocha --timeout 10000 Recursive npx mocha --recursive Setup: npm install mocha chai sinon --save-dev Deep Patterns → reference/playbook.md § Section Lines 1 Production Configuration mocharc, NYC coverage, TypeScript 2 Testing with Chai + Sinon Stubs, spies, assertions 3 Advanced Sinon Patterns Fake timers, nock HTTP, sequential 4 Async Patterns Promise, await, callback, events 5 Hooks & Test Organization Lifecycle, nesting, grep tags 6 Custom Reporters & Plugins Reporter class, root hooks 7 Express/API Testing Supertest integration 8 CI/CD Integration GitHub Actions, services 9 Debugging Quick-Reference 10 common problems 10 Best Practices Checklist 13 items
Keywords that activate this skill. Click one to copy it.
This skill does not provide trigger words.
The downloaded .skill package contains the following fields.
| Field | Description |
|---|---|
| format | Format tag (skill/v1) |
| skill_id | Unique skill ID |
| name | Skill name |
| version | Version |
| description | Description |
| category | Categories (array) |
| trigger_words | Trigger words |
| tags | Tags |
| source | Source |
| source_url | Source URL (this page) |
| exported_at | Exported at (set per download) |
| system_prompt | System prompt body |
| model_config | Model config: provider / model / temperature / max_tokens / top_p |
| examples | Examples |
| install_guide | Import guide for Coze / Dify / Claude / custom frameworks |
The same skill can be exported in different platform formats.