gopass/internal/diff/diff_test.go
Ludovic Fernandez b8f0ff8ff2
[chore]: linting (#2840)
Signed-off-by: Fernandez Ludovic <ldez@users.noreply.github.com>
2024-03-25 19:32:57 +01:00

110 lines
1.8 KiB
Go

package diff
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestStat(t *testing.T) {
t.Parallel()
for _, tc := range []struct {
name string
old []string
new []string
added int
removed int
}{
{
name: "added",
old: []string{"foo", "bar"},
new: []string{"foo", "bar", "baz"},
added: 1,
},
{
name: "removed",
old: []string{"foo", "bar", "baz"},
new: []string{"foo", "bar"},
removed: 1,
},
{
name: "added and removed",
old: []string{"foo", "baz"},
new: []string{"foo", "bar"},
added: 1,
removed: 1,
},
} {
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
a, r := Stat(tc.old, tc.new)
assert.Equal(t, tc.added, a)
assert.Equal(t, tc.removed, r)
})
}
}
func TestList(t *testing.T) {
t.Parallel()
for _, tc := range []struct {
old []string
new []string
added []string
removed []string
}{
{
old: []string{"foo", "bar"},
new: []string{"foo", "bar", "baz"},
added: []string{"baz"},
removed: nil,
},
{
old: []string{"foo", "bar", "baz"},
new: []string{"foo", "bar"},
added: nil,
removed: []string{"baz"},
},
{
old: []string{"foo", "baz"},
new: []string{"foo", "bar"},
added: []string{"bar"},
removed: []string{"baz"},
},
} {
a, r := List(tc.old, tc.new)
assert.Equal(t, tc.added, a)
assert.Equal(t, tc.removed, r)
}
}
func TestListToMap(t *testing.T) {
t.Parallel()
for _, tc := range []struct {
l []string
m map[string]struct{}
}{
{
l: []string{"foo", "bar"},
m: map[string]struct{}{
"foo": {},
"bar": {},
},
},
{
l: []string{"foo", "bar", "baz", "baz"},
m: map[string]struct{}{
"foo": {},
"bar": {},
"baz": {},
},
},
} {
m := listToMap(tc.l)
assert.Equal(t, tc.m, m)
}
}