Skip to content

Commit

Permalink
satellite/console: add GetUsageReport service test
Browse files Browse the repository at this point in the history
added go unit test for GetUsageReport service method

Issue:
#6755

Change-Id: I33554345a99fffc7c5ebccb7d4d868da00fc35e1
  • Loading branch information
VitaliiShpital authored and Storj Robot committed Feb 20, 2024
1 parent 3eb4c2d commit d198bdf
Showing 1 changed file with 65 additions and 0 deletions.
65 changes: 65 additions & 0 deletions satellite/console/service_test.go
Expand Up @@ -886,6 +886,71 @@ func TestService(t *testing.T) {
require.Greater(t, impact.HyperscalerImpact, zeroValue)
require.Greater(t, impact.SavedTrees, int64(0))
})
t.Run("GetUsageReport", func(t *testing.T) {
usr, err := sat.AddUser(ctx, console.CreateUser{
FullName: "Test Usage Report",
Email: "test.report@mail.test",
}, 2)
require.NoError(t, err)

usrCtx, err := sat.UserContext(ctx, usr.ID)
require.NoError(t, err)

pr1, err := sat.AddProject(ctx, usr.ID, "report test 1")
require.NoError(t, err)
require.NotNil(t, pr1)
pr2, err := sat.AddProject(ctx, usr.ID, "report test 2")
require.NoError(t, err)
require.NotNil(t, pr2)

bucket1 := buckets.Bucket{
ID: testrand.UUID(),
Name: "testBucket1",
ProjectID: pr1.ID,
}
bucket2 := buckets.Bucket{
ID: testrand.UUID(),
Name: "testBucket2",
ProjectID: pr2.ID,
}

_, err = sat.API.Buckets.Service.CreateBucket(usrCtx, bucket1)
require.NoError(t, err)
_, err = sat.API.Buckets.Service.CreateBucket(usrCtx, bucket2)
require.NoError(t, err)

now := time.Now()
inHalfAnHour := now.Add(30 * time.Minute)
inAnHour := now.Add(time.Hour)

items, err := service.GetUsageReport(userCtx2, now, inAnHour, pr1.PublicID)
require.True(t, console.ErrUnauthorized.Has(err))
require.Nil(t, items)

amount := memory.Size(1000)
err = sat.DB.Orders().UpdateBucketBandwidthSettle(ctx, pr1.ID, []byte(bucket1.Name), pb.PieceAction_GET, amount.Int64(), 0, inHalfAnHour)
require.NoError(t, err)
err = sat.DB.Orders().UpdateBucketBandwidthSettle(ctx, pr2.ID, []byte(bucket2.Name), pb.PieceAction_GET, amount.Int64(), 0, inHalfAnHour)
require.NoError(t, err)

items, err = service.GetUsageReport(usrCtx, now, inAnHour, pr1.PublicID)
require.NoError(t, err)
require.Len(t, items, 1)
require.Equal(t, pr1.PublicID, items[0].ProjectID)
require.Equal(t, bucket1.Name, items[0].BucketName)
require.Equal(t, amount.GB(), items[0].Egress)

items, err = service.GetUsageReport(usrCtx, now, inAnHour, pr2.PublicID)
require.NoError(t, err)
require.Len(t, items, 1)
require.Equal(t, pr2.PublicID, items[0].ProjectID)
require.Equal(t, bucket2.Name, items[0].BucketName)
require.Equal(t, amount.GB(), items[0].Egress)

items, err = service.GetUsageReport(usrCtx, now, inAnHour, uuid.UUID{})
require.NoError(t, err)
require.Len(t, items, 2)
})
})
}

Expand Down

0 comments on commit d198bdf

Please sign in to comment.