package storage import ( "os" "path/filepath" "testing" ) func TestBlockLogAppendReadFlush(t *testing.T) { tmp := t.TempDir() log, err := OpenBlockLog(tmp, 3, 4) if err != nil { t.Fatalf("OpenBlockLog: %v", err) } payload1 := []byte(`{"op":1}`) payload2 := []byte(`{"op":2}`) ref1, flush, err := log.Append(1, "did:plc:a", "cid1", "", payload1) if err != nil { t.Fatalf("append 1: %v", err) } if flush != nil { t.Fatalf("unexpected automatic flush") } ref2, _, err := log.Append(2, "did:plc:a", "cid2", "cid1", payload2) if err != nil { t.Fatalf("append 2: %v", err) } flushed, err := log.Flush() if err != nil { t.Fatalf("flush: %v", err) } if flushed == nil { t.Fatalf("expected flushed block") } blockFile := filepath.Join(tmp, "ops", "000001.zst") if _, err := os.Stat(blockFile); err != nil { t.Fatalf("expected block file: %v", err) } got1, err := log.ReadRecord(ref1) if err != nil { t.Fatalf("read record1: %v", err) } if string(got1) != string(payload1) { t.Fatalf("payload1 mismatch: got %s want %s", got1, payload1) } got2, err := log.ReadRecord(ref2) if err != nil { t.Fatalf("read record2: %v", err) } if string(got2) != string(payload2) { t.Fatalf("payload2 mismatch: got %s want %s", got2, payload2) } }