Skip to content

test(idris2): port 5 Deno + 1 JS test files to Idris2 (estate port 8/11)#61

Merged
hyperpolymath merged 2 commits into
mainfrom
feat/port-ts-tests-to-idris2
May 20, 2026
Merged

test(idris2): port 5 Deno + 1 JS test files to Idris2 (estate port 8/11)#61
hyperpolymath merged 2 commits into
mainfrom
feat/port-ts-tests-to-idris2

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

  • Ports the full panic-free TS test surface (5 Deno + 1 JS files) to Idris2 0.8.0 under tests/idris2/, behind stapeln-tests.ipkg and the shared estate Test.Spec harness.
  • 107 / 107 tests pass; the TS sources are retained side-by-side for cross-check until all 11 estate repos are migrated.
  • Adds human + machine docs (tests/idris2/README.adoc, tests/README.md pointer, TEST-NEEDS.md, STATE.a2ml session-history entry).

Module → source map

Idris2 module Tests Ported from
ContainerTypesTest 26 tests/unit/container_types_test.ts
NickelConfigPropertiesTest 15 tests/property/nickel_config_properties_test.ts
SecurityAspectTest 16 tests/aspect/security_test.ts
LayerInvariantsTest 27 tests/property/layer_invariants_test.ts
ContainerLifecycleTest 7 tests/e2e/container_lifecycle_test.ts
StapelnTest 16 tests/stapeln.test.js
Total 107

Context

Estate test-rollout campaign, port 8 of 11. Companion repos already on Idris2: a2ml-showcase (#21), awesome-nickel (#19), format-registrations (#10), julia-professional-registry (#11), ubicity (#55 partial), gossamer.

Test plan

  • Local idris2 --build stapeln-tests.ipkg (Idris2 0.8.0) — clean build
  • ./build/exec/stapeln-tests=== Total: 107 passed, 0 failed ===
  • CI green
  • Re-run the Deno suite once for spot-check parity (out-of-band)

🤖 Generated with Claude Code

hyperpolymath and others added 2 commits May 20, 2026 13:57
Full sweep of the panic-free TS test suite:

- tests/unit/container_types_test.ts        -> ContainerTypesTest        (26/26)
- tests/property/nickel_config_properties_test.ts -> NickelConfigPropertiesTest (15/15)
- tests/aspect/security_test.ts             -> SecurityAspectTest        (16/16)
- tests/property/layer_invariants_test.ts   -> LayerInvariantsTest       (27/27)
- tests/e2e/container_lifecycle_test.ts     -> ContainerLifecycleTest    (7/7)
- tests/stapeln.test.js                     -> StapelnTest               (16/16)

Total: 107 / 107 PASS under Idris2 0.8.0.

Drives test runtime onto the same Test.Spec harness used across the
estate (gossamer / boj-server / a2ml-showcase / awesome-nickel /
format-registrations / julia-professional-registry / ubicity).
Removes the Deno+Node dependency from the test path.

Build:
  IDRIS2_PREFIX=... idris2 --build stapeln-tests.ipkg
  ./build/exec/stapeln-tests

Refs the estate test-rollout campaign (8 of 11 panic-free repos now
on Idris2; 3 unit-logic repos still need per-repo strategy review).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- tests/idris2/README.adoc — new: quickstart, module→source map,
  porting conventions, file index.
- tests/README.md — points readers at the canonical Idris2 suite first;
  keeps the legacy Deno/Node docs for cross-check until the estate
  migration completes.
- TEST-NEEDS.md — adds an "Idris2 (tests/idris2/)" section with the
  full 107-test counts per module.
- .machine_readable/6a2/STATE.a2ml — last-updated bumped to 2026-05-20;
  session-history entry recording the port.

Companion to 556065c. No code changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@sonarqubecloud
Copy link
Copy Markdown

@hyperpolymath hyperpolymath merged commit 911a8f9 into main May 20, 2026
19 of 20 checks passed
@hyperpolymath hyperpolymath deleted the feat/port-ts-tests-to-idris2 branch May 20, 2026 13:03
@github-actions
Copy link
Copy Markdown

🔍 Hypatia Security Scan

Findings: 238 issues detected

Severity Count
🔴 Critical 32
🟠 High 108
🟡 Medium 98

⚠️ Action Required: Critical security issues found!

View findings
[
  {
    "reason": "Issue in quality.yml",
    "type": "missing_workflow",
    "file": "quality.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "Issue in security-policy.yml",
    "type": "missing_workflow",
    "file": "security-policy.yml",
    "action": "create",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action denoland/setup-deno@v2 needs attention",
    "type": "unpinned_action",
    "file": "e2e.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action denoland/setup-deno@v2 needs attention",
    "type": "unpinned_action",
    "file": "e2e.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "medium"
  },
  {
    "reason": "Action hyperpolymath/standards/.github/workflows/governance-reusable.yml@main needs attention",
    "type": "unpinned_action",
    "file": "governance.yml",
    "action": "pin_sha",
    "rule_module": "workflow_audit",
    "severity": "high"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/stapeln/stapeln/container-stack/vordr/src/mcp-adapter/src/ipv6_bridge.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/stapeln/stapeln/container-stack/vordr/src/mcp-adapter/http-server.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/stapeln/stapeln/tests/unit/container_types_test.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/stapeln/stapeln/tests/aspect/security_test.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  },
  {
    "reason": "TypeScript file detected -- banned language",
    "type": "banned_language_file",
    "file": "/home/runner/work/stapeln/stapeln/tests/e2e/container_lifecycle_test.ts",
    "action": "flag",
    "rule_module": "cicd_rules",
    "severity": "critical"
  }
]

Powered by Hypatia Neurosymbolic CI/CD Intelligence

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant