1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-08 05:57:03 +09:00

Add test for failed update

This commit is contained in:
mcrakhman 2024-09-01 22:50:04 +02:00
parent 7ec1e2aa8f
commit 7c99270914
No known key found for this signature in database
GPG key ID: DED12CFEF5B8396B

View file

@ -879,6 +879,43 @@ func TestObjectTree(t *testing.T) {
}
})
t.Run("update failed, nothing saved", func(t *testing.T) {
ctx := prepareTreeContext(t, aclList)
treeStorage := ctx.treeStorage
changeCreator := ctx.changeCreator
objTree := ctx.objTree.(*objectTree)
objTree.flusher = &newChangeFlusher{}
rawChanges := []*treechangeproto.RawTreeChangeWithId{
changeCreator.CreateRaw("1", aclList.Head().Id, "0", false, "0"),
changeCreator.CreateRaw("2", aclList.Head().Id, "0", false, "1"),
changeCreator.CreateRaw("3", aclList.Head().Id, "0", true, "2"),
changeCreator.CreateRaw("4", aclList.Head().Id, "3", false, "3"),
}
payload := RawChangesPayload{
NewHeads: []string{rawChanges[len(rawChanges)-1].Id},
RawChanges: rawChanges,
}
_, err := objTree.AddRawChangesWithUpdater(context.Background(), payload, func(tree ObjectTree, md Mode) error {
return fmt.Errorf("some error")
})
require.Equal(t, fmt.Errorf("some error"), err)
// check tree heads
require.Equal(t, []string{"0"}, objTree.Heads())
// check storage
heads, _ := treeStorage.Heads()
require.Equal(t, []string{"0"}, heads)
require.Equal(t, "0", objTree.Root().Id)
for _, ch := range rawChanges {
_, err := treeStorage.GetRawChange(context.Background(), ch.Id)
require.Error(t, err)
}
})
t.Run("snapshot path", func(t *testing.T) {
ctx := prepareTreeContext(t, aclList)
changeCreator := ctx.changeCreator