unistore: replace CDK backend with KV store backend (again) (#113184)

* Reapply "unistore: replace CDK backend with KV store backend"" (#113132)

This reverts commit 7127b2538c.

* enable cluster scope
This commit is contained in:
Georges Chaudy
2025-11-04 00:33:36 +00:00
committed by GitHub
parent a06905e2d3
commit ddeb970b4d
9 changed files with 176 additions and 471 deletions
@@ -387,6 +387,30 @@ func runTestIntegrationBackendList(t *testing.T, backend resource.StorageBackend
require.Empty(t, res.NextPageToken)
})
t.Run("fetch all with limit 0", func(t *testing.T) {
res, err := server.List(ctx, &resourcepb.ListRequest{
Limit: 0,
Options: &resourcepb.ListOptions{
Key: &resourcepb.ResourceKey{
Namespace: ns,
Group: "group",
Resource: "resource",
},
},
})
require.NoError(t, err)
require.Nil(t, res.Error)
require.Len(t, res.Items, 5)
// should be sorted by key ASC
require.Contains(t, string(res.Items[0].Value), "item1 ADDED")
require.Contains(t, string(res.Items[1].Value), "item2 MODIFIED")
require.Contains(t, string(res.Items[2].Value), "item4 ADDED")
require.Contains(t, string(res.Items[3].Value), "item5 ADDED")
require.Contains(t, string(res.Items[4].Value), "item6 ADDED")
require.Empty(t, res.NextPageToken)
})
t.Run("list latest first page ", func(t *testing.T) {
res, err := server.List(ctx, &resourcepb.ListRequest{
Limit: 3,
@@ -757,6 +781,30 @@ func runTestIntegrationBackendListHistory(t *testing.T, backend resource.Storage
require.Contains(t, string(secondPageRes.Items[i].Value), "item1 MODIFIED")
}
})
// Test with limit=0 (should return all items)
t.Run("fetch all history with limit 0", func(t *testing.T) {
res, err := server.List(ctx, &resourcepb.ListRequest{
Limit: 0,
Source: resourcepb.ListRequest_HISTORY,
Options: &resourcepb.ListOptions{
Key: baseKey,
},
})
require.NoError(t, err)
require.Nil(t, res.Error)
require.Len(t, res.Items, 6) // Should return all 6 history items (1 ADDED + 5 MODIFIED)
// Should be in descending order (default for history)
require.Equal(t, rvHistory5, res.Items[0].ResourceVersion)
require.Equal(t, rvHistory4, res.Items[1].ResourceVersion)
require.Equal(t, rvHistory3, res.Items[2].ResourceVersion)
require.Equal(t, rvHistory2, res.Items[3].ResourceVersion)
require.Equal(t, rvHistory1, res.Items[4].ResourceVersion)
require.Equal(t, rv1, res.Items[5].ResourceVersion)
require.Empty(t, res.NextPageToken)
})
})
t.Run("fetch second page of history at revision", func(t *testing.T) {