secrets-engine/tests/test_exec_delivery.py
tegwick 0ab9c649b9
All checks were successful
CI Smoke / host-smoke (push) Successful in 1s
CI Smoke / container-smoke (push) Successful in 3s
Migrate whynot-design npm catalog and docs to Forgejo registry
Update catalog, docs, tests, and exec_delivery comment for Forgejo npm API.
2026-07-09 11:38:15 +02:00

24 lines
1 KiB
Python

from secrets_engine.exec_delivery import _npm_userconfig, _registry_authkey
def test_registry_authkey_strips_scheme_and_trails_slash():
assert (
_registry_authkey("https://forgejo.coulomb.social/api/packages/coulomb/npm/")
== "//forgejo.coulomb.social/api/packages/coulomb/npm/"
)
# missing trailing slash is added
assert _registry_authkey("https://host/api/npm") == "//host/api/npm/"
def test_npm_userconfig_writes_registry_and_token_ref_not_value():
registry = "https://forgejo.coulomb.social/api/packages/coulomb/npm/"
with _npm_userconfig(registry, "@whynot", "NPM_AUTH_TOKEN") as path:
body = path.read_text()
assert f"@whynot:registry={registry}" in body
# token is referenced via env expansion, never written literally
assert "${NPM_AUTH_TOKEN}" in body
assert "//forgejo.coulomb.social/api/packages/coulomb/npm/:_authToken" in body
# file is mode 0600
assert (path.stat().st_mode & 0o077) == 0
# cleaned up on context exit
assert not path.exists()