Jest preset configuration for Angular projects
—
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Pending
The risk profile of this skill
Custom JSDOM environment optimized for Angular testing with proper global setup and Angular-specific configurations.
Custom Jest environment that extends the abstract JSDOM environment with Angular-specific optimizations and JSDOM integration.
/**
* Custom JSDOM environment for Angular testing
* Extends Jest's abstract JSDOM environment with Angular optimizations
*/
class JestJSDOMEnvironment extends BaseEnv {
/**
* Creates a new JestJSDOMEnvironment instance
* @param config - Jest environment configuration
* @param context - Environment context from Jest
*/
constructor(config: JestEnvironmentConfig, context: EnvironmentContext);
}
interface JestEnvironmentConfig {
projectConfig: Config.ProjectConfig;
globalConfig: Config.GlobalConfig;
}
interface EnvironmentContext {
console: Console;
docblockPragmas: Record<string, string | string[]>;
testPath: string;
}
interface BaseEnv {
constructor(config: JestEnvironmentConfig, context: EnvironmentContext, jsdom: any);
global: any;
moduleMocker: any;
fakeTimers: any;
setup(): Promise<void>;
teardown(): Promise<void>;
runScript(script: any): any;
}Usage Examples:
// jest.config.js - Using the custom environment
module.exports = {
testEnvironment: 'jest-preset-angular/environments/jest-jsdom-env',
// other configuration...
};
// Or in preset configuration
const { createCjsPreset } = require('jest-preset-angular/presets');
module.exports = createCjsPreset({
testEnvironment: 'jest-preset-angular/environments/jest-jsdom-env'
});JSDOM Integration:
Angular Optimizations:
Debugging Support:
The package provides environment type definitions for configuration:
type JSDOMEnvironment = 'jsdom' | 'jest-preset-angular/environments/jest-jsdom-env';Available Environments:
'jsdom': Standard Jest JSDOM environment'jest-preset-angular/environments/jest-jsdom-env': Custom Angular-optimized environmentThe environment is automatically configured when using preset functions:
// Default environment (jsdom)
const config = createCjsPreset();
// Custom Angular environment
const config = createCjsPreset({
testEnvironment: 'jest-preset-angular/environments/jest-jsdom-env'
});The environment provides proper context for Angular testing:
Global Objects:
window object with DOM APIsdocument object for DOM manipulationnavigator object for browser simulationAngular Integration:
this context for component testingThe environment simulates browser features needed for Angular:
DOM APIs:
Browser Features:
Performance:
The environment is compatible with:
Angular Versions:
Node.js Versions:
Jest Versions:
The environment automatically handles setup required for Angular testing without additional configuration:
// No manual setup required - environment handles:
// - JSDOM initialization
// - Angular testing utilities setup
// - Zone.js configuration
// - Error handling setup