feat(store): tasks, accounts, runs, dedup journal
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
package store
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestMigratedIdempotency(t *testing.T) {
|
||||
s := testStore(t)
|
||||
ctx := context.Background()
|
||||
epSrc, _ := s.CreateEndpoint(ctx, Endpoint{RoleLabel: "src", Host: "a", Port: 993, TLSMode: "ssl"})
|
||||
epDst, _ := s.CreateEndpoint(ctx, Endpoint{RoleLabel: "dst", Host: "b", Port: 993, TLSMode: "ssl"})
|
||||
taskID, _ := s.CreateTask(ctx, Task{Name: "t", SrcEndpointID: epSrc, DstEndpointID: epDst})
|
||||
accID, _ := s.CreateAccount(ctx, Account{TaskID: taskID, SrcLogin: "u", SrcPassEnc: "x", DstLogin: "u2", DstPassEnc: "y"})
|
||||
|
||||
if err := s.MarkMigrated(ctx, accID, "INBOX", "<msg-1>"); err != nil {
|
||||
t.Fatalf("mark: %v", err)
|
||||
}
|
||||
if err := s.MarkMigrated(ctx, accID, "INBOX", "<msg-1>"); err != nil {
|
||||
t.Fatalf("second mark must not error (ON CONFLICT): %v", err)
|
||||
}
|
||||
ok, err := s.IsMigrated(ctx, accID, "<msg-1>")
|
||||
if err != nil || !ok {
|
||||
t.Fatalf("IsMigrated = %v,%v want true,nil", ok, err)
|
||||
}
|
||||
absent, _ := s.IsMigrated(ctx, accID, "<msg-2>")
|
||||
if absent {
|
||||
t.Fatal("unknown key must be false")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user