diff --git a/stores/metadata_test.go b/stores/metadata_test.go index 6bd007e36..67643d0ec 100644 --- a/stores/metadata_test.go +++ b/stores/metadata_test.go @@ -123,7 +123,7 @@ func TestObjectBasic(t *testing.T) { } } -func TestObjectMeta(t *testing.T) { +func TestObjectMetadata(t *testing.T) { ss := newTestSQLStore(t, defaultTestSQLStoreConfig) defer ss.Close() @@ -183,6 +183,26 @@ func TestObjectMeta(t *testing.T) { if !reflect.DeepEqual(got.Metadata, testMetadata) { t.Fatal("meta mismatch", cmp.Diff(got.Metadata, testMetadata)) } + + // assert metadata CASCADE on object delete + var cnt int64 + if err := ss.db.Model(&dbObjectUserMetadata{}).Count(&cnt).Error; err != nil { + t.Fatal(err) + } else if cnt != 2 { + t.Fatal("unexpected number of metadata entries", cnt) + } + + // remove the object + if err := ss.RemoveObject(context.Background(), api.DefaultBucketName, t.Name()); err != nil { + t.Fatal(err) + } + + // assert records are gone + if err := ss.db.Model(&dbObjectUserMetadata{}).Count(&cnt).Error; err != nil { + t.Fatal(err) + } else if cnt != 0 { + t.Fatal("unexpected number of metadata entries", cnt) + } } // TestSQLContractStore tests SQLContractStore functionality. diff --git a/stores/multipart_test.go b/stores/multipart_test.go index 67cc366cf..1ca50b4d9 100644 --- a/stores/multipart_test.go +++ b/stores/multipart_test.go @@ -3,9 +3,11 @@ package stores import ( "context" "encoding/hex" + "reflect" "testing" "time" + "github.com/google/go-cmp/cmp" "github.com/klauspost/reedsolomon" "go.sia.tech/core/types" "go.sia.tech/renterd/api" @@ -92,6 +94,11 @@ func TestMultipartUploadWithUploadPackingRegression(t *testing.T) { t.Fatalf("expected object total size to be %v, got %v", totalSize, obj.TotalSize()) } + // Assert it has the metadata + if !reflect.DeepEqual(obj.Metadata, testMetadata) { + t.Fatal("meta mismatch", cmp.Diff(obj.Metadata, testMetadata)) + } + // Upload buffers. upload := func(ps api.PackedSlab) api.UploadedPackedSlab { ups := api.UploadedPackedSlab{