package main import ( "os" "path/filepath" "strings" "testing" "gitgud.io/mike/mpv-manager/pkg/releasemanifest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestGenerateKeyWritesPrivateSeedWithoutOverwriting(t *testing.T) { path := filepath.Join(t.TempDir(), "release-key.seed") publicSpec, err := generateKey("release-2026", path) require.NoError(t, err) assert.True(t, strings.HasPrefix(publicSpec, "release-2026=")) keys, err := releasemanifest.ParseTrustedKeys(publicSpec) require.NoError(t, err) assert.Len(t, keys, 1) info, err := os.Stat(path) require.NoError(t, err) assert.Equal(t, os.FileMode(0600), info.Mode().Perm()) encodedSeed, err := os.ReadFile(path) require.NoError(t, err) _, err = releasemanifest.ParsePrivateKey(strings.TrimSpace(string(encodedSeed))) require.NoError(t, err) _, err = generateKey("release-2027", path) require.Error(t, err) }