gopass/internal/action/audit_test.go
Dominik Schulz 34567d93ee
[bugfix] Bring back audit summary (#2820)
* [bugfix] Bring back audit summary

This PR brings back the audit summary view and displays only that by
default. This restores the old behaviour before we refactored the
audit implementation. The new view is still available with the
new --full flag.

Fixes #2816

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix tests.

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

* Fix integration test

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>

---------

Signed-off-by: Dominik Schulz <dominik.schulz@gauner.org>
2024-03-13 14:26:06 +01:00

61 lines
1.5 KiB
Go

package action
import (
"bytes"
"os"
"testing"
"github.com/gopasspw/gopass/internal/config"
"github.com/gopasspw/gopass/internal/out"
"github.com/gopasspw/gopass/pkg/ctxutil"
"github.com/gopasspw/gopass/pkg/gopass/secrets"
"github.com/gopasspw/gopass/tests/gptest"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestAudit(t *testing.T) {
u := gptest.NewUnitTester(t)
ctx := config.NewContextInMemory()
ctx = ctxutil.WithAlwaysYes(ctx, true)
ctx = ctxutil.WithHidden(ctx, true)
act, err := newMock(ctx, u.StoreDir(""))
require.NoError(t, err)
require.NotNil(t, act)
ctx = act.cfg.WithConfig(ctx)
buf := &bytes.Buffer{}
out.Stdout = buf
stdout = buf
defer func() {
out.Stdout = os.Stdout
stdout = os.Stdout
}()
t.Run("expect audit to complains on very weak passwords", func(t *testing.T) {
sec := secrets.NewAKV()
sec.SetPassword("123")
require.NoError(t, act.Store.Set(ctx, "bar", sec))
require.NoError(t, act.Store.Set(ctx, "baz", sec))
require.Error(t, act.Audit(gptest.CliCtxWithFlags(ctx, t, map[string]string{"full": "true"})), buf.String())
buf.Reset()
})
t.Run("test with filter", func(t *testing.T) {
c := gptest.CliCtx(ctx, t, "foo")
require.Error(t, act.Audit(c))
buf.Reset()
})
t.Run("test empty store", func(t *testing.T) {
for _, v := range []string{"foo", "bar", "baz"} {
require.NoError(t, act.Store.Delete(ctx, v))
}
require.NoError(t, act.Audit(gptest.CliCtx(ctx, t)))
assert.Contains(t, "No secrets found", buf.String())
buf.Reset()
})
}