mirror of
https://github.com/anyproto/any-sync.git
synced 2025-06-07 21:47:02 +09:00
34 lines
1.2 KiB
Go
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)
|
|
}
|