Files
silo-server/internal/catalog/update_test.go

36 lines
1.0 KiB
Go

package catalog
import (
"testing"
"github.com/Silo-Server/silo-server/internal/models"
)
func TestTitleLockedForAdminUpdate(t *testing.T) {
item := &models.MediaItem{LockedFields: []int{fieldNameLocked}}
t.Run("uses request locks when provided", func(t *testing.T) {
unlocked := []int{1}
upd := &MetadataUpdate{LockedFields: &unlocked}
if titleLockedForAdminUpdate(item, upd) {
t.Fatal("expected title unlocked from request locked_fields")
}
})
t.Run("falls back to stored locks when request omits locked_fields", func(t *testing.T) {
upd := &MetadataUpdate{}
if !titleLockedForAdminUpdate(item, upd) {
t.Fatal("expected title locked from stored locked_fields")
}
})
t.Run("request can lock title when stored is unlocked", func(t *testing.T) {
unlockedItem := &models.MediaItem{LockedFields: []int{}}
locked := []int{fieldNameLocked}
upd := &MetadataUpdate{LockedFields: &locked}
if !titleLockedForAdminUpdate(unlockedItem, upd) {
t.Fatal("expected title locked from request locked_fields")
}
})
}