Files
cleveractors-core/features/registry_resolver_errors.feature
CoreRasurae 8f986c1e31 test(coverage): add coverage scenarios for pre-existing code paths
Additional BDD scenarios covering registry resolver errors, cache
TTL expiry, runtime dispatch normalization, template base edge cases,
validation actor coverage gaps, and YAML Jinja loader deferred rendering.
2026-06-23 10:49:16 +01:00

62 lines
3.4 KiB
Gherkin

Feature: Package Registry Version Resolution Error Branches
As a developer using the Package Registry Standard v1.0.0
I want version resolution to raise clear errors for invalid inputs
so that callers receive structured diagnostics for all edge cases.
Background:
Given the registry resolver module is imported
Scenario: Invalid semver string raises InvalidPackageReferenceError
When the resolver parses semver "not-valid-semver"
Then ResErr: InvalidPackageReferenceError raised containing "Not a valid semver"
Scenario: Alias resolution against empty version list raises error
When resolve_version is called with alias "latest" against empty available versions
Then ResErr: InvalidPackageReferenceError raised containing "No available versions to resolve"
Scenario: Major alias with no matching versions raises error
When resolve_version is called with alias "v5.x" against available versions "v1.0.0,v2.0.0"
Then ResErr: InvalidPackageReferenceError raised containing "No versions match"
Scenario: Minor alias with no matching versions raises error
When resolve_version is called with alias "v1.5.x" against available versions "v1.0.0,v1.1.0,v2.0.0"
Then ResErr: InvalidPackageReferenceError raised containing "No versions match"
Scenario: ID reference without id_string raises error during resolution
Given a reference resolver is created without client and without local store
When resolving reference "ID:" with resolver
Then an InvalidPackageReferenceError should be raised
Scenario: Registry reference without namespace raises error during resolution
Given a reference resolver is created without client and without local store
When resolving registry reference "server.com:@v1.0.0" with resolver
Then an InvalidPackageReferenceError should be raised
Scenario: Unknown reference type raises InvalidPackageReferenceError
Given a reference resolver is created without client and without local store
When resolving an unknown reference type with resolver
Then ResErr: InvalidPackageReferenceError raised containing "Unknown"
Scenario: _pick_latest with empty list raises error
When _pick_latest is called with empty versions list
Then ResErr: InvalidPackageReferenceError raised containing "No versions available to pick"
Scenario: Global alias with no concrete versions raises error
When resolve_version is called with alias "latest" against available versions "v1.x,v2.x"
Then ResErr: InvalidPackageReferenceError raised containing "No concrete versions available"
Scenario: Registry reference missing namespace or name raises error
Given a reference resolver is created without client and without local store
When resolving a registry reference with missing namespace
Then ResErr: InvalidPackageReferenceError raised containing "missing namespace or name"
Scenario: Registry response missing package_id raises error
Given a reference resolver is created with a mock client returning no package_id
When resolving a registry reference with the mock client
Then ResErr: InvalidPackageReferenceError raised containing "Registry response missing"
Scenario: Registry response with invalid package_id raises error
Given a reference resolver is created with a mock client returning invalid package_id
When resolving a registry reference with the mock client
Then ResErr: InvalidPackageReferenceError raised containing "Invalid package_id"