40 lines
945 B
JavaScript
40 lines
945 B
JavaScript
"use strict";
|
|
|
|
const assert = require("node:assert/strict");
|
|
const test = require("node:test");
|
|
|
|
const { parseFrpConfig, renderParsedFrpConfig } = require("../src/cli");
|
|
|
|
test("parses and renders frp proxy sections", () => {
|
|
const parsed = parseFrpConfig(`server_addr = "81.70.134.9"
|
|
server_port = 15443
|
|
token = "secret"
|
|
|
|
[ssh]
|
|
type = "tcp"
|
|
local_ip = "127.0.0.1"
|
|
local_port = 22
|
|
remote_port = 17227
|
|
`);
|
|
|
|
assert.equal(parsed.sections.get("ssh").values.local_port, 22);
|
|
assert.equal(parsed.sections.get("ssh").values.remote_port, 17227);
|
|
|
|
parsed.sections.set("mysql", {
|
|
name: "mysql",
|
|
values: {
|
|
type: "tcp",
|
|
local_ip: "127.0.0.1",
|
|
local_port: 3306,
|
|
remote_port: 33061,
|
|
},
|
|
});
|
|
|
|
const rendered = renderParsedFrpConfig(parsed);
|
|
|
|
assert.match(rendered, /\[ssh]/);
|
|
assert.match(rendered, /local_port = 22/);
|
|
assert.match(rendered, /\[mysql]/);
|
|
assert.match(rendered, /remote_port = 33061/);
|
|
});
|