import { describe, test, expect } from '@jest/globals'; import * as Entities from '#js/util/Entities.js'; import { handleRetriesFor } from '#js/util/Retries.js'; import '#js/util/asyncLoad/esm.js'; describe('Entities translation', () => { test('translate()', async () => { expect(Entities.translate('a')).toBe('a'); expect(Entities.translate('a')).toBe('a'); expect(Entities.translate('&')).toBe('&'); await expect( handleRetriesFor(() => Entities.translate('&xyz;')) ).resolves.toBe('&xyz;'); // no such entity await expect( handleRetriesFor(() => Entities.translate('≈')) ).resolves.toBe('\u2248'); // load a.js await expect( handleRetriesFor(() => Entities.translate('ℬ')) ).resolves.toBe('\u212C'); // load scr.js Entities.remove('approx'); expect(Entities.translate('≈')).toBe('≈'); // undefined entities remain unchanged Entities.options.loadMissingEntities = false; expect(Entities.translate('⋀')).toBe('⋀'); // don't load b.js }); });