Files
OmniRoute/tests/unit/cli-clipboard.test.ts
diegosouzapw 7a2682efb5 feat(cli): fase 8.1/8.6/8.14 — spinner, open, clipboard e environment helpers
- spinner.mjs: withSpinner/shouldUseSpinner com suporte a quiet/output/CI/NO_COLOR
- open.mjs: comando `open` com 16 recursos, respeita ambientes restritos
- environment.mjs: detectRestrictedEnvironment/getEnvBanner (codespaces/wsl/gitpod/replit/ci)
- clipboard.mjs: copyToClipboard/isClipboardSupported (pbcopy/clip/xclip/xsel/wl-copy)
- check-env-doc-sync: vars de plataforma/OS adicionadas ao IGNORE_FROM_CODE
2026-05-15 03:00:52 -03:00

32 lines
1.1 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
test("clipboard.mjs pode ser importado sem erro", async () => {
const mod = await import("../../bin/cli/utils/clipboard.mjs");
assert.equal(typeof mod.copyToClipboard, "function");
assert.equal(typeof mod.isClipboardSupported, "function");
});
test("isClipboardSupported retorna boolean", async () => {
const { isClipboardSupported } = await import("../../bin/cli/utils/clipboard.mjs");
const result = isClipboardSupported();
assert.ok(typeof result === "boolean");
});
test("copyToClipboard retorna boolean (true em macOS/win, qualquer em Linux)", async () => {
const { copyToClipboard } = await import("../../bin/cli/utils/clipboard.mjs");
const result = copyToClipboard("test-text");
assert.ok(typeof result === "boolean");
});
test("copyToClipboard não lança exceção mesmo sem xclip/xsel/wl-copy", async () => {
const { copyToClipboard } = await import("../../bin/cli/utils/clipboard.mjs");
let threw = false;
try {
copyToClipboard("some text");
} catch {
threw = true;
}
assert.ok(!threw);
});