40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
import { shallowMount } from '@vue/test-utils';
|
|
import LatexOutput from '~/notebook/cells/output/latex.vue';
|
|
import Prompt from '~/notebook/cells/prompt.vue';
|
|
|
|
describe('LaTeX output cell', () => {
|
|
beforeEach(() => {
|
|
window.MathJax = {
|
|
tex2svg: jest.fn((code) => ({ outerHTML: code })),
|
|
};
|
|
});
|
|
|
|
const inlineLatex = '$$F(k) = \\int_{-\\infty}^{\\infty} f(x) e^{2\\pi i k} dx$$';
|
|
const count = 12345;
|
|
|
|
const createComponent = (rawCode, index) =>
|
|
shallowMount(LatexOutput, {
|
|
propsData: {
|
|
count,
|
|
index,
|
|
rawCode,
|
|
},
|
|
});
|
|
|
|
it.each`
|
|
index | expectation
|
|
${0} | ${true}
|
|
${1} | ${false}
|
|
`('sets `Prompt.show-output` to $expectation when index is $index', ({ index, expectation }) => {
|
|
const wrapper = createComponent(inlineLatex, index);
|
|
const prompt = wrapper.findComponent(Prompt);
|
|
|
|
expect(prompt.props().count).toEqual(count);
|
|
expect(prompt.props().showOutput).toEqual(expectation);
|
|
});
|
|
|
|
it('strips the `$$` delimter from LaTeX', () => {
|
|
createComponent(inlineLatex, 0);
|
|
expect(window.MathJax.tex2svg).toHaveBeenCalledWith(expect.not.stringContaining('$$'));
|
|
});
|
|
});
|