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", ""); err != nil { t.Fatalf("mark: %v", err) } if err := s.MarkMigrated(ctx, accID, "INBOX", ""); err != nil { t.Fatalf("second mark must not error (ON CONFLICT): %v", err) } ok, err := s.IsMigrated(ctx, accID, "") if err != nil || !ok { t.Fatalf("IsMigrated = %v,%v want true,nil", ok, err) } absent, _ := s.IsMigrated(ctx, accID, "") if absent { t.Fatal("unknown key must be false") } }