Step 1: compute the ratio
', }), 'wb-1', ); expect(mocks.renderToString).not.toHaveBeenCalled(); }); test('renders raw LaTeX as a formatted math element', async () => { const latex = String.raw`\omega_{out} = \omega_{in}\cdot\frac{T_{in}}{T_{out}}`; await drawText(latex); expect(mocks.addElement).toHaveBeenCalledWith( expect.objectContaining({ type: 'latex', latex, html: expect.stringContaining('katex-display'), }), 'wb-1', ); expect(mocks.renderToString).toHaveBeenCalledWith(latex, { throwOnError: false, displayMode: true, output: 'html', }); }); test('renders dollar-delimited math after removing the delimiters', async () => { await drawText('$E = mc^2$'); expect(mocks.addElement).toHaveBeenCalledWith( expect.objectContaining({ type: 'latex', latex: 'E = mc^2', html: expect.stringContaining('katex-display'), }), 'wb-1', ); expect(mocks.renderToString).toHaveBeenCalledWith('E = mc^2', { throwOnError: false, displayMode: true, output: 'html', }); }); test('renders expressions with a high density of less-common LaTeX commands', async () => { const latex = String.raw`\vec{v}+\overline{x}`; await drawText(latex); expect(mocks.addElement).toHaveBeenCalledWith( expect.objectContaining({ type: 'latex', latex, html: expect.stringContaining('katex-display'), }), 'wb-1', ); }); test.each([String.raw`\vec{v}`, String.raw`\hat{x}`, String.raw`\overline{x}`])( 'renders a single less-common LaTeX command with a braced argument: %s', async (latex) => { await drawText(latex); expect(mocks.addElement).toHaveBeenCalledWith( expect.objectContaining({ type: 'latex', latex, html: expect.stringContaining('katex-display'), }), 'wb-1', ); }, ); test.each([String.raw`C:\temp`, String.raw`C:\alpha`, String.raw`D:\path\to\file`])( 'keeps a Windows path as text: %s', async (path) => { await drawText(path); expect(mocks.addElement).toHaveBeenCalledWith( expect.objectContaining({ type: 'text', content: expect.stringContaining(path), }), 'wb-1', ); expect(mocks.renderToString).not.toHaveBeenCalled(); }, ); test('does not throw when fallback LaTeX is malformed', async () => { await expect(drawText(String.raw`\frac{1}{`)).resolves.toBeUndefined(); expect(mocks.addElement).toHaveBeenCalledWith( expect.objectContaining({ type: 'latex', html: expect.stringContaining('katex-error'), }), 'wb-1', ); expect(mocks.renderToString).toHaveBeenCalledWith(String.raw`\frac{1}{`, { throwOnError: false, displayMode: true, output: 'html', }); }); });