Skip to content

Commit d23f461

Browse files
committed
Add unit tests for SessionShutdownEvent and SkillInvokedEvent parsing
1 parent e1a3e12 commit d23f461

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

src/test/java/com/github/copilot/sdk/SessionEventParserTest.java

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,67 @@ void testParseSystemMessageEvent() {
701701
assertEquals("system.message", event.getType());
702702
}
703703

704+
@Test
705+
void testParseSessionShutdownEvent() {
706+
String json = """
707+
{
708+
"type": "session.shutdown",
709+
"data": {
710+
"shutdownType": "routine",
711+
"totalPremiumRequests": 5,
712+
"totalApiDurationMs": 1234.5,
713+
"sessionStartTime": 1612345678000,
714+
"codeChanges": {
715+
"linesAdded": 10,
716+
"linesRemoved": 3,
717+
"filesModified": ["file1.java", "file2.java"]
718+
},
719+
"modelMetrics": {},
720+
"currentModel": "gpt-4"
721+
}
722+
}
723+
""";
724+
725+
AbstractSessionEvent event = SessionEventParser.parse(json);
726+
assertNotNull(event);
727+
assertInstanceOf(SessionShutdownEvent.class, event);
728+
assertEquals("session.shutdown", event.getType());
729+
730+
SessionShutdownEvent shutdownEvent = (SessionShutdownEvent) event;
731+
assertEquals(SessionShutdownEvent.ShutdownType.ROUTINE, shutdownEvent.getData().getShutdownType());
732+
assertEquals(5, shutdownEvent.getData().getTotalPremiumRequests());
733+
assertEquals("gpt-4", shutdownEvent.getData().getCurrentModel());
734+
assertNotNull(shutdownEvent.getData().getCodeChanges());
735+
assertEquals(10, shutdownEvent.getData().getCodeChanges().getLinesAdded());
736+
}
737+
738+
@Test
739+
void testParseSkillInvokedEvent() {
740+
String json = """
741+
{
742+
"type": "skill.invoked",
743+
"data": {
744+
"name": "code-review",
745+
"path": "/path/to/skill",
746+
"content": "Skill instructions here",
747+
"allowedTools": ["view", "edit", "grep"]
748+
}
749+
}
750+
""";
751+
752+
AbstractSessionEvent event = SessionEventParser.parse(json);
753+
assertNotNull(event);
754+
assertInstanceOf(SkillInvokedEvent.class, event);
755+
assertEquals("skill.invoked", event.getType());
756+
757+
SkillInvokedEvent skillEvent = (SkillInvokedEvent) event;
758+
assertEquals("code-review", skillEvent.getData().getName());
759+
assertEquals("/path/to/skill", skillEvent.getData().getPath());
760+
assertEquals("Skill instructions here", skillEvent.getData().getContent());
761+
assertNotNull(skillEvent.getData().getAllowedTools());
762+
assertEquals(3, skillEvent.getData().getAllowedTools().size());
763+
}
764+
704765
// =========================================================================
705766
// Edge Cases
706767
// =========================================================================

0 commit comments

Comments
 (0)