mirror of
https://github.com/pocketbase/pocketbase.git
synced 2024-11-24 17:07:00 +02:00
85 lines
1.6 KiB
Go
85 lines
1.6 KiB
Go
package core_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/pocketbase/pocketbase/core"
|
|
"github.com/pocketbase/pocketbase/models"
|
|
"github.com/pocketbase/pocketbase/tools/list"
|
|
)
|
|
|
|
func TestBaseCollectionEventTags(t *testing.T) {
|
|
c1 := new(models.Collection)
|
|
|
|
c2 := new(models.Collection)
|
|
c2.Id = "a"
|
|
|
|
c3 := new(models.Collection)
|
|
c3.Name = "b"
|
|
|
|
c4 := new(models.Collection)
|
|
c4.Id = "a"
|
|
c4.Name = "b"
|
|
|
|
scenarios := []struct {
|
|
collection *models.Collection
|
|
expectedTags []string
|
|
}{
|
|
{c1, []string{}},
|
|
{c2, []string{"a"}},
|
|
{c3, []string{"b"}},
|
|
{c4, []string{"a", "b"}},
|
|
}
|
|
|
|
for i, s := range scenarios {
|
|
event := new(core.BaseCollectionEvent)
|
|
event.Collection = s.collection
|
|
|
|
tags := event.Tags()
|
|
|
|
if len(s.expectedTags) != len(tags) {
|
|
t.Fatalf("[%d] Expected %v tags, got %v", i, s.expectedTags, tags)
|
|
}
|
|
|
|
for _, tag := range s.expectedTags {
|
|
if !list.ExistInSlice(tag, tags) {
|
|
t.Fatalf("[%d] Expected %v tags, got %v", i, s.expectedTags, tags)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestModelEventTags(t *testing.T) {
|
|
m1 := new(models.Admin)
|
|
|
|
c := new(models.Collection)
|
|
c.Id = "a"
|
|
c.Name = "b"
|
|
m2 := models.NewRecord(c)
|
|
|
|
scenarios := []struct {
|
|
model models.Model
|
|
expectedTags []string
|
|
}{
|
|
{m1, []string{"_admins"}},
|
|
{m2, []string{"a", "b"}},
|
|
}
|
|
|
|
for i, s := range scenarios {
|
|
event := new(core.ModelEvent)
|
|
event.Model = s.model
|
|
|
|
tags := event.Tags()
|
|
|
|
if len(s.expectedTags) != len(tags) {
|
|
t.Fatalf("[%d] Expected %v tags, got %v", i, s.expectedTags, tags)
|
|
}
|
|
|
|
for _, tag := range s.expectedTags {
|
|
if !list.ExistInSlice(tag, tags) {
|
|
t.Fatalf("[%d] Expected %v tags, got %v", i, s.expectedTags, tags)
|
|
}
|
|
}
|
|
}
|
|
}
|