36 lines
1.0 KiB
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")
|
|
}
|
|
})
|
|
}
|