mirror of
https://github.com/livekit/livekit.git
synced 2026-10-23 06:32:27 +00:00
roommanager tests
This commit is contained in:
1 parent
28690b6b08
commit
9897412473
4 files changed
+95
-4
No files matched your search
@@ -29,7 +29,7 @@ var (
|
||||
rtcHostFlag,
|
||||
&cli.StringFlag{
|
||||
Name: "token",
|
||||
Usage: "room token, not required in dev mode",
|
||||
Usage: "access token, not required in dev mode",
|
||||
},
|
||||
&cli.StringFlag{
|
||||
Name: "name",
|
||||
|
||||
@@ -4,6 +4,7 @@ import "errors"
|
||||
|
||||
var (
|
||||
ErrRoomIdMissing = errors.New("room is not passed in")
|
||||
ErrInvalidRoomName = errors.New("room must have a unique name")
|
||||
ErrRoomNotFound = errors.New("requested room does not exist")
|
||||
ErrPermissionDenied = errors.New("no permissions to access the room")
|
||||
)
|
||||
+11
-3
@@ -65,13 +65,21 @@ func (m *RoomManager) GetRoomWithConstraint(idOrName string, onlyName string) (*
|
||||
return rm, nil
|
||||
}
|
||||
|
||||
func (m *RoomManager) CreateRoom(req *livekit.CreateRoomRequest) (r *Room, err error) {
|
||||
r = NewRoomForRequest(req, &m.config)
|
||||
func (m *RoomManager) CreateRoom(req *livekit.CreateRoomRequest) (*Room, error) {
|
||||
if req.Name == "" {
|
||||
return nil, ErrInvalidRoomName
|
||||
}
|
||||
r := NewRoomForRequest(req, &m.config)
|
||||
m.roomLock.Lock()
|
||||
defer m.roomLock.Unlock()
|
||||
|
||||
if m.roomsByName[req.Name] != nil {
|
||||
return nil, ErrInvalidRoomName
|
||||
}
|
||||
|
||||
m.rooms[r.Sid] = r
|
||||
m.roomsByName[r.Name] = r
|
||||
return
|
||||
return r, nil
|
||||
}
|
||||
|
||||
func (m *RoomManager) DeleteRoom(idOrName string) error {
|
||||
|
||||
@@ -1 +1,83 @@
|
||||
package rtc_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
|
||||
"github.com/livekit/livekit-server/pkg/config"
|
||||
"github.com/livekit/livekit-server/pkg/rtc"
|
||||
"github.com/livekit/livekit-server/proto/livekit"
|
||||
)
|
||||
|
||||
func TestRoomManager_CreateRoom(t *testing.T) {
|
||||
man := newRoomManager(t)
|
||||
|
||||
t.Run("creation and duplicates", func(t *testing.T) {
|
||||
r := &livekit.CreateRoomRequest{Name: "basic"}
|
||||
rm, err := man.CreateRoom(r)
|
||||
assert.NoError(t, err)
|
||||
assert.NotNil(t, rm)
|
||||
|
||||
rm, err = man.CreateRoom(r)
|
||||
assert.Equal(t, rtc.ErrInvalidRoomName, err)
|
||||
assert.Nil(t, rm)
|
||||
})
|
||||
|
||||
t.Run("name is required", func(t *testing.T) {
|
||||
_, err := man.CreateRoom(&livekit.CreateRoomRequest{})
|
||||
assert.Equal(t, rtc.ErrInvalidRoomName, err)
|
||||
})
|
||||
}
|
||||
|
||||
func TestRoomManager_GetRoomByName(t *testing.T) {
|
||||
man := newRoomManager(t)
|
||||
_, err := man.CreateRoom(&livekit.CreateRoomRequest{
|
||||
Name: "hello",
|
||||
})
|
||||
assert.NoError(t, err)
|
||||
|
||||
rm := man.GetRoom("hello")
|
||||
assert.Equal(t, "hello", rm.Name)
|
||||
}
|
||||
|
||||
func TestRoomManager_GetRoomWithConstraint(t *testing.T) {
|
||||
man := newRoomManager(t)
|
||||
rm, _ := man.CreateRoom(&livekit.CreateRoomRequest{
|
||||
Name: "hello",
|
||||
})
|
||||
|
||||
t.Run("no constraint, get by id", func(t *testing.T) {
|
||||
r, err := man.GetRoomWithConstraint(rm.Sid, "")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, r, rm)
|
||||
})
|
||||
|
||||
t.Run("no constraint, get by name", func(t *testing.T) {
|
||||
r, err := man.GetRoomWithConstraint(rm.Name, "")
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, r, rm)
|
||||
})
|
||||
|
||||
t.Run("no constraint, room doesn't exist", func(t *testing.T) {
|
||||
_, err := man.GetRoomWithConstraint("wtf", "")
|
||||
assert.Equal(t, rtc.ErrRoomNotFound, err)
|
||||
})
|
||||
|
||||
t.Run("constraint, no name", func(t *testing.T) {
|
||||
r, err := man.GetRoomWithConstraint("", rm.Name)
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, r, rm)
|
||||
})
|
||||
|
||||
t.Run("constraint does not match name", func(t *testing.T) {
|
||||
_, err := man.GetRoomWithConstraint(rm.Name, "anotherroom")
|
||||
assert.Equal(t, rtc.ErrPermissionDenied, err)
|
||||
})
|
||||
}
|
||||
|
||||
func newRoomManager(t *testing.T) *rtc.RoomManager {
|
||||
man, err := rtc.NewRoomManager(config.RTCConfig{}, "1.2.3.4")
|
||||
assert.NoError(t, err)
|
||||
return man
|
||||
}
|
||||
Reference in new issue
Block a user