feat: Add HTTP server/client E2E test for net plugin

- Implement full HTTP flow test: server → client → accept → respond → readBody
- All HTTP Box types working correctly (HttpServerBox, HttpClientBox, HttpRequestBox, HttpResponseBox)
- Handle type encoding for plugin method arguments working properly
- Test validates complete HTTP request/response cycle
- Net plugin E2E test passing 

HTTPネットワークプラグインのE2Eテスト追加
- サーバー起動からレスポンス読み取りまでの完全なフロー検証
- Handle型引数のTLVエンコーディングも正常動作
- 非同期HTTPフローの完全動作確認

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Moe Charm
2025-08-21 22:25:42 +09:00
parent da716addc8
commit eae7f54b13
6 changed files with 452 additions and 2 deletions

View File

@ -412,6 +412,11 @@ impl PluginBoxV2 {
return Err(BidError::InvalidArgs);
}
}
"int" | "i32" => {
if a.as_any().downcast_ref::<IntegerBox>().is_none() {
return Err(BidError::InvalidArgs);
}
}
_ => {
// Unsupported kind in this minimal implementation
return Err(BidError::InvalidArgs);
@ -419,8 +424,10 @@ impl PluginBoxV2 {
}
}
crate::config::nyash_toml_v2::ArgDecl::Name(_) => {
// Back-compat: expect string
if a.as_any().downcast_ref::<StringBox>().is_none() {
// Back-compat: allow common primitives (string or int)
let is_string = a.as_any().downcast_ref::<StringBox>().is_some();
let is_int = a.as_any().downcast_ref::<IntegerBox>().is_some();
if !(is_string || is_int) {
return Err(BidError::InvalidArgs);
}
}