915d3ce3a7
- Angular 19 avec routing, SCSS, PWA (Service Worker + manifest) - Couverture de tests ≥ 90% configurée dans karma.conf.js - Docker pour tests isolés (Dockerfile.test + docker-compose.test.yml) - Image de production multi-stage (Dockerfile + nginx.conf) - Hook pre-commit bloquant si tests échouent ou couverture < 90% - CI Gitea (.gitea/workflows/ci.yml) : tests + build/push image Docker - Versioning SemVer depuis 0.0.1 avec scripts npm version:* - Feature flags par environnement (src/environments/) - Documentation fonctionnelle (docs/functional/) et technique (docs/technical/) - CLAUDE.md avec toutes les règles de développement Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
48 lines
1.2 KiB
JavaScript
48 lines
1.2 KiB
JavaScript
module.exports = function (config) {
|
|
config.set({
|
|
basePath: '',
|
|
frameworks: ['jasmine', '@angular-devkit/build-angular'],
|
|
plugins: [
|
|
require('karma-jasmine'),
|
|
require('karma-chrome-launcher'),
|
|
require('karma-jasmine-html-reporter'),
|
|
require('karma-coverage'),
|
|
require('@angular-devkit/build-angular/plugins/karma'),
|
|
],
|
|
client: {
|
|
jasmine: {},
|
|
clearContext: false,
|
|
},
|
|
jasmineHtmlReporter: {
|
|
suppressAll: true,
|
|
},
|
|
coverageReporter: {
|
|
dir: require('path').join(__dirname, './coverage/olhar-pwa'),
|
|
subdir: '.',
|
|
reporters: [{ type: 'html' }, { type: 'text-summary' }, { type: 'lcov' }],
|
|
check: {
|
|
global: {
|
|
statements: 90,
|
|
branches: 90,
|
|
functions: 90,
|
|
lines: 90,
|
|
},
|
|
},
|
|
},
|
|
reporters: ['progress', 'kjhtml'],
|
|
browsers: ['ChromeHeadless'],
|
|
customLaunchers: {
|
|
ChromeHeadlessCI: {
|
|
base: 'ChromeHeadless',
|
|
flags: [
|
|
'--no-sandbox',
|
|
'--disable-gpu',
|
|
'--disable-dev-shm-usage',
|
|
'--disable-setuid-sandbox',
|
|
],
|
|
},
|
|
},
|
|
restartOnFileChange: true,
|
|
});
|
|
};
|