mirror of
https://github.com/gopasspw/gopass.git
synced 2026-06-12 15:37:38 +02:00
7281ca8ab4
* [chore] Migrate to golangci-lint v2 Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issue Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix more lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Add more package comments. Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [chore] Fix golangci-lint config and the remaining checks Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Use Go 1.24 Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Fix container builds Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix more failing tests Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix test failure Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Fix another len assertion Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * Move location tests Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Fix most remaining lint issues Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Only run XDG specific tests on linux Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> * [fix] Attempt to address on source of flaky failures Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org> --------- Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
54 lines
1.0 KiB
Go
54 lines
1.0 KiB
Go
package pwgen
|
|
|
|
import (
|
|
"fmt"
|
|
"sort"
|
|
"testing"
|
|
|
|
"github.com/gopasspw/gopass/internal/config"
|
|
"github.com/gopasspw/gopass/pkg/pwgen/pwrules"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestCrypticForDomain(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
rules := pwrules.AllRules()
|
|
keys := make([]string, 0, len(rules))
|
|
|
|
for k := range rules {
|
|
keys = append(keys, k)
|
|
}
|
|
|
|
sort.Strings(keys)
|
|
|
|
for _, domain := range keys {
|
|
t.Run(domain, func(t *testing.T) {
|
|
for _, length := range []int{1, 4, 8, 100} {
|
|
tcName := fmt.Sprintf("%s: generated password with %d chars", domain, length)
|
|
c := NewCrypticForDomain(config.NewContextInMemory(), length, domain)
|
|
c.MaxTries = 1024
|
|
|
|
require.NotNil(t, c, tcName)
|
|
|
|
pw := c.Password()
|
|
|
|
assert.NotEmpty(t, pw, tcName)
|
|
t.Logf("%s -> %s (%d)", tcName, pw, len(pw))
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestUniqueChars(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
for in, out := range map[string]string{
|
|
"foobar": "abfor",
|
|
"abced": "abcde",
|
|
} {
|
|
assert.Equal(t, out, uniqueChars(in))
|
|
}
|
|
}
|