import { describe, beforeEach, it, expect, vi, afterEach } from "vitest"; import type { IStyleElements } from "../../parse_style_block"; import toHTML from "../to_html"; const mocks = vi.hoisted(() => { return { convertPayloadToHTML: vi.fn(), }; }); vi.mock("../convert_payload_to_html", () => ({ default: mocks.convertPayloadToHTML, })); describe("parsers - webvtt - toHTML", () => { beforeEach(() => { vi.resetModules(); }); afterEach(() => { mocks.convertPayloadToHTML.mockReset(); }); it("should include payload HTML", () => { mocks.convertPayloadToHTML.mockImplementation(() => [ document.createElement("b"), document.createTextNode("Hello"), ]); const cueObject = { start: 0, end: 100, header: "b", payload: ["
Hello
"], settings: {}, }; const classes: IStyleElements = {}; const { element, start, end } = toHTML(cueObject, { classes }); expect(start).toBe(0); expect(end).toBe(100); expect(element.outerHTML).toBe( "' + '' + "" + "Hello" + "" + "
" + "Hello
"], settings: {}, }; const classes: IStyleElements = { b: "color:yellow;", }; const { element, start, end } = toHTML(cueObject, { classes }); expect(start).toBe(0); expect(end).toBe(100); expect(element.outerHTML).toBe( "' + '' + "" + "Hello" + "" + "
" + "Hello
"], settings: {}, }; const classes: IStyleElements = {}; const global = "color:yellow;"; const { element, start, end } = toHTML(cueObject, { classes, global }); expect(start).toBe(0); expect(end).toBe(100); expect(element.outerHTML).toBe( "' + '' + "" + "Hello" + "" + "
" + "Hello
"], settings: {}, }; const classes: IStyleElements = { b: "bar: baz;" }; const global = "color:yellow;"; const { element, start, end } = toHTML(cueObject, { classes, global }); expect(start).toBe(0); expect(end).toBe(100); expect(element.outerHTML).toBe( "' + '' + "" + "Hello" + "" + "
" + "' + '' + "" + "
" + "