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) } }