diff --git a/tools/est-test/PLAN.md b/tools/est-test/PLAN.md index 2e56faddc..c64ab7442 100644 --- a/tools/est-test/PLAN.md +++ b/tools/est-test/PLAN.md @@ -1,4 +1,6 @@ ## Codex · EST 독립 테스트 앱 (2026-11-04) +- [x] Tailscale 주소에서 독립 테스트 서버 접속 → 접속과 계산 요청 확인. + - 자체 검증: Tailscale IP에서 Edge 화면과 계산 POST 200, 다른 출처 403 확인. 다른 PC에서의 접속은 미확인. - [x] 표준시장단가 설계변경 내역·증감 화면·출력 구현 → 신규·삭제·연결 변경 시험. - 자체 검증: 표준 내역의 신규·삭제·연결 변경과 문서 기능 시험 21개 통과. Edge에서 증감·삭제 행·인쇄·내역 이동 확인. diff --git a/tools/est-test/server.cjs b/tools/est-test/server.cjs index 3fa0dcd4a..9feba17d1 100644 --- a/tools/est-test/server.cjs +++ b/tools/est-test/server.cjs @@ -9,7 +9,8 @@ const exchange = require("./exchange.cjs"); const { exportEstx } = require("./export-estx.cjs"); const jdl = require("./jdl.cjs"); const base = __dirname, - port = Number(process.env.EST_TEST_PORT || 5175); + port = Number(process.env.EST_TEST_PORT || 5175), + host = process.env.EST_TEST_HOST || "127.0.0.1"; const dataDirectory = process.env.EST_TEST_DATA_DIR || path.join(base, "data"); const scripts = [ "native-math.js", @@ -101,7 +102,12 @@ function list() { const server = http.createServer(async (req, res) => { try { const origin = req.headers.origin; - if (origin && origin !== `http://127.0.0.1:${port}` && origin !== `http://localhost:${port}`) { + if ( + origin && + origin !== `http://127.0.0.1:${port}` && + origin !== `http://localhost:${port}` && + origin !== `http://${host}:${port}` + ) { reply(res, 403, { error: "다른 사이트의 요청은 허용하지 않습니다." }); return; } @@ -265,5 +271,5 @@ server.on("error", (error) => { process.exitCode = 1; }); if (require.main === module) - server.listen(port, "127.0.0.1", () => console.log(`EST 독립 웹앱: http://127.0.0.1:${port}`)); + server.listen(port, host, () => console.log(`EST 독립 웹앱: http://${host}:${port}`)); module.exports = { server, calculate };