Skip to content

Commit

Permalink
satellite/metainfo: add unit test for get object with delete marker
Browse files Browse the repository at this point in the history
Change-Id: I1c5701788417543162f55cc7fccab4a63acaad46
  • Loading branch information
dlamarmorgan authored and Storj Robot committed Jan 9, 2024
1 parent 339eb4a commit c1b59f7
Showing 1 changed file with 40 additions and 2 deletions.
42 changes: 40 additions & 2 deletions satellite/metainfo/endpoint_object_test.go
Expand Up @@ -150,8 +150,6 @@ func TestEndpoint_Object_No_StorageNodes(t *testing.T) {
require.True(t, errs2.IsRPC(err, rpcstatus.NotFound))
}

// TODO(ver): add tests with delete marker

items, _, err = metainfoClient.ListObjects(ctx, metaclient.ListObjectsParams{
Bucket: []byte(expectedBucketName),
Limit: 3,
Expand Down Expand Up @@ -2994,5 +2992,45 @@ func TestEndpoint_Object_No_StorageNodes_Versioning(t *testing.T) {
require.Len(t, response.Items, 2)
require.False(t, response.More)
})

t.Run("get objects with delete marker", func(t *testing.T) {
defer ctx.Check(deleteBucket(bucketName))

require.NoError(t, createBucket(bucketName))
require.NoError(t, planet.Satellites[0].API.Buckets.Service.EnableBucketVersioning(ctx, []byte(bucketName), projectID))

// upload first version of the item
err := planet.Uplinks[0].Upload(ctx, planet.Satellites[0], bucketName, "objectA", testrand.Bytes(100))
require.NoError(t, err)

// upload second version of the item
err = planet.Uplinks[0].Upload(ctx, planet.Satellites[0], bucketName, "objectA", testrand.Bytes(100))
require.NoError(t, err)

// delete the second version (latest). Should create a delete marker.
deleteResponse, err := planet.Satellites[0].Metainfo.Endpoint.BeginDeleteObject(ctx, &pb.BeginDeleteObjectRequest{
Header: &pb.RequestHeader{
ApiKey: apiKey,
},
Bucket: []byte(bucketName),
EncryptedObjectKey: []byte("objectA"),
ObjectVersion: nil,
})
require.NoError(t, err)
require.NotEmpty(t, deleteResponse)
require.Equal(t, pb.Object_DELETE_MARKER_VERSIONED, deleteResponse.Object.Status)

// get the delete marker (latest), should return error
_, err = planet.Satellites[0].Metainfo.Endpoint.GetObject(ctx, &pb.GetObjectRequest{
Header: &pb.RequestHeader{
ApiKey: apiKey,
},
Bucket: []byte(bucketName),
EncryptedObjectKey: []byte("objectA"),
ObjectVersion: nil,
})
require.Error(t, err)
require.True(t, errs2.IsRPC(err, rpcstatus.NotFound))
})
})
}

0 comments on commit c1b59f7

Please sign in to comment.