- /permissions, /allowed-tools, /settings permissions를 동일 권한 상태 모델로 통합 - 권한 공통 처리 헬퍼 추가: 모드 적용(ask/auto/deny), 상태 요약 텍스트, 팝업 오픈 경로 통일 - /allowed-tools에서도 ask|auto|deny|status를 일관 동작으로 지원 - /mcp login/logout 및 reset 인증 초기화 반영 상태를 문맥에 맞게 유지 - 좌측/퀵 스트립 단순화 2차: 실패 필터는 rich 표현 레벨에서만 노출, balanced/simple 비노출 - 루프 복구 테스트 보강: unknown/disallowed/no-progress 혼합 관점 회귀 테스트 추가 - 문서 동기화: DEVELOPMENT.md, AGENT_ROADMAP.md에 2026-04-04 추가 진행 이력 반영 - 품질 게이트 확인: build 경고/오류 0, 전체 테스트 421 통과
This commit is contained in:
@@ -24,6 +24,8 @@ public class ChatWindowSlashPolicyTests
|
||||
[InlineData("add chrome :: stdio node server.js", "add", "chrome :: stdio node server.js")]
|
||||
[InlineData("remove all", "remove", "all")]
|
||||
[InlineData("reset", "reset", "")]
|
||||
[InlineData("login chrome token-123", "login", "chrome token-123")]
|
||||
[InlineData("logout all", "logout", "all")]
|
||||
[InlineData("status", "status", "")]
|
||||
public void ParseMcpAction_ShouldParseExpected(string displayText, string expectedAction, string expectedTarget)
|
||||
{
|
||||
@@ -46,6 +48,18 @@ public class ChatWindowSlashPolicyTests
|
||||
argument.Should().Be(expectedArgument);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("/allowed-tools", "open", "")]
|
||||
[InlineData("status", "status", "")]
|
||||
[InlineData("ask", "ask", "")]
|
||||
public void ParseGenericAction_ForAllowedTools_ShouldParseExpected(string displayText, string expectedAction, string expectedArgument)
|
||||
{
|
||||
var (action, argument) = ChatWindow.ParseGenericAction(displayText, "/allowed-tools");
|
||||
|
||||
action.Should().Be(expectedAction);
|
||||
argument.Should().Be(expectedArgument);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData(false, "stdio", true, false, null, "Disabled")]
|
||||
[InlineData(true, "stdio", false, false, null, "Enabled")]
|
||||
@@ -119,4 +133,23 @@ public class ChatWindowSlashPolicyTests
|
||||
|
||||
tokens.Should().ContainInOrder("stdio", "C:\\\\Program Files\\\\node.exe", "server path.js", "--flag");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseMcpLoginTarget_ShouldParseServerAndToken()
|
||||
{
|
||||
var (success, server, token, error) = ChatWindow.ParseMcpLoginTarget("chrome abc.def.123");
|
||||
|
||||
success.Should().BeTrue(error);
|
||||
server.Should().Be("chrome");
|
||||
token.Should().Be("abc.def.123");
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParseMcpLoginTarget_ShouldFailWhenTokenMissing()
|
||||
{
|
||||
var (success, _, _, error) = ChatWindow.ParseMcpLoginTarget("chrome");
|
||||
|
||||
success.Should().BeFalse();
|
||||
error.Should().Contain("토큰");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user