mirror of
https://github.com/pocket-id/pocket-id.git
synced 2026-09-22 02:49:04 +02:00
44 lines
1.1 KiB
Go
44 lines
1.1 KiB
Go
package cmds
|
|
|
|
import (
|
|
"archive/zip"
|
|
"bytes"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
"github.com/pocket-id/pocket-id/backend/internal/service"
|
|
)
|
|
|
|
func TestEnsureNoActorsBackup(t *testing.T) {
|
|
buildZip := func(t *testing.T, names ...string) *zip.Reader {
|
|
t.Helper()
|
|
|
|
buf := &bytes.Buffer{}
|
|
zw := zip.NewWriter(buf)
|
|
for _, name := range names {
|
|
w, err := zw.Create(name)
|
|
require.NoError(t, err)
|
|
_, err = w.Write([]byte("payload"))
|
|
require.NoError(t, err)
|
|
}
|
|
require.NoError(t, zw.Close())
|
|
|
|
zr, err := zip.NewReader(bytes.NewReader(buf.Bytes()), int64(buf.Len()))
|
|
require.NoError(t, err)
|
|
|
|
return zr
|
|
}
|
|
|
|
t.Run("accepts an archive without the actor data", func(t *testing.T) {
|
|
err := ensureNoActorsBackup(buildZip(t, "database.json", "uploads/logo.png"))
|
|
require.NoError(t, err)
|
|
})
|
|
|
|
t.Run("rejects an archive carrying the actor data", func(t *testing.T) {
|
|
err := ensureNoActorsBackup(buildZip(t, "database.json", service.ActorsBackupFileName))
|
|
require.Error(t, err)
|
|
require.ErrorContains(t, err, service.ActorsBackupFileName)
|
|
})
|
|
}
|