=== RUN TestSecretManagerIntegration === RUN TestSecretManagerIntegration/01_Initialize === RUN TestSecretManagerIntegration/02_ListVaults === RUN TestSecretManagerIntegration/03_CreateVault === RUN TestSecretManagerIntegration/04_ImportMnemonic === RUN TestSecretManagerIntegration/05_AddSecret === RUN TestSecretManagerIntegration/06_GetSecret === RUN TestSecretManagerIntegration/07_AddSecretVersion === RUN TestSecretManagerIntegration/08_ListVersions === RUN TestSecretManagerIntegration/09_GetSpecificVersion === RUN TestSecretManagerIntegration/10_PromoteVersion === RUN TestSecretManagerIntegration/11_ListSecrets integration_test.go:710: JSON output: { "secrets": [ { "created_at": "2025-06-09T04:52:08.170719-07:00", "name": "api/key", "updated_at": "2025-06-09T04:52:08.170719-07:00" }, { "created_at": "2025-06-09T04:52:08.170725-07:00", "name": "config/database.yaml", "updated_at": "2025-06-09T04:52:08.170725-07:00" }, { "created_at": "2025-06-09T04:52:08.170731-07:00", "name": "database/password", "updated_at": "2025-06-09T04:52:08.170731-07:00" } ] } === RUN TestSecretManagerIntegration/12_SecretNameFormats === RUN TestSecretManagerIntegration/12_SecretNameFormats/api/keys/production === RUN TestSecretManagerIntegration/12_SecretNameFormats/config.yaml === RUN TestSecretManagerIntegration/12_SecretNameFormats/ssh_private_key === RUN TestSecretManagerIntegration/12_SecretNameFormats/deeply/nested/path/to/secret === RUN TestSecretManagerIntegration/12_SecretNameFormats/test-with-dash === RUN TestSecretManagerIntegration/12_SecretNameFormats/test.with.dots === RUN TestSecretManagerIntegration/12_SecretNameFormats/test_with_underscore === RUN TestSecretManagerIntegration/12_SecretNameFormats/mixed/test.name_format-123 === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_empty === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_UPPERCASE === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_with_space_space === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_with@symbol === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_with#hash === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_with$dollar === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid__slash_leading-slash integration_test.go:854: add '/leading-slash' result: err=, output= === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_trailing-slash_slash_ integration_test.go:854: add 'trailing-slash/' result: err=, output= === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_double_slash__slash_slash integration_test.go:854: add 'double//slash' result: err=, output= === RUN TestSecretManagerIntegration/12_SecretNameFormats/invalid_.hidden integration_test.go:854: add '.hidden' result: err=, output= === RUN TestSecretManagerIntegration/13_UnlockerManagement integration_test.go:883: Error adding passphrase unlocker: exit status 1, output: Error: failed to unlock vault: failed to get long-term key: failed to get unlocker identity: failed to decrypt unlocker private key: failed to create decryptor: no identity matched any of the recipients Usage: secret unlockers add [flags] Flags: -h, --help help for add --keyid string GPG key ID for PGP unlockers integration_test.go:885: Error Trace: /Users/user/dev/secret/internal/cli/integration_test.go:885 Error: Received unexpected error: exit status 1 Test: TestSecretManagerIntegration/13_UnlockerManagement Messages: add passphrase unlocker should succeed === RUN TestSecretManagerIntegration/14_SwitchVault === RUN TestSecretManagerIntegration/15_VaultIsolation === RUN TestSecretManagerIntegration/16_GenerateSecret === RUN TestSecretManagerIntegration/17_ImportFromFile === RUN TestSecretManagerIntegration/18_AgeKeyOperations === RUN TestSecretManagerIntegration/19_DisasterRecovery integration_test.go:1233: Long-term public key from vault: age1gel0je3w796uqpp7k47w65agnrhe85ee3xz550us6kdpgy5nr3rq7mkfqs integration_test.go:1239: Note: Long-term private key can be derived from mnemonic integration_test.go:1259: === Disaster Recovery Chain === integration_test.go:1260: 1. Secret value is encrypted to version public key: /var/folders/w9/_481zfb94wx2yq562f5h68vw0000gn/T/TestSecretManagerIntegration3789343214/001/vaults.d/default/secrets.d/test%disaster-recovery/versions/20250609.001/pub.age integration_test.go:1261: 2. Version private key is encrypted to long-term public key: /var/folders/w9/_481zfb94wx2yq562f5h68vw0000gn/T/TestSecretManagerIntegration3789343214/001/vaults.d/default/pub.age integration_test.go:1262: 3. Long-term private key is derived from mnemonic integration_test.go:1282: === Disaster Recovery Test Complete === integration_test.go:1283: The vault structure is compatible with standard age encryption. integration_test.go:1284: In a real disaster scenario: integration_test.go:1285: 1. Derive long-term private key from mnemonic using BIP32/BIP39 integration_test.go:1286: 2. Use 'age -d' to decrypt version private keys integration_test.go:1287: 3. Use 'age -d' to decrypt secret values integration_test.go:1288: No proprietary tools needed - just mnemonic + age CLI === RUN TestSecretManagerIntegration/20_VersionTimestamps === RUN TestSecretManagerIntegration/21_MaxVersionsPerDay integration_test.go:1353: Skipping max versions test - would take too long === RUN TestSecretManagerIntegration/22_JSONOutput integration_test.go:1380: JSON output formats verified for vault list, secret list, and unlockers list === RUN TestSecretManagerIntegration/23_ErrorHandling === RUN TestSecretManagerIntegration/24_EnvironmentVariables === RUN TestSecretManagerIntegration/25_ConcurrentOperations === RUN TestSecretManagerIntegration/26_LargeSecrets === RUN TestSecretManagerIntegration/27_SpecialCharacters === RUN TestSecretManagerIntegration/28_VaultMetadata integration_test.go:1700: Error Trace: /Users/user/dev/secret/internal/cli/integration_test.go:1700 Error: Not equal: expected: "992552b00b3879dfae461fab9a084b47784a032771c7a9accaebdde05ec7a7d1" actual : "e34a2f500e395d8934a90a99ee9311edcfffd68cb701079575e50cbac7bb9417" Diff: --- Expected +++ Actual @@ -1 +1 @@ -992552b00b3879dfae461fab9a084b47784a032771c7a9accaebdde05ec7a7d1 +e34a2f500e395d8934a90a99ee9311edcfffd68cb701079575e50cbac7bb9417 Test: TestSecretManagerIntegration/28_VaultMetadata Messages: vaults from same mnemonic should have same public_key_hash === RUN TestSecretManagerIntegration/29_SymlinkHandling === RUN TestSecretManagerIntegration/30_BackupRestore integration_test.go:1838: Error Trace: /Users/user/dev/secret/internal/cli/integration_test.go:1838 Error: Received unexpected error: exit status 1 Test: TestSecretManagerIntegration/30_BackupRestore Messages: get restored secret should succeed --- FAIL: TestSecretManagerIntegration (4.96s) --- PASS: TestSecretManagerIntegration/01_Initialize (0.79s) --- PASS: TestSecretManagerIntegration/02_ListVaults (0.02s) --- PASS: TestSecretManagerIntegration/03_CreateVault (0.02s) --- PASS: TestSecretManagerIntegration/04_ImportMnemonic (0.75s) --- PASS: TestSecretManagerIntegration/05_AddSecret (0.04s) --- PASS: TestSecretManagerIntegration/06_GetSecret (0.04s) --- PASS: TestSecretManagerIntegration/07_AddSecretVersion (0.06s) --- PASS: TestSecretManagerIntegration/08_ListVersions (0.03s) --- PASS: TestSecretManagerIntegration/09_GetSpecificVersion (0.06s) --- PASS: TestSecretManagerIntegration/10_PromoteVersion (0.04s) --- PASS: TestSecretManagerIntegration/11_ListSecrets (0.06s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats (0.37s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/api/keys/production (0.03s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/config.yaml (0.03s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/ssh_private_key (0.03s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/deeply/nested/path/to/secret (0.03s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/test-with-dash (0.03s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/test.with.dots (0.03s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/test_with_underscore (0.03s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/mixed/test.name_format-123 (0.03s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_empty (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_UPPERCASE (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_with_space_space (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_with@symbol (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_with#hash (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_with$dollar (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid__slash_leading-slash (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_trailing-slash_slash_ (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_double_slash__slash_slash (0.01s) --- PASS: TestSecretManagerIntegration/12_SecretNameFormats/invalid_.hidden (0.01s) --- FAIL: TestSecretManagerIntegration/13_UnlockerManagement (0.75s) --- PASS: TestSecretManagerIntegration/14_SwitchVault (0.03s) --- PASS: TestSecretManagerIntegration/15_VaultIsolation (0.08s) --- PASS: TestSecretManagerIntegration/16_GenerateSecret (0.10s) --- PASS: TestSecretManagerIntegration/17_ImportFromFile (0.06s) --- PASS: TestSecretManagerIntegration/18_AgeKeyOperations (0.09s) --- PASS: TestSecretManagerIntegration/19_DisasterRecovery (0.04s) --- PASS: TestSecretManagerIntegration/20_VersionTimestamps (0.17s) --- SKIP: TestSecretManagerIntegration/21_MaxVersionsPerDay (0.00s) --- PASS: TestSecretManagerIntegration/22_JSONOutput (0.02s) --- PASS: TestSecretManagerIntegration/23_ErrorHandling (0.06s) --- PASS: TestSecretManagerIntegration/24_EnvironmentVariables (0.79s) --- PASS: TestSecretManagerIntegration/25_ConcurrentOperations (0.03s) --- PASS: TestSecretManagerIntegration/26_LargeSecrets (0.07s) --- PASS: TestSecretManagerIntegration/27_SpecialCharacters (0.10s) --- FAIL: TestSecretManagerIntegration/28_VaultMetadata (0.00s) --- PASS: TestSecretManagerIntegration/29_SymlinkHandling (0.03s) --- FAIL: TestSecretManagerIntegration/30_BackupRestore (0.18s) FAIL FAIL git.eeqj.de/sneak/secret/internal/cli 5.283s FAIL