@@ -80,7 +80,12 @@ test("secrets appear only as references, never resolved values", () => {
8080 // every secret the manifest names is surfaced as a ref in SECRETS.md
8181 assert . deepEqual (
8282 collectSecretRefs ( roebel ) . sort ( ) ,
83- [ "$COORDINATOR_PUBKEY" , "$GNOSIS_BUNDLER_RPC" , "$GNOSIS_RPC" , "$MATRIX_CLIENT_SECRET" , "$NEXTCLOUD_CLIENT_SECRET" , "$ROEBEL_ID_JWKS" , "$SUPABASE_URL" , "$WEB_CLIENT_SECRET" ] ,
83+ [
84+ "$BUZZ_GIT_HOOK_HMAC_SECRET" , "$BUZZ_POSTGRES_PASSWORD" , "$BUZZ_REDIS_PASSWORD" ,
85+ "$BUZZ_RELAY_PRIVATE_KEY" , "$BUZZ_S3_ACCESS_KEY" , "$BUZZ_S3_SECRET_KEY" ,
86+ "$COORDINATOR_PUBKEY" , "$GNOSIS_BUNDLER_RPC" , "$GNOSIS_RPC" , "$MATRIX_CLIENT_SECRET" ,
87+ "$NEXTCLOUD_CLIENT_SECRET" , "$ROEBEL_ID_JWKS" , "$SUPABASE_URL" , "$WEB_CLIENT_SECRET" ,
88+ ] ,
8489 ) ;
8590 // the keystone env references the secret, it does not inline a value
8691 assert . match ( renderBundle ( selfHosted ) . files [ "roebel-id.env" ] , / N E X T C L O U D _ C L I E N T _ S E C R E T = \$ N E X T C L O U D _ C L I E N T _ S E C R E T / ) ;
@@ -95,7 +100,7 @@ test("the plan is ordered and covers every declared surface", () => {
95100 // Federation follows the relay: peers are mirrored into a store that only
96101 // exists once the node's own Nostr surface is up.
97102 // The indexer follows the relay: it indexes stores that must exist first.
98- "mas-oidc" , "nostr-relay" , "indexer" , "federation" , "web-env" ,
103+ "mas-oidc" , "nostr-relay" , "buzz" , " indexer", "federation" , "web-env" ,
99104 // Operations come after the services exist but before "verify" — a node is
100105 // not verified until it is also survivable.
101106 "backup" , "backup-offsite" , "backup-restore-test" , "harden" , "firewall" ,
@@ -581,11 +586,15 @@ test("manifest-declared agent keys become the add-members script; humans-only sh
581586} ) ;
582587
583588test ( "buzz is config-gated — an undeclared workspace changes nothing" , ( ) => {
584- const compose = renderComposeYml ( roebel ) ;
589+ // The canonical Röbel manifest now declares buzz, so the baseline is a
590+ // variant with it stripped — the assertion stays: no declaration, no trace.
591+ const { buzz : _buzz , ...servicesWithoutBuzz } = roebel . services ;
592+ const noBuzz = { ...roebel , services : servicesWithoutBuzz } ;
593+ const compose = renderComposeYml ( noBuzz ) ;
585594 assert . doesNotMatch ( compose , / b u z z / i) ;
586- assert . doesNotMatch ( renderCaddyfile ( roebel ) , / b u z z / i) ;
587- assert . equal ( renderBundle ( roebel ) . files [ "buzz/add-members.sh" ] , undefined ) ;
588- assert . ok ( ! plan ( roebel ) . some ( ( s ) => s . id === "buzz" ) ) ;
595+ assert . doesNotMatch ( renderCaddyfile ( noBuzz ) , / b u z z / i) ;
596+ assert . equal ( renderBundle ( noBuzz ) . files [ "buzz/add-members.sh" ] , undefined ) ;
597+ assert . ok ( ! plan ( noBuzz ) . some ( ( s ) => s . id === "buzz" ) ) ;
589598} ) ;
590599
591600test ( "a vault: secret ref fails at render time, not on the box" , ( ) => {
0 commit comments