29 lines
1.0 KiB
Go
29 lines
1.0 KiB
Go
package store
|
|
|
|
import "testing"
|
|
|
|
func TestSubscriptionUpdateAffectsUnread(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
update map[string]any
|
|
want bool
|
|
}{
|
|
{name: "read seq", update: map[string]any{"ReadSeqId": int64(12)}, want: true},
|
|
{name: "delete marker", update: map[string]any{"DelId": 4}, want: true},
|
|
{name: "want mode", update: map[string]any{"ModeWant": 1}, want: true},
|
|
{name: "given mode", update: map[string]any{"ModeGiven": 1}, want: true},
|
|
{name: "deleted", update: map[string]any{"DeletedAt": "now"}, want: true},
|
|
{name: "recv only", update: map[string]any{"RecvSeqId": int64(12)}, want: false},
|
|
{name: "private only", update: map[string]any{"Private": map[string]any{"mute": true}}, want: false},
|
|
{name: "empty", update: map[string]any{}, want: false},
|
|
}
|
|
|
|
for _, tc := range tests {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
if got := subscriptionUpdateAffectsUnread(tc.update); got != tc.want {
|
|
t.Fatalf("subscriptionUpdateAffectsUnread() = %v, want %v", got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|