From 5e5c623d8b93106229f4bd67017ff85062b1b423 Mon Sep 17 00:00:00 2001 From: Daniel Imms <2193314+Tyriar@users.noreply.github.com> Date: Wed, 24 Dec 2025 12:09:28 -0800 Subject: [PATCH] Create test ts project in ligatures addon --- .../LigaturesAddon.test.ts} | 14 +++++++---- .../{src => test}/parse.test.ts | 3 ++- addons/addon-ligatures/test/tsconfig.json | 23 +++++++++++++++++++ addons/addon-ligatures/tsconfig.json | 3 ++- 4 files changed, 36 insertions(+), 7 deletions(-) rename addons/addon-ligatures/{src/index.test.ts => test/LigaturesAddon.test.ts} (90%) rename addons/addon-ligatures/{src => test}/parse.test.ts (95%) create mode 100644 addons/addon-ligatures/test/tsconfig.json diff --git a/addons/addon-ligatures/src/index.test.ts b/addons/addon-ligatures/test/LigaturesAddon.test.ts similarity index 90% rename from addons/addon-ligatures/src/index.test.ts rename to addons/addon-ligatures/test/LigaturesAddon.test.ts index 1250e10e..ece5145c 100644 --- a/addons/addon-ligatures/src/index.test.ts +++ b/addons/addon-ligatures/test/LigaturesAddon.test.ts @@ -5,9 +5,13 @@ import * as path from 'path'; import { assert } from 'chai'; -import * as fontFinder from 'font-finder'; -import * as ligatureSupport from '.'; +// Use require to get a mutable module object (ESM imports create read-only bindings) +// eslint-disable-next-line @typescript-eslint/no-require-imports +const fontFinder = require('font-finder'); + +// eslint-disable-next-line @typescript-eslint/no-require-imports +const ligatureSupport = require('../out-esbuild/index'); const originalList = fontFinder.list; @@ -18,7 +22,7 @@ describe('LigaturesAddon', () => { const input = 'a -> b www c'; before(() => { - (fontFinder as any).list = () => Promise.resolve({ + fontFinder.list = () => Promise.resolve({ 'Fira Code': [{ path: path.join(__dirname, '../fonts/firaCode.otf'), style: fontFinder.Style.Regular, @@ -37,11 +41,11 @@ describe('LigaturesAddon', () => { type: fontFinder.Type.Monospace, weight: 400 }] - } as fontFinder.FontList); + }); }); after(() => { - (fontFinder as any).list = originalList; + fontFinder.list = originalList; }); beforeEach(() => { diff --git a/addons/addon-ligatures/src/parse.test.ts b/addons/addon-ligatures/test/parse.test.ts similarity index 95% rename from addons/addon-ligatures/src/parse.test.ts rename to addons/addon-ligatures/test/parse.test.ts index 99dec083..98932883 100644 --- a/addons/addon-ligatures/src/parse.test.ts +++ b/addons/addon-ligatures/test/parse.test.ts @@ -5,7 +5,8 @@ import { assert } from 'chai'; -import parse from './parse'; +// eslint-disable-next-line @typescript-eslint/no-require-imports +const parse = require('../out-esbuild/parse').default; // TODO: integrate tests from http://test.csswg.org/suites/css-fonts-4_dev/nightly-unstable/ describe('parse', () => { diff --git a/addons/addon-ligatures/test/tsconfig.json b/addons/addon-ligatures/test/tsconfig.json new file mode 100644 index 00000000..ca68b468 --- /dev/null +++ b/addons/addon-ligatures/test/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "target": "ESNext", + "lib": [ + "es2021" + ], + "rootDir": ".", + "outDir": "../out-esbuild-test", + "sourceMap": true, + "removeComments": true, + "baseUrl": ".", + "strict": true, + "types": [ + "../../../node_modules/@types/mocha", + "../../../node_modules/@types/node" + ] + }, + "include": [ + "./**/*", + "../../../typings/xterm.d.ts" + ] +} diff --git a/addons/addon-ligatures/tsconfig.json b/addons/addon-ligatures/tsconfig.json index b711f30a..2d820dd1 100644 --- a/addons/addon-ligatures/tsconfig.json +++ b/addons/addon-ligatures/tsconfig.json @@ -2,6 +2,7 @@ "files": [], "include": [], "references": [ - { "path": "./src" } + { "path": "./src" }, + { "path": "./test" } ] }