@@ -23,11 +23,15 @@ exec git commit -m 'Add ledger API v1.0.0'
2323exec git tag proto/payments/ledger/v1/v1.0.0
2424
2525# Test dry-run release prepare (should succeed without actual git operations)
26- exec apx release prepare --module-path=internal/apis/ proto/payments/ledger/v1 --canonical-repo=github.com/myorg/apis --dry-run
26+ exec apx release prepare proto/payments/ledger/v1 --version=v1.0.0 --canonical-repo=github.com/myorg/apis --dry-run
2727stdout 'Dry-run mode'
28- stdout 'internal/apis/ proto/payments/ledger/v1'
28+ stdout 'proto/payments/ledger/v1'
2929stdout 'github.com/myorg/apis'
3030
31+ # Prepare (non-dry-run) to write the manifest for submit tests
32+ exec apx release prepare proto/payments/ledger/v1 --version=v1.0.0 --canonical-repo=github.com/myorg/apis
33+ exists .apx-release.yaml
34+
3135# Test dry-run release submit
3236exec apx release submit --dry-run
3337stdout 'Dry-run mode'
@@ -43,45 +47,47 @@ stderr 'buf'
4347! exec apx breaking --against=HEAD~1 internal/apis/proto/payments/ledger/v1/ledger.proto
4448stderr 'buf'
4549
46- # Test release prepare with version flag
47- exec apx release prepare --module-path=internal/apis/ proto/payments/ledger/v1 --canonical-repo=github.com/myorg/apis --version=v1.0.1 --dry-run
50+ # Test release prepare with a different version
51+ exec apx release prepare proto/payments/ledger/v1 --version=v1.0.1 -- canonical-repo=github.com/myorg/apis --dry-run
4852stdout 'v1.0.1'
4953
5054# Test release submit with dry-run
5155exec apx release submit --dry-run
5256stdout 'Dry-run mode'
5357
54- # Test with missing required flags
58+ # Test with missing positional api-id
5559! exec apx release prepare
56- stderr 'module-path '
60+ stderr '. '
5761
58- ! exec apx release prepare --module-path=internal/apis/proto/payments/ledger/v1
59- stderr 'canonical-repo'
62+ # Test with missing required --version flag
63+ ! exec apx release prepare proto/payments/ledger/v1 --canonical-repo=github.com/myorg/apis
64+ stderr 'version'
6065
6166# Test with non-existent module path
62- ! exec apx release prepare -- module-path=nonexistent/path --canonical-repo=github.com/test/apis
67+ ! exec apx release prepare proto/nonexistent/ module/v1 --version=v1.0.0 --canonical-repo=github.com/test/apis
6368stderr 'does not exist'
6469
6570# --- Identity-based release (dry-run) ---
6671# Test positional API ID release: apx release prepare <api-id> --version --lifecycle
6772exec apx release prepare proto/payments/ledger/v1 --version v1.0.0-beta.1 --lifecycle beta --canonical-repo=github.com/myorg/apis --dry-run
6873stdout 'Dry-run mode'
69- stdout 'API ID: proto/payments/ledger/v1'
70- stdout 'Version: v1.0.0-beta.1'
71- stdout 'Tag: proto/payments/ledger/v1/v1.0.0-beta.1'
72- stdout 'Go module: github.com/myorg/apis/proto/payments/ledger'
73- stdout 'Go import: github.com/myorg/apis/proto/payments/ledger/v1'
74+ stdout 'proto/payments/ledger/v1'
75+ stdout 'v1.0.0-beta.1'
76+ stdout 'proto/payments/ledger/v1/v1.0.0-beta.1'
77+ stdout 'github.com/myorg/apis/proto/payments/ledger'
78+ stdout 'github.com/myorg/apis/proto/payments/ledger/v1'
7479
7580# Test identity release GA
7681exec apx release prepare proto/payments/ledger/v1 --version v1.0.0 --lifecycle stable --canonical-repo=github.com/myorg/apis --dry-run
7782stdout 'v1.0.0'
7883stdout 'stable'
7984
80- # Test identity release v2 line
85+ # Test identity release v2 line (create the v2 directory first)
86+ mkdir -p internal/apis/proto/payments/ledger/v2
8187exec apx release prepare proto/payments/ledger/v2 --version v2.0.0-alpha.1 --lifecycle experimental --canonical-repo=github.com/myorg/apis --dry-run
8288stdout 'proto/payments/ledger/v2'
83- stdout 'Go module: github.com/myorg/apis/proto/payments/ledger/v2'
84- stdout 'Tag: proto/payments/ledger/v2/v2.0.0-alpha.1'
89+ stdout 'github.com/myorg/apis/proto/payments/ledger/v2'
90+ stdout 'proto/payments/ledger/v2/v2.0.0-alpha.1'
8591
8692# Test identity release requires --version
8793! exec apx release prepare proto/payments/ledger/v1 --canonical-repo=github.com/myorg/apis --dry-run
@@ -91,9 +97,9 @@ stderr 'version'
9197! exec apx release prepare proto/payments/ledger/v1 --version v1.0.0 --lifecycle alpha --canonical-repo=github.com/myorg/apis --dry-run
9298stderr 'invalid lifecycle'
9399
94- # Test identity release validates api-id format
100+ # Test identity release rejects unrecognized api-id (no slashes → treated as nonexistent path)
95101! exec apx release prepare invalid-api-id --version v1.0.0 --canonical-repo=github.com/myorg/apis --dry-run
96- stderr 'invalid API ID '
102+ stderr '. '
97103
98104# Cleanup
99105cd ..
0 commit comments