892f39401c
- Add NewSessionScenario that walks the Telegram wizard: single game, title, skip description/cover, D&D 5e, 4h, datetime, capacity, online format, join link, public visibility, publish, confirm - Add ClickInlineButtonAsync / ClickInlineButtonByTextAsync to TelegramUserClient - Add local WizardCallback/Step constants mirroring GmRelay.Shared wizard wire format - Program.cs now runs full flow: group setup + /newsession + cleanup Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
37 lines
1.3 KiB
C#
37 lines
1.3 KiB
C#
namespace GmRelay.E2E.Runner;
|
|
|
|
/// <summary>
|
|
/// Mirrors the wire format used by GmRelay.Shared.Features.Sessions.CreateSession.Wizard.WizardCallbackData.
|
|
/// Kept local to avoid a project reference to GmRelay.Shared from the standalone E2E runner.
|
|
/// </summary>
|
|
public static class WizardCallback
|
|
{
|
|
public const string Prefix = "wizard";
|
|
|
|
public static string Choice(string step, string choice) => $"{Prefix}:{step}:{choice}";
|
|
|
|
public static string Back() => $"{Prefix}:back";
|
|
|
|
public static string Cancel() => $"{Prefix}:cancel";
|
|
|
|
public static string Create() => $"{Prefix}:create";
|
|
}
|
|
|
|
public static class WizardStep
|
|
{
|
|
public const string Type = "Type";
|
|
public const string Title = "Title";
|
|
public const string Description = "Description";
|
|
public const string Cover = "Cover";
|
|
public const string System = "System";
|
|
public const string Duration = "Duration";
|
|
public const string DateTime = "DateTime";
|
|
public const string Capacity = "Capacity";
|
|
public const string Format = "Format";
|
|
public const string Location = "Location";
|
|
public const string Visibility = "Visibility";
|
|
public const string PickClub = "PickClub";
|
|
public const string Publish = "Publish";
|
|
public const string Confirm = "Confirm";
|
|
}
|