Files
gopass-mirror/pkg/pwgen/cryptic_test.go
Dominik Schulz 7281ca8ab4 [chore] Migrate to golangci-lint v2 (#3104)
* [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>
2025-04-17 08:05:43 +02:00

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))
}
}