1
0
Fork 0
mirror of https://github.com/anyproto/any-sync.git synced 2025-06-07 21:47:02 +09:00
any-sync/commonspace/settings/settingsstate/changefactory_test.go
2024-08-02 11:14:12 +02:00

34 lines
1.2 KiB
Go

package settingsstate
import (
"github.com/anyproto/any-sync/commonspace/spacesyncproto"
"github.com/anyproto/protobuf/proto"
"github.com/stretchr/testify/require"
"golang.org/x/exp/slices"
"testing"
)
func TestChangeFactory_CreateObjectDeleteChange(t *testing.T) {
factory := NewChangeFactory()
state := &State{
DeletedIds: map[string]struct{}{"1": {}, "2": {}},
}
marshalled, err := factory.CreateObjectDeleteChange("3", state, false)
require.NoError(t, err)
data := &spacesyncproto.SettingsData{}
err = proto.Unmarshal(marshalled, data)
require.NoError(t, err)
require.Nil(t, data.Snapshot)
require.Equal(t, "3", data.Content[0].Value.(*spacesyncproto.SpaceSettingsContent_ObjectDelete).ObjectDelete.Id)
marshalled, err = factory.CreateObjectDeleteChange("3", state, true)
require.NoError(t, err)
data = &spacesyncproto.SettingsData{}
err = proto.Unmarshal(marshalled, data)
require.NoError(t, err)
slices.Sort(data.Snapshot.DeletedIds)
require.Equal(t, &spacesyncproto.SpaceSettingsSnapshot{
DeletedIds: []string{"1", "2", "3"},
}, data.Snapshot)
require.Equal(t, "3", data.Content[0].Value.(*spacesyncproto.SpaceSettingsContent_ObjectDelete).ObjectDelete.Id)
}