| 1 | test("widthInTerminal", () => { |
| 2 | assert.equal( |
| 3 | ansi.widthInTerminal("snowmobile"), |
| 4 | 10, |
| 5 | ); |
| 6 | assert.equal( |
| 7 | ansi.widthInTerminal("🏳️⚧️ " + ansi.style(ansi.bold, "rights")), |
| 8 | 9, |
| 9 | ); |
| 10 | }); |
| 11 | test("trimForTerminal", () => { |
| 12 | assert.equal( |
| 13 | ansi.trimForTerminal("snowmobile", 6), |
| 14 | "snowmo", |
| 15 | ); |
| 16 | assert.equal( |
| 17 | ansi.trimForTerminal("🏳️⚧️ " + ansi.style(ansi.bold, "rights"), 5), |
| 18 | "🏳️⚧️ " + ansi.bold + "ri" + ansi.reset, |
| 19 | ); |
| 20 | }); |
| 21 | test("toHtml", () => { |
| 22 | assert.equal( |
| 23 | ansi.toHtml(`${ansi.fgRed}<a>\nb${ansi.fgReset} c`), |
| 24 | "<span style=\"color:var(--ansi1);\">&lt;a&gt;</span>\n<span style=\"color:var(--ansi1);\">b</span> c", |
| 25 | ); |
| 26 | // bold and dim are separate, and inverse swaps colors, the default ones too |
| 27 | assert.equal(ansi.toHtml("\x1b[1;2mx"), "<span style=\"font-weight:bold;opacity:.65;\">x</span>"); |
| 28 | assert.equal( |
| 29 | ansi.toHtml(`${ansi.inverse}a${ansi.fgRed}b${ansi.resetInverse}c`), |
| 30 | "<span style=\"color:Canvas;background:CanvasText;\">a</span>" |
| 31 | + "<span style=\"color:Canvas;background:var(--ansi1);\">b</span><span style=\"color:var(--ansi1);\">c</span>", |
| 32 | ); |
| 33 | }); |
| 34 | |
| 35 | import assert from "node:assert"; |
| 36 | import { test } from "vitest"; |
| 37 | import * as ansi from "./ansi.ts"; |