Files
gochat/internal/service/folder_service_test.go.bak
T
2026-06-04 15:44:48 +08:00

89 lines
2.5 KiB
Plaintext

package service
import (
"context"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestFolderService_Create(t *testing.T) {
db, _, svc := setupFolderService(t)
account := createTestAccount(t, db)
portal := createTestPortal(t, db, account.ID)
folder, err := svc.Create(context.Background(), portal.ID, &CreateFolderRequest{
Name: "My Folder",
Slug: "my-folder",
Position: 1,
})
require.NoError(t, err)
assert.Equal(t, "My Folder", folder.Name)
assert.Equal(t, "my-folder", folder.Slug)
assert.Equal(t, portal.ID, folder.PortalID)
}
func TestFolderService_GetByID(t *testing.T) {
db, _, svc := setupFolderService(t)
account := createTestAccount(t, db)
portal := createTestPortal(t, db, account.ID)
folder := createTestFolder(t, db, portal.ID)
found, err := svc.GetByID(context.Background(), folder.ID)
require.NoError(t, err)
assert.Equal(t, folder.Name, found.Name)
}
func TestFolderService_GetByID_NotFound(t *testing.T) {
_, _, svc := setupFolderService(t)
_, err := svc.GetByID(context.Background(), 99999)
assert.Error(t, err)
}
func TestFolderService_Update(t *testing.T) {
db, _, svc := setupFolderService(t)
account := createTestAccount(t, db)
portal := createTestPortal(t, db, account.ID)
folder := createTestFolder(t, db, portal.ID)
pos := 5
updated, err := svc.Update(context.Background(), folder.ID, &UpdateFolderRequest{
Name: "Updated Folder",
Position: &pos,
})
require.NoError(t, err)
assert.Equal(t, "Updated Folder", updated.Name)
assert.Equal(t, 5, updated.Position)
}
func TestFolderService_Delete(t *testing.T) {
db, _, svc := setupFolderService(t)
account := createTestAccount(t, db)
portal := createTestPortal(t, db, account.ID)
folder := createTestFolder(t, db, portal.ID)
err := svc.Delete(context.Background(), folder.ID)
require.NoError(t, err)
_, err = svc.GetByID(context.Background(), folder.ID)
assert.Error(t, err)
}
func TestFolderService_ListByPortalID(t *testing.T) {
db, _, svc := setupFolderService(t)
account := createTestAccount(t, db)
portal := createTestPortal(t, db, account.ID)
_, err := svc.Create(context.Background(), portal.ID, &CreateFolderRequest{Name: "F1", Slug: "f1"})
require.NoError(t, err)
_, err = svc.Create(context.Background(), portal.ID, &CreateFolderRequest{Name: "F2", Slug: "f2"})
require.NoError(t, err)
folders, count, err := svc.ListByPortalID(context.Background(), portal.ID, 0, 10)
require.NoError(t, err)
assert.Equal(t, int64(2), count)
assert.Len(t, folders, 2)
}