chore(nettest): 修复跨平台端口测试匹配逻辑

This commit is contained in:
xiaojunnuo
2026-06-16 00:15:42 +08:00
parent 1562d9de36
commit c278946771
4 changed files with 38 additions and 5 deletions
+1 -2
View File
@@ -15,8 +15,7 @@
"vitepress-plugin-lightbox": "^1.0.2"
},
"scripts": {
"start": "lerna bootstrap --hoist",
"start:server": "cd ./packages/ui/certd-server && pnpm start",
"start": "cd ./packages/ui/certd-server && pnpm start",
"devb": "lerna run dev-build",
"i-all": "lerna link && lerna exec npm install ",
"publish": "pnpm run prepublishOnly2 && lerna publish --force-publish=pro/plus-core --conventional-commits && pnpm run afterpublishOnly ",
+3 -2
View File
@@ -56,9 +56,7 @@ RUN apt-get update && \
WORKDIR /app/
COPY --from=builder /workspace/certd-server/ /app/
COPY ./patch/ssh2/*.js /app/node_modules/.pnpm/node_modules/ssh2/lib/protocol/
ENV LEGO_VERSION=4.30.1
ENV LEGO_DOWNLOAD_DIR=/app/tools/lego
@@ -81,6 +79,9 @@ RUN ARCH=$(uname -m) && \
ENV TZ=Asia/Shanghai
ENV NODE_ENV=production
ENV MIDWAY_SERVER_ENV=production
COPY --from=builder /workspace/certd-server/ /app/
COPY ./patch/ssh2/*.js /app/node_modules/.pnpm/node_modules/ssh2/lib/protocol/
CMD ["node", "--optimize-for-size", "./bootstrap.js"]
@@ -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 {