fix: restore unskipped installer refactor validation

Follow up PR #3187 at 38b8c07f while preserving the original contribution history and all current-main helper bodies. Remove both CI safety-suite exclusions, clean stale imports and the warning glyph, retain shipped test/coverage entrypoints, and keep unknown test totals honest. The tree matches the fully tested 6246-pass/325-file tree; disposable Claude/OpenCode lifecycle passes.
This commit is contained in:
haelyra committed 2026-10-09 16:32:47 -04:00
1 parent 38b8c07f26
commit eed806bf4a
5 files changed
+9 -10

No files matched your search

-3
View File
@@ -97,7 +97,6 @@ jobs:
run: node tests/run-all.js
env:
CLAUDE_CODE_PACKAGE_MANAGER: ${{ matrix.pm }}
ECC_TEST_SKIP: 'ownership-guard,install-state-projection,install-state-selective-reinstall,codex-hooks,install-apply,hooks.test,observe-subdirectory-detection,claude-scope-migration,state-store,control-pane.test,setup.test'
# Upload test artifacts on failure
- name: Upload test artifacts
@@ -361,8 +360,6 @@ jobs:
- name: Run coverage
run: npm run coverage
env:
ECC_TEST_SKIP: 'ownership-guard,install-state-projection,install-state-selective-reinstall,codex-hooks,install-apply,hooks.test,observe-subdirectory-detection,claude-scope-migration,state-store,control-pane.test,setup.test'
- name: Upload coverage report
if: always()
+2 -2
View File
@@ -501,10 +501,10 @@
"test:validators": "node scripts/ci/check-unicode-safety.js && node scripts/ci/validate-agents.js && node scripts/ci/validate-commands.js && node scripts/ci/validate-rules.js && node scripts/ci/validate-skills.js && node scripts/ci/validate-hooks.js && node scripts/ci/check-hooks-schema-keys.js && node scripts/ci/validate-install-manifests.js && node scripts/ci/validate-context-profiles.js && node scripts/ci/validate-no-personal-paths.js && npm run catalog:check && npm run command-registry:check",
"test:js": "node tests/run-all.js",
"test:python": "python3 -m pytest tests/ -q",
"test": "npm run test:validators && npm run test:js",
"test": "node scripts/ci/check-unicode-safety.js && node scripts/ci/validate-agents.js && node scripts/ci/validate-commands.js && node scripts/ci/validate-rules.js && node scripts/ci/validate-skills.js && node scripts/ci/validate-hooks.js && node scripts/ci/check-hooks-schema-keys.js && node scripts/ci/validate-install-manifests.js && node scripts/ci/validate-context-profiles.js && node scripts/ci/validate-no-personal-paths.js && npm run catalog:check && npm run command-registry:check && node tests/run-all.js",
"coverage:js": "c8 --all --include=\"scripts/**/*.js\" --include=\"scripts/**/*.mjs\" --check-coverage --lines 80 --functions 80 --branches 79 --statements 80 --reporter=text --reporter=lcov node tests/run-all.js",
"coverage:python": "python3 -m pytest tests/ -q --cov=src --cov-report=term --cov-fail-under=80",
"coverage": "npm run coverage:js",
"coverage": "c8 --all --include=\"scripts/**/*.js\" --include=\"scripts/**/*.mjs\" --check-coverage --lines 80 --functions 80 --branches 79 --statements 80 --reporter=text --reporter=lcov node tests/run-all.js",
"build:opencode": "node scripts/build-opencode.js",
"prepack": "npm run build:opencode",
"dashboard": "python3 ./ecc_dashboard.py",
-2
View File
@@ -10,7 +10,6 @@ const { readInstallState, validateInstallState } = require('./install-state');
const { assertWithinTrustedRoot } = require('./path-safety');
const { createInstallPlanFromRequest } = require('./install/runtime');
const { assertNoNewUserOwnedFile, prepareUserOwnedFileGuard } = require('./install/ownership-guard');
const { writeFileNoFollow: guardedWriteFile } = require('./install/guarded-write');
const { withOpenCodeInstallLocks } = require('./install/opencode-install-lock');
const { isCodexUserConfig } = require('./install/codex-user-config');
const {
@@ -57,7 +56,6 @@ const {
readJsonNoFollow,
removeContainedPath,
writeContainedFile,
writeFileNoFollow,
} = require('./install/contained-fs');
const {
JSON_REMOVE_SENTINEL,
+6
View File
@@ -91,6 +91,12 @@ const tests = [
assert.match(result.annotations[0], /AssertionError: mismatch/);
assert.ok(!result.annotations[0].includes('PASS handles'));
}],
['successful files without counts do not invent test totals', () => {
const result = run({ status: 0, stdout: 'suite complete' });
assert.strictEqual(result.status, 0);
assert.ok(result.logs.some(line => /Passed:\s+0\s/.test(line)));
assert.ok(result.logs.some(line => /Files: 1 passed, 0 failed/.test(line)));
}],
['healthy suites preserve successful totals and emit no annotation', () => {
const result = run({ status: 0, stdout: 'Passed: 3, Failed: 0' });
assert.strictEqual(result.status, 0);
+1 -3
View File
@@ -104,7 +104,7 @@ console.log('╚' + '═'.repeat(BOX_W) + '╝');
console.log();
if (skipPatterns.length > 0) {
console.log(`⚠ Skipped patterns: ${skipPatterns.join(', ')}`);
console.log(`Skipped patterns: ${skipPatterns.join(', ')}`);
console.log();
}
@@ -174,8 +174,6 @@ for (const testFile of testFiles) {
if (counts.definite) {
totalPassed += counts.passed;
totalFailed += counts.failed;
} else {
totalPassed += 1;
}
}
}