fix(dev): make key creation atomic

This commit is contained in:
Thomas Camlong committed 2026-07-31 15:28:00 +02:00
1 parent ae3e9f7793
commit b733ed6a79
2 files changed
+71 -14

No files matched your search

@@ -96,3 +96,30 @@ func TestPersistedDevelopmentEncryptionKeyRejectsInvalidValue(t *testing.T) {
t.Fatal("expected invalid persisted key to fail")
}
}
func TestPersistedDevelopmentEncryptionKeyConcurrentCreation(t *testing.T) {
configDir := t.TempDir()
type result struct {
key string
err error
}
results := make(chan result, 20)
for range 20 {
go func() {
key, err := persistedDevelopmentEncryptionKey(configDir)
results <- result{key: key, err: err}
}()
}
var first string
for range 20 {
result := <-results
if result.err != nil {
t.Fatal(result.err)
}
if first == "" {
first = result.key
} else if result.key != first {
t.Fatal("concurrent callers received different keys")
}
}
}