Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Teagle test coverage matrix — reference explorer → helex-tx

Status of every test file of the reference terminology-explorer backend (98 files, 556 @Test methods) against the migration (plan PHASE 3, P3.6). Dispositions:

  • ported — scenario ported (modules/teagle/backend/src/test, 22 classes / 191 methods, all green). A port covers the surviving semantics; scenarios tied to dropped infrastructure (fhirest plumbing, NPM packages, shared caches) are folded out and noted.
  • flint — pure operation semantics; ported into the Flint (modules/tx-fhir) test suite on the in-memory store (see the Flint section at the bottom).
  • tx-ecosystem — behavior certified by the HL7 tx-ecosystem conformance suite that gates Flint (general mode 1194/1194); no in-repo port needed.
  • n/a — infrastructure that is not part of the Teagle architecture (fhirest conformance bootstrap, NPM/IG package registry, shared HTTP caches, background enrichment) or made moot by it (remote body materialization replaced by delegation-to-owner); justification per row.

util

Explorer test (methods)DispositionNotes
GlobMatcherTest (16)portedutil/GlobMatcherTest
EcosystemPatternMatchingTest (28)portedutil/GlobMatcherTest (pattern detection) + util/AuthoritativePatternTest (parser + matcher)
AuthoritativeUrlAndQueryParseTest (11)portedutil/AuthoritativePatternTest (query split, version pin, type-collection endpoint)
FhirResourceIdParserTest (10)ported (partial)Teagle’s minimal FhirResourceIdParser covered through RoutingCatalogTest.VersionSuffixedIds + MultiSourceExpandInstanceRoutingTest; the reference’s exotic id forms are out of scope
FhirVersionsTest (4)n/a (deferred)semver-wildcard version matching (1.x.x) — Teagle’s catalog resolves exact versions; revisit only if an ecosystem config needs wildcard `
AdministrativeGenderRepro_Test (5)flintengine/DisplayLanguagePrecedenceTest (display precedence repro)
SystemRequestContextTest (4)n/afhirest request-context plumbing

ecosystem

Explorer test (methods)DispositionNotes
EcosystemConfigTest (23)ported (partial)ecosystem/EcosystemConfigTest; Teagle adds server type (http/editable/local); npm/cache fields not modeled
EnvInterpolatorTest (7)portedecosystem/EnvInterpolatorTest
EcosystemControllerAuthoritativeTest (2)portedsemantics → registry/ServerRegistryRoutingTest; the REST view is /api/servers
EcosystemExclusionsIntegrationTest (16)ported (partial)exclusion-before-authoritative → ServerRegistryRoutingTest
EcosystemConfigFactoryAutoDeriveTest (4)n/a (architecture)strategy auto-derivation (INLINE/CACHED/LOCAL) — Teagle implements INLINE delegation only; CACHED (local expansion of remotely-fetched full CodeSystems) is a possible optimization slice
EcosystemConfigFactoryAuthValidationTest (9)portedecosystem/EcosystemServerAuthTest (missing-field/unsupported-method failures at load time)
EcosystemServerAuthDeserializationTest (4)portedecosystem/EcosystemServerAuthTest (password/oauth credential forms, markdown access_info)
UpstreamAuthServiceTest (6, in upstream/)portedupstream/UpstreamAuthServiceTest (Basic, oauth fetch+cache, scope form, invalidate/clearAll, TokenFetchException)
EcosystemReloadControllerTest (10) / EcosystemReloadServiceTest (9)ported (core)ecosystem/EcosystemReloadTest (+ POST /api/ecosystem/reload): swap, removed-server catalog cleanup, malformed-config keeps previous registry
EcosystemSelfHealServiceTest (5) / EcosystemSelfHealRecoveryTest (1)portedregistry/ServerHealthTest (consecutive-failure threshold, immediate recovery) + POST /api/servers/health-check
RemoteEcosystemLoaderAuthStrippingTest (2)portedecosystem/RemoteEcosystemLoaderTest (federation merge, remote auth material stripped, fetch failure drops only the placeholder)

routing / catalog

Explorer test (methods)DispositionNotes
ResourceRoutingCatalogTest (25)ported (partial)routing/RoutingCatalogTest: explicit/wildcard precedence, duplicates, removal; count/enrichment fields not modeled
ResourceRoutingCatalogFindByCanonicalUrlTest (3)portedRoutingCatalogTest.FindByCanonicalUrl
ResourceRoutingCatalogActiveVersionSelectionTest (4)portedpublication precedence (active > retired, then highest version)
ResourceRoutingCatalogReverseVersionStripTest (5)portedid--version / `id
ResourceRoutingCatalogPopulatorTest (37)ported (core)routing/HttpCatalogScanTest: page-walk + register, explicit-vs-wildcard by authoritative pattern, rescan replaces, failed rescan keeps old entries
CanonicalResourceCatalogServiceBackoffTest (7)portedHttpCatalogScanTest.retriesWithExponentialBackoffBeforeGivingUp
CanonicalResourceCatalogServiceUrlBuildTest (6)ported (core)HttpCatalogScanTest (_count paging url, next-link following incl. foreign-host guard)
CanonicalResourceCatalogServiceLenientParseTest (2)portedHttpCatalogScanTest.nonFhirBodyIsSkippedLeniently
AuthoritativeCatalogFiltersTest (4)portedHttpCatalogScanTest.statusFilterInThePatternGatesExplicitRegistration
RouterRoutingServiceTest (9)ported (partial)id-level routing → MultiSourceExpandInstanceRoutingTest + catalog-routed remote reads (TeagleResourceController.remoteRead, verified live against the reference server)
CanonicalResolveControllerTest (10)ported (core)api/CatalogControllerTest (/api/resolve: catalog row first, authoritative-pattern fallback, 404)
CatalogSnapshotStoreTest (4)n/a (architecture)catalog persistence — Teagle’s catalog rebuilds from the HTTP scan at boot; snapshotting is an optimization for very large registries, not scheduled

operation — multi-source $expand

Explorer test (methods)DispositionNotes
ValueSetMultiSourceExpandFilterTest (19)ported (core)MultiSourceExpandFilterPagingTest
ValueSetMultiSourceExpandImplicitVsTest (8)portedMultiSourceExpandImplicitVsTest
ValueSetMultiSourceExpandImportIncludeTest (1)portedMultiSourceExpandImportIncludeTest (+ intersection semantics)
(merge core, no direct counterpart)portedMultiSourceExpandMergeTest
ValueSetMultiSourceExpandUnresolvedUrlTest (4)portedMultiSourceExpandDelegationGuardTest.UnresolvedUrl (tx-ecosystem 4xx/not-found shape; resolved-but-empty stays 200/0)
ValueSetMultiSourceExpandEmptyComposeDelegationTest (1)portedMultiSourceExpandDelegationGuardTest.EmptyComposeDelegation
ValueSetMultiSourceExpandExternalImplicitDelegationTest (3)portedMultiSourceExpandDelegationGuardTest.ImplicitFhirVs
ValueSetMultiSourceExpandImplicitImportDelegationTest (2)portedimplicit VS as import reference → MultiSourceExpandImportIncludeTest.remoteOwnedCanonicalDelegatesWholeExpandToOwner (the import path re-enters expand, which owns the delegation)
ValueSetMultiSourceExpandSearchMissDelegationTest (1) / ValueSetExpandExactRouteMissFallsBackToDiscoveryTest (1)portedcanonical-delegation on local miss → MultiSourceExpandImportIncludeTest.remoteOwnedCanonicalDelegatesWholeExpandToOwner
ValueSetMultiSourceExpandParseGuardTest (3)ported (adapted)request-side: unparseable body → 400 invalid (TeagleOperationController.dispatch, exercised via EditableServerCrudTest.unparseableBodyIsRejected + batch reject); upstream-side non-FHIR guard lives in Flint’s delegate (502)
ValueSetMultiSourceExpandBaseUrlGuardTest (3)ported (adapted)an http server with a blank target is dropped at load (EcosystemConfigTest.dropsHttpServerWhoseTargetInterpolatesToBlank) — the misconfiguration cannot reach request time
ValueSetMultiSourceExpandCatalogIdRoutingTest (2)portedMultiSourceExpandInstanceRoutingTest (/ValueSet/{id}/$expand)
ValueSetMultiSourceExpandEditionPinTest (2)portedMultiSourceExpandVersionPinTest (catalog pin, authored wins)
ValueSetMultiSourceExpandStaleVersionPinRetryTest (1)portedMultiSourceExpandVersionPinTest (self-heal retry, only-our-pin stripped, non-version errors not retried)
ValueSetMultiSourceExpandActiveVersionSearchTest (5)ported (adapted)the local half → ActiveVersionSelectionTest (active-over-retired, archived resolves, explicit version honored). The remote half is moot: Teagle delegates by canonical url and the owner resolves its own active version
ValueSetMultiSourceExpandSummaryReadTest (2) / SummaryFalseTest (1)n/a (architecture)summary-body re-reads existed because the explorer materialized remote VS bodies; Teagle delegates the whole $expand to the owner (EmptyComposeDelegation covers the stub-body edge)
ValueSetMultiSourceExpandInlineDisplayFloorTest (3)portedoperation/InlineDisplayFloorTest — an aggregator-layer rule: the kernel’s language semantics are conformance-exact (an untranslated display legitimately drops), so Teagle backfills authored compose displays on both the fast path and the fan-out merge, never overwriting a resolved display
ValueSetMultiSourceExpandPropertyDecorationTest (4) / FallbackPropertyTest (2) / PropertyUriSanitizerTest (7)flintengine/ExpansionPropertyTest (property decoration + declared-uri hygiene); overlaps the tx-ecosystem parameters suite
ValueSetMultiSourceExpandSupplementDesignationTest (5) / UpstreamSupplementDesignationTest (8) / SupplementDesignationPackageExpandValidationTest (2)flintengine/SupplementDesignationTest (useSupplement designations on expand + validate); the upstream-supplement merge variant becomes relevant when supplements meet remote sources — noted as a Teagle follow-up
ValueSetMultiSourceExpandUpstreamErrorLogLevelTest (2)n/alog-level assertion of explorer plumbing
ValueSetMultiSourceExpandCompositeSnomedReproIT (1) / ValueSetActiveVersionSelectionLiveIT (4)n/a (live IT)live integration repros against specific upstreams; the behavior they pin is covered by the unit ports + the live 2-source verification against the reference server

operation — router lookup/validate

Explorer test (methods)DispositionNotes
RouterOperationServiceCatalogRoutingTest (1)portedoperation/CatalogFirstLookupRoutingTest (patterns first, catalog second, local store outranks, fail-closed)
RouterOperationServiceValidateCodeRoutingTest (6)ported (core)dispatch shared with lookup (TeagleOperationService.validateCode); VS-url / ?fhir_vs / coding-system routing branches; exercised via TeagleBatchControllerTest + ServerRegistryRoutingTest
RouterOperationServiceValidateCodeParameterTest (4)tx-ecosystemGET parameter typing + validate-code parameter semantics — conformance parameters/validation suites
RouterOperationServiceLookupParameterTypeTest (3)tx-ecosystemas above
RouterOperationServiceUnresolvedCanonicalTest (6)tx-ecosystemfail-closed unknown-system outcomes — kernel behavior under conformance (+ CatalogFirstLookupRoutingTest.unknownSystemStaysLocalAndFailsClosed)
RouterOperationServiceStrippedCodeSystemLookupTest (5) / HttpLookupEnrichmentTest (2)n/a (architecture)summary-stub re-fetch existed because the explorer materialized remote bodies; Teagle forwards the operation to the owner
RouterOperationServiceSupplementLookupTest (4) / UpstreamSupplementLookupTest (4)flintengine/SupplementDesignationTest (supplement-aware $lookup)
RouterOperationServiceStaleVersionPinRetryTest (1)portedMultiSourceExpandVersionPinTest.lookupPinsTheCatalogEditionAndSelfHealsAStalePin
BatchBundleOperationRoutingTest (5, in bundle/)portedfhir/TeagleBatchControllerTest (POST /fhir batch → batch-response, per-entry status, one failure never fails the batch)

search / info

Explorer test (methods)DispositionNotes
CatalogSearchControllerTest (3), RoutedCanonicalSearchHandler{CombinedSearch(7),MultiVersion(4),ServerFilter(6)}, ResourceListContractTest (10), SearchTotalCountIndependentTest (0)ported (core)api/CatalogControllerTest (/api/catalog): list-row contract (url + versions[] + status + target), text/type/server filters, multi-version grouping, page-cap with independent total
LoadStatisticsServiceTest (6), RouterLoadInfoControllerTest (1)ported (core)api/CatalogControllerTest.statsCountPerServerAndSurfaceDuplicates (/api/catalog/stats: per-server/type counts + rejected duplicates)

infrastructure not migrated

Explorer test (methods)DispositionNotes
cache/* — FhirEtagFilterTest (22), TerminologyGenerationRegistryTest (11), TerminologyCacheInvalidatorTest (4), CacheInvalidationEventListenerTest (4), CacheManagementInvalidateEndpointTest (3), InMemorySharedCache (0)n/ashared HTTP cache/ETag layer (Caffeine/Redis) — not part of Teagle v1; the catalog version() counter is the revalidation hook if a cache layer is added
fhirpackage/* — PackageResourceReadInterceptorTest (15), PackageLoadReadinessTest (4), FhirPackageLoaderScanAllFilesTest (2)n/aNPM/IG package registry — replaced by the editable/local store model
admin/PackageReloadControllerTest (8)n/apackage admin endpoint (/api/ecosystem/reload is the surviving reload surface)
alias/AliasPreloadBlocksReadinessTest (3)n/afhirest alias preloading
enrichment/ResourceEnrichmentServiceTest (2), ValueSetBackgroundExpanderRequestContextTest (2)n/abackground enrichment of catalog entries
conformance/RouterConformanceLoaderMultiVersionTest (1)n/afhirest conformance bootstrap — Flint serves conformance
conformance/TerminologyCapabilitiesProviderTest (8)portedMetadataAggregationTest

New Teagle capabilities without an explorer counterpart

Teagle testCovers
EditableServerCrudTest (7)the NEW editable in-memory server: FHIR CRUD into Flint’s MutableResourceStore, catalog sync, authored content immediately expandable, delete fails closed, and conformance resources (putsAndReadsAStructureDefinition) served by the same path as terminology
HttpCatalogScanTest.scansStructureDefinitionAndStructureMapListingsSD/SM are catalogued like any other canonical, and an authoritative pattern claims an SD (they share authoritative with CodeSystem)
HttpCatalogScanTest.aServerRejectingStructureDefinitionSearchKeepsScanningTheOtherTypesthe live upstream answers an SD search with a not-supported OperationOutcome — one unsupported type must not cost the server’s other types
HttpCatalogScanTest.theScannedTypeListIsConfigurableteagle.catalog-scan.types trims the scan so unsupported types cost no retry budget
MultiSourceExpandMergeTest.fullyLocalComposeStaysOnTheKernelFastPathconformance-preserving local fast path
merge dedup nested-duplicate pruningMultiSourceExpandMergeTest.duplicateSystemCodePairsAreMergedOnce — fixes a flaw the reference merge had (top-level-only dedup keys)

Flint op-semantics ports (P3.6b, modules/tx-fhir/src/test — 58 methods green)

Explorer test (methods)Flint testCovers
SupplementDesignation cluster (5+8+2) + SupplementLookup (4+4)engine/SupplementDesignationTestuseSupplement designations on $expand / $lookup over the in-memory store (base designations always survive; a supplement of a different base never leaks)
PropertyDecoration (4) + FallbackProperty (2) + PropertyUriSanitizer (7)engine/ExpansionPropertyTestrequested-property projection, declared CodeSystem property uris, missing values never evict members
AdministrativeGenderRepro (5)engine/DisplayLanguagePrecedenceTestdisplay precedence across displayLanguage / Accept-Language, untranslated fallback

After the port the full tx-ecosystem general-mode suite was re-run: 1194/1194 — the ported tests document kernel behavior, they do not change it.

The reference server’s separate ucum module (14 methods, outside the explorer’s 556) is migrated as modules/ucumber/backendUcumApiTest (13 methods green) covers validate/analyse/convert/canonicalise/commensurability/model listings over Flint’s UcumService; the essence-import/export administration (DB-backed) is not carried.

Tally

  • Explorer total: 98 files / 556 methods.
  • ported: 61 files (fully, core, or adapted) → 22 Teagle test classes / 191 methods green
    • 3 Flint engine test classes / 58 methods green (P3.6b).
  • tx-ecosystem: 5 files subsumed by the conformance gate (1194/1194 general, re-verified after every Flint change).
  • n/a: 25 files — 17 dropped infrastructure (caches, packages, aliases, enrichment, fhirest plumbing), 8 made moot by the delegation architecture or explicitly deferred (semver-wildcard routing, catalog snapshots, CACHED strategy, live-IT repros) — each with its justification above.
  • Every one of the 98 explorer files is accounted for in the tables above.