96 lines
2.1 KiB
Go
96 lines
2.1 KiB
Go
|
|
package services
|
||
|
|
|
||
|
|
import (
|
||
|
|
"testing"
|
||
|
|
"time"
|
||
|
|
|
||
|
|
"attune-heart-therapy/internal/config"
|
||
|
|
)
|
||
|
|
|
||
|
|
func TestJitsiService_CreateMeeting(t *testing.T) {
|
||
|
|
// Setup test config
|
||
|
|
cfg := &config.JitsiConfig{
|
||
|
|
BaseURL: "https://meet.jit.si",
|
||
|
|
}
|
||
|
|
|
||
|
|
service := NewJitsiService(cfg)
|
||
|
|
|
||
|
|
// Test creating a meeting
|
||
|
|
bookingID := uint(123)
|
||
|
|
scheduledAt := time.Now().Add(24 * time.Hour)
|
||
|
|
|
||
|
|
meeting, err := service.CreateMeeting(bookingID, scheduledAt)
|
||
|
|
if err != nil {
|
||
|
|
t.Fatalf("Expected no error, got %v", err)
|
||
|
|
}
|
||
|
|
|
||
|
|
if meeting == nil {
|
||
|
|
t.Fatal("Expected meeting to be created, got nil")
|
||
|
|
}
|
||
|
|
|
||
|
|
if meeting.RoomID == "" {
|
||
|
|
t.Error("Expected room ID to be generated")
|
||
|
|
}
|
||
|
|
|
||
|
|
if meeting.RoomURL == "" {
|
||
|
|
t.Error("Expected room URL to be generated")
|
||
|
|
}
|
||
|
|
|
||
|
|
// Verify URL format
|
||
|
|
expectedPrefix := "https://meet.jit.si/"
|
||
|
|
if len(meeting.RoomURL) <= len(expectedPrefix) {
|
||
|
|
t.Error("Expected room URL to contain room ID")
|
||
|
|
}
|
||
|
|
|
||
|
|
if meeting.RoomURL[:len(expectedPrefix)] != expectedPrefix {
|
||
|
|
t.Errorf("Expected room URL to start with %s, got %s", expectedPrefix, meeting.RoomURL)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestJitsiService_GetMeetingURL(t *testing.T) {
|
||
|
|
cfg := &config.JitsiConfig{
|
||
|
|
BaseURL: "https://meet.jit.si",
|
||
|
|
}
|
||
|
|
|
||
|
|
service := NewJitsiService(cfg)
|
||
|
|
|
||
|
|
roomID := "test-room-123"
|
||
|
|
url := service.GetMeetingURL(roomID)
|
||
|
|
|
||
|
|
expected := "https://meet.jit.si/test-room-123"
|
||
|
|
if url != expected {
|
||
|
|
t.Errorf("Expected URL %s, got %s", expected, url)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestJitsiService_GetMeetingURL_DefaultBaseURL(t *testing.T) {
|
||
|
|
// Test with empty base URL (should use default)
|
||
|
|
cfg := &config.JitsiConfig{
|
||
|
|
BaseURL: "",
|
||
|
|
}
|
||
|
|
|
||
|
|
service := NewJitsiService(cfg)
|
||
|
|
|
||
|
|
roomID := "test-room-456"
|
||
|
|
url := service.GetMeetingURL(roomID)
|
||
|
|
|
||
|
|
expected := "https://meet.jit.si/test-room-456"
|
||
|
|
if url != expected {
|
||
|
|
t.Errorf("Expected URL %s, got %s", expected, url)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func TestJitsiService_DeleteMeeting(t *testing.T) {
|
||
|
|
cfg := &config.JitsiConfig{
|
||
|
|
BaseURL: "https://meet.jit.si",
|
||
|
|
}
|
||
|
|
|
||
|
|
service := NewJitsiService(cfg)
|
||
|
|
|
||
|
|
// Test deleting a meeting (should not error)
|
||
|
|
err := service.DeleteMeeting("test-room-789")
|
||
|
|
if err != nil {
|
||
|
|
t.Errorf("Expected no error, got %v", err)
|
||
|
|
}
|
||
|
|
}
|