check / check (push) Failing after 3s
Tests that asserted a failure by a fragment of its message now use errors.Is: a refactor returning the wrong error, or wrapping with %v instead of %w, now fails them. New tests return each exported error of internal/vault and pkg/bip85 that no test returned, and check wrapped causes (os.ErrNotExist, ErrMnemonicMismatch through GetSecret, ErrInvalidPathComponent through DeriveBIP85Entropy). The 999-versions test moves into package secret to name its unexported error. Checks of errors no test can name keep their text; they are listed on the issue. Model: opus-5-5
32 lines
694 B
Go
32 lines
694 B
Go
package secret
|
|
|
|
import (
|
|
"fmt"
|
|
"path/filepath"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/spf13/afero"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGenerateVersionNameMaxSerial(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
fs := afero.NewMemMapFs()
|
|
secretDir := "/test/secret"
|
|
versionsDir := filepath.Join(secretDir, "versions")
|
|
|
|
// Create 999 versions
|
|
today := time.Now().Format("20060102")
|
|
for i := 1; i <= 999; i++ {
|
|
versionName := fmt.Sprintf("%s.%03d", today, i)
|
|
err := fs.MkdirAll(filepath.Join(versionsDir, versionName), 0o755)
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
// Try to create one more - should fail
|
|
_, err := GenerateVersionName(fs, secretDir)
|
|
require.ErrorIs(t, err, errMaxVersionsPerDay)
|
|
}
|