signaller/internal/backends/memory/rooms_test.go

106 lines
2.4 KiB
Go
Raw Normal View History

package memory
import (
"testing"
"github.com/nxshock/signaller/internal/models/createroom"
"github.com/stretchr/testify/assert"
)
func TestCreateRoom(t *testing.T) {
backend := NewBackend("localhost")
user, _, err := backend.Register("user1", "", "")
assert.Nil(t, err)
request := createroom.Request{
RoomAliasName: "room1",
Name: "room1",
Topic: "topic"}
2019-07-21 11:52:32 +00:00
room, err := user.CreateRoom(request)
assert.Nil(t, err)
assert.Equal(t, request.RoomAliasName, room.AliasName())
assert.Equal(t, request.Name, room.Name())
assert.Equal(t, request.Topic, room.Topic())
assert.Equal(t, user.ID(), room.Creator().ID())
assert.Equal(t, 1, len(backend.rooms))
}
func TestCreateAlreadyExistingRoom(t *testing.T) {
backend := NewBackend("localhost")
user, _, _ := backend.Register("user1", "", "")
request := createroom.Request{
RoomAliasName: "room1",
Name: "room1",
Topic: "topic"}
2019-07-21 11:52:32 +00:00
_, err := user.CreateRoom(request)
assert.Nil(t, err)
2019-07-21 11:52:32 +00:00
_, err = user.CreateRoom(request)
assert.NotNil(t, err)
}
func TestSetRoomTopic(t *testing.T) {
backend := NewBackend("localhost")
user, _, _ := backend.Register("user1", "", "")
request := createroom.Request{
RoomAliasName: "room1",
Name: "room1",
Topic: "topic"}
2019-07-21 11:52:32 +00:00
room, _ := user.CreateRoom(request)
var newTopic = "new topic"
err := user.SetTopic(room, newTopic)
assert.Nil(t, err)
assert.Equal(t, newTopic, room.Topic())
2019-07-21 12:08:16 +00:00
assert.Equal(t, 5, len(room.Events())) // TODO: check start event count
}
func TestSetRoomTopicWithnprivelegedUser(t *testing.T) {
backend := NewBackend("localhost")
creator, _, _ := backend.Register("user1", "", "")
user2, _, _ := backend.Register("user2", "", "")
request := createroom.Request{
RoomAliasName: "room1",
Name: "room1",
Topic: "topic"}
2019-07-21 11:52:32 +00:00
room, _ := creator.CreateRoom(request)
var newTopic = "new topic"
err := user2.SetTopic(room, newTopic)
assert.NotNil(t, err)
}
2019-07-22 13:58:18 +00:00
func TestLeaveRoom(t *testing.T) {
backend := NewBackend("localhost")
user, _, _ := backend.Register("user1", "", "")
request := createroom.Request{
RoomAliasName: "room1",
Name: "room1",
Topic: "topic"}
room, _ := user.CreateRoom(request)
assert.Equal(t, 1, len(room.(*Room).joined))
err := user.LeaveRoom(room)
assert.Equal(t, 0, len(room.(*Room).joined))
// Try to leave room again must throw error
err = user.LeaveRoom(room)
assert.NotNil(t, err)
}