Agent-skills karma-skill
install
source · Clone the upstream repo
git clone https://github.com/LambdaTest/agent-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/LambdaTest/agent-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/karma-skill" ~/.claude/skills/lambdatest-agent-skills-karma-skill && rm -rf "$T"
manifest:
karma-skill/SKILL.mdsource content
Karma Testing Skill
Core Patterns
karma.conf.js
module.exports = function(config) { config.set({ basePath: '', frameworks: ['jasmine'], files: [ 'src/**/*.js', 'test/**/*.spec.js' ], preprocessors: { 'src/**/*.js': ['coverage'] }, reporters: ['progress', 'coverage'], coverageReporter: { type: 'html', dir: 'coverage/' }, port: 9876, colors: true, logLevel: config.LOG_INFO, autoWatch: true, browsers: ['Chrome', 'Firefox'], singleRun: false, concurrency: Infinity, // LambdaTest cloud browsers customLaunchers: { ChromeLT: { base: 'WebDriver', config: { hostname: 'hub.lambdatest.com', port: 80 }, browserName: 'Chrome', version: 'latest', name: 'Karma Test', tunnel: true, user: process.env.LT_USERNAME, accessKey: process.env.LT_ACCESS_KEY } } }); };
Test with Jasmine Framework
describe('StringUtils', () => { it('should capitalize first letter', () => { expect(StringUtils.capitalize('hello')).toBe('Hello'); }); it('should handle empty string', () => { expect(StringUtils.capitalize('')).toBe(''); }); });
Angular Integration
// karma.conf.js for Angular frameworks: ['jasmine', '@angular-devkit/build-angular'], plugins: [ require('karma-jasmine'), require('karma-chrome-launcher'), require('karma-coverage'), require('@angular-devkit/build-angular/plugins/karma') ],
Setup: npm install karma karma-jasmine karma-chrome-launcher karma-coverage --save-dev
npm install karma karma-jasmine karma-chrome-launcher karma-coverage --save-devRun: npx karma start
or npx karma start --single-run
npx karma startnpx karma start --single-runInit: npx karma init karma.conf.js
npx karma init karma.conf.jsDeep Patterns
See
reference/playbook.md for production-grade patterns:
| Section | What You Get |
|---|---|
| §1 Production Configuration | Full karma.conf.js with coverage thresholds, reporters, CI launchers |
| §2 Component Testing | Service mocking, DOM interaction, form validation patterns |
| §3 HTTP Service Testing | HttpTestingController, error handling, retry testing |
| §4 Directive & Pipe Testing | Host component pattern, custom pipes with edge cases |
| §5 RxJS & Async Patterns | debounceTime, switchMap cancellation, subscription cleanup |
| §6 Router & NgRx Testing | RouterTestingModule, MockStore, selector overrides |
| §7 LambdaTest Integration | Cloud browser configuration for cross-browser testing |
| §8 CI/CD Integration | GitHub Actions with coverage, test reporting |
| §9 Debugging Table | 12 common problems with causes and fixes |
| §10 Best Practices | 14-item checklist for production Angular testing |