import assert from "node:assert/strict"; import { mkdirSync, mkdtempSync, symlinkSync, writeFileSync } from "node:fs"; import { tmpdir } from "node:os"; import { join, resolve } from "node:path"; import test from "node:test"; import { pathToFileURL } from "node:url"; import { isDirectEntrypoint } from "../src/entrypoint.js"; test("packaged CLI entrypoint recognizes an npm-style symlink", () => { const root = mkdtempSync(join(tmpdir(), "ding-entrypoint-")); const target = join(root, "dist", "bridge.js"); const bin = join(root, "dingtalk-approval-bridge"); mkdirSync(join(root, "dist")); writeFileSync(target, "", { flag: "w" }); symlinkSync(target, bin); assert.equal(isDirectEntrypoint(pathToFileURL(target).href, bin), true); assert.equal(isDirectEntrypoint(pathToFileURL(target).href, join(root, "other")), false); assert.equal(isDirectEntrypoint(pathToFileURL(target).href, undefined), false); assert.equal(resolve(target), target); });