8f986c1e31
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.
62 lines
3.4 KiB
Gherkin
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"
|