mirror of
https://github.com/certd/certd.git
synced 2026-07-05 19:37:34 +08:00
chore(nettest): 修复跨平台端口测试匹配逻辑
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import assert from "assert";
|
||||
import esmock from "esmock";
|
||||
|
||||
describe("NetTestService.telnet", () => {
|
||||
it("treats nc succeeded output as a successful port connection", async () => {
|
||||
const { NetTestService } = await esmock("./nettest-service.js", {
|
||||
"@certd/basic": {
|
||||
http: {},
|
||||
logger: {
|
||||
error() {},
|
||||
},
|
||||
utils: {
|
||||
sp: {
|
||||
async spawn() {
|
||||
return "Connection to baidu.com (110.242.74.102) 443 port [tcp/*] succeeded!";
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
});
|
||||
const service = new NetTestService();
|
||||
(service as any).isWindows = () => false;
|
||||
|
||||
const result = await service.telnet("baidu.com", 443);
|
||||
|
||||
assert.equal(result.success, true);
|
||||
assert.equal(result.message, "端口连接测试成功");
|
||||
});
|
||||
});
|
||||
@@ -40,7 +40,11 @@ export class NetTestService {
|
||||
});
|
||||
|
||||
// 判断测试是否成功
|
||||
const success = this.isWindows() ? output.includes("端口连接成功") : output.includes(" open");
|
||||
const normalizedOutput = output.toLowerCase();
|
||||
const success = this.isWindows()
|
||||
? normalizedOutput.includes("端口连接成功")
|
||||
: normalizedOutput.includes("succeeded!") || normalizedOutput.includes("connected to") || normalizedOutput.includes(" open");
|
||||
|
||||
|
||||
// 处理结果
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user