Skip to content

Commit 51552fa

Browse files
stephentoubCopilot
andcommitted
Fix session start subscription tests
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
1 parent 39fe821 commit 51552fa

3 files changed

Lines changed: 29 additions & 26 deletions

File tree

‎dotnet/test/E2E/ScenarioTestingSessionSetupE2ETests.cs‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -290,19 +290,22 @@ public async Task Should_Preserve_Omitted_Versus_Disabled_Scenario_Semantics()
290290
}
291291

292292
[Fact]
293-
public async Task Should_Use_Preallocated_Id_For_First_Subscribed_Event()
293+
public async Task Should_Use_Preallocated_Id_For_Subscribed_Session_Start_Event()
294294
{
295295
var requestedSessionId = Guid.NewGuid().ToString();
296-
var firstEvent = new TaskCompletionSource<SessionEvent>(TaskCreationOptions.RunContinuationsAsynchronously);
296+
var sessionStarted = new TaskCompletionSource<SessionStartEvent>(TaskCreationOptions.RunContinuationsAsynchronously);
297297

298298
await using var session = await CreateSessionAsync(new SessionConfig
299299
{
300300
SessionId = requestedSessionId,
301-
OnEvent = evt => firstEvent.TrySetResult(evt),
301+
OnEvent = evt =>
302+
{
303+
if (evt is SessionStartEvent start)
304+
sessionStarted.TrySetResult(start);
305+
},
302306
});
303307

304-
var observed = await firstEvent.Task.WaitAsync(TestTimeout);
305-
var start = Assert.IsType<SessionStartEvent>(observed);
308+
var start = await sessionStarted.Task.WaitAsync(TestTimeout);
306309
Assert.Equal(requestedSessionId, session.SessionId);
307310
Assert.Equal(requestedSessionId, start.Data.SessionId);
308311
}

‎python/e2e/test_scenario_cloud_e2e.py‎

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,18 @@ def on_event(event) -> None:
7070
finally:
7171
await client.stop()
7272

73-
async def test_should_route_first_cloud_event_for_server_assigned_session_id(
73+
async def test_should_route_cloud_session_start_for_server_assigned_session_id(
7474
self,
7575
ctx: E2ETestContext,
7676
):
7777
client, _capture_path = create_scenario_client(ctx, "cloud")
78-
events = []
79-
first_event_received = asyncio.Event()
78+
start_events = []
79+
session_start_received = asyncio.Event()
8080

8181
def on_event(event) -> None:
82-
events.append(event)
83-
first_event_received.set()
82+
if isinstance(event.data, SessionStartData):
83+
start_events.append(event)
84+
session_start_received.set()
8485

8586
try:
8687
session = await client.create_session(
@@ -95,13 +96,12 @@ def on_event(event) -> None:
9596
on_permission_request=PermissionHandler.approve_all,
9697
)
9798
try:
98-
await asyncio.wait_for(first_event_received.wait(), timeout=5)
99+
await asyncio.wait_for(session_start_received.wait(), timeout=5)
99100
assert session.session_id == "cloud-runtime-session"
100-
assert len(events) == 1
101-
assert isinstance(events[0].data, SessionStartData)
102-
assert events[0].data.session_id == session.session_id
103-
assert events[0].data.producer == "scenario-fake-cli"
104-
assert events[0].data.remote_steerable is False
101+
assert len(start_events) == 1
102+
assert start_events[0].data.session_id == session.session_id
103+
assert start_events[0].data.producer == "scenario-fake-cli"
104+
assert start_events[0].data.remote_steerable is False
105105
finally:
106106
await session.disconnect()
107107
finally:

‎python/e2e/test_scenario_session_setup_e2e.py‎

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,18 @@
1616

1717

1818
class TestScenarioSessionSetup:
19-
async def test_should_route_first_subscribed_event_for_preallocated_session_id(
19+
async def test_should_route_subscribed_session_start_for_preallocated_session_id(
2020
self,
2121
ctx: E2ETestContext,
2222
):
2323
client, _capture_path = create_scenario_client(ctx, "preallocated-event")
24-
events = []
25-
event_received = asyncio.Event()
24+
start_events = []
25+
session_start_received = asyncio.Event()
2626

2727
def on_event(event) -> None:
28-
events.append(event)
29-
event_received.set()
28+
if isinstance(event.data, SessionStartData):
29+
start_events.append(event)
30+
session_start_received.set()
3031

3132
try:
3233
session = await client.create_session(
@@ -35,12 +36,11 @@ def on_event(event) -> None:
3536
on_permission_request=PermissionHandler.approve_all,
3637
)
3738
try:
38-
await asyncio.wait_for(event_received.wait(), timeout=5)
39+
await asyncio.wait_for(session_start_received.wait(), timeout=5)
3940
assert session.session_id == "scenario-session"
40-
assert len(events) == 1
41-
assert isinstance(events[0].data, SessionStartData)
42-
assert events[0].data.session_id == "scenario-session"
43-
assert events[0].data.producer == "scenario-fake-cli"
41+
assert len(start_events) == 1
42+
assert start_events[0].data.session_id == "scenario-session"
43+
assert start_events[0].data.producer == "scenario-fake-cli"
4444
finally:
4545
await session.disconnect()
4646
finally:

0 commit comments

Comments
 (0)