Something went wrong. Try again.
An ATProto Powered Reputation Network
Something went wrong. Try again.
2.0 kB · 62 lines
Go
at master
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263package storage
import ( "context" "database/sql" "path/filepath" "strings" "testing" "time"
"provenance/internal/domain")
func TestCommentMigration(t *testing.T) { path := filepath.Join(t.TempDir(), "index.db") conn, err := sql.Open(sqliteDriver, path) if err != nil { t.Fatal(err) } legacy := strings.SplitN(schema, "CREATE INDEX", 2)[0] legacy = strings.Replace(legacy, " comment TEXT NOT NULL DEFAULT '',\n", "", 1) legacy = strings.Replace(legacy, " source TEXT NOT NULL DEFAULT 'computer.ngp.provenance.vouch',\n", "", 1) if _, err := conn.Exec(legacy); err != nil { t.Fatal(err) } if _, err := conn.Exec("INSERT INTO participants(did) VALUES ('did:plc:a'); INSERT INTO vouches(author,subject,tag,score,created_at,record_key) VALUES ('did:plc:a','did:plc:b','',2,'',?); PRAGMA user_version=2", domain.RecordKey("did:plc:b", "")); err != nil { t.Fatal(err) } conn.Close() s, err := Open(path) if err != nil { t.Fatal(err) } ctx := context.Background() graph, err := s.Graph(ctx, "", domain.Default, 10) if err != nil || len(graph) != 1 || graph[0].Comment != "" { t.Fatalf("migration: %+v %v", graph, err) } v := graph[0] v.Comment = "Reference text.\n日本語 <script>" if err := s.Replace(ctx, v.Author, []domain.Vouch{v}, time.UnixMicro(100)); err != nil { t.Fatal(err) } graph, err = s.Graph(ctx, "", domain.Default, 10) if err != nil || len(graph) != 1 || graph[0].Comment != v.Comment { t.Fatalf("snapshot: %+v %v", graph, err) } v.Comment = "Updated reference." if err := s.Apply(ctx, "jetstream", domain.Change{Kind: domain.RecordChange, DID: v.Author, TimeUS: 200, RecordKey: domain.RecordKey(v.Subject, v.Tag), Vouch: &v}); err != nil { t.Fatal(err) } s.Close() s, err = Open(path) if err != nil { t.Fatal(err) } defer s.Close() graph, err = s.Graph(ctx, "", domain.Default, 10) if err != nil || len(graph) != 1 || graph[0].Comment != v.Comment { t.Fatalf("persisted event: %+v %v", graph, err) }}