import assert from "node:assert/strict";
import test from "node:test";

import { textoDaLegenda, vttDaLegenda } from "./legenda.ts";

test("legenda: .srt vira WebVTT (cabeçalho, ponto nos milésimos, só os dois tempos)", () => {
  const srt = "1\r\n00:00:01,000 --> 00:00:03,5 X1:10 X2:20\r\nBom dia, turma!\r\n\r\n2\r\n0:00:04,200 --> 0:00:06,000\r\nA prensa 5 em 1 --> já está quente.\r\n";
  assert.equal(
    vttDaLegenda(srt),
    "WEBVTT\n\n1\n00:00:01.000 --> 00:00:03.500\nBom dia, turma!\n\n2\n00:00:04.200 --> 00:00:06.000\nA prensa 5 em 1 → já está quente.\n"
  );
});

test("legenda: .vtt passa como veio (só o fim de linha arrumado)", () => {
  assert.equal(vttDaLegenda("\uFEFFWEBVTT\r\n\r\n00:01.000 --> 00:02.000\r\nOi"), "WEBVTT\n\n00:01.000 --> 00:02.000\nOi\n");
});

test("legenda: arquivo do Windows (latin-1) abre com acento", () => {
  const latin1 = Uint8Array.from([0x41, 0x75, 0x6c, 0x61, 0x20, 0x31, 0x3a, 0x20, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0xe7, 0xe3, 0x6f]);
  assert.equal(textoDaLegenda(latin1), "Aula 1: introdução");
  assert.equal(textoDaLegenda(new TextEncoder().encode("\uFEFFAula 2: revisão")), "Aula 2: revisão");
});
