- Add GitHub Actions CI workflow with lint, type-check, test, build, and e2e jobs - Configure Jest for unit and integration tests with coverage reporting - Create unit tests for BaseAgent, PlantLineageAgent, and AgentOrchestrator - Add blockchain PlantChain unit tests - Create API integration tests for plants endpoints - Configure Cypress for E2E testing with support files and custom commands - Add E2E tests for home, plant registration, transparency, and vertical farm pages - Set up Prettier for code formatting with configuration - Configure Husky pre-commit hooks with lint-staged - Add commitlint for conventional commit message enforcement - Update package.json with new scripts and dev dependencies This implements Agent 5 (Testing & CI/CD) from the deployment plan.
40 lines
895 B
JavaScript
40 lines
895 B
JavaScript
/** @type {import('jest').Config} */
|
|
const config = {
|
|
preset: 'ts-jest',
|
|
testEnvironment: 'node',
|
|
roots: ['<rootDir>/__tests__'],
|
|
testMatch: ['**/*.test.ts'],
|
|
moduleNameMapper: {
|
|
'^@/(.*)$': '<rootDir>/$1',
|
|
},
|
|
transform: {
|
|
'^.+\\.tsx?$': [
|
|
'ts-jest',
|
|
{
|
|
tsconfig: 'tsconfig.json',
|
|
},
|
|
],
|
|
},
|
|
collectCoverageFrom: [
|
|
'lib/**/*.ts',
|
|
'!lib/**/*.d.ts',
|
|
'!lib/**/types.ts',
|
|
],
|
|
coverageDirectory: 'coverage',
|
|
coverageReporters: ['text', 'lcov', 'html', 'json-summary'],
|
|
coverageThreshold: {
|
|
global: {
|
|
branches: 80,
|
|
functions: 80,
|
|
lines: 80,
|
|
statements: 80,
|
|
},
|
|
},
|
|
setupFilesAfterEnv: ['<rootDir>/__tests__/setup.ts'],
|
|
testPathIgnorePatterns: ['/node_modules/', '/.next/', '/cypress/'],
|
|
verbose: true,
|
|
// Increase timeout for async tests
|
|
testTimeout: 10000,
|
|
};
|
|
|
|
module.exports = config;
|