import { describe, it, expect } from "vitest";
import getCueBlocks from "../get_cue_blocks";

const srt1 = [
  "112", // 0
  "00:17:31.080 --> 00:17:32.200", // 1
  "Je suis le petit chevalier", // 2
  "Avec le ciel dessus mes yeux", // 3
  "Je ne peux pas me effroyer", // 4
  "", // 5
  "", // 6
  "00:17:55.520 --> 00:17:57.640", // 7
  "Je suis le petit chevalier", // 8
  "", // 9
  "00:18:01.520 --> 00:18:09.640", // 10
  "", // 11
  "Avec la terre dessous mes pieds", // 12
  "", // 13
  "112", // 14
  "00:18:31.080 --> 00:18:32.200", // 15
  "", // 16
  "112", // 17
  "00:18:51.080 --> 00:18:52.200", // 18
  "J'irai te visiter", // 19
  "J'irai te visiter", // 20
  "", // 21
];

const srt2 = [
  "112", // 0
  "00:17:31.080 --> 00:17:32.200", // 1
  "Ce que j'ai fais, ce soir la", // 2
  "Ce qu'elle a dit, ce soir la", // 3
  "", // 4
  "", // 5
  "", // 6
  "Realisant mon espoir", // 7
  "", // 8
  "", // 9
  "", // 10
  "Je me lance, vers la gloire, OK", // 11
];

const srt3 = [
  "", // 0
  "", // 1
  "1", // 2
  "00:17:31.080 --> 00:17:32.200", // 3
  "Je n'ai plus peur de perdre mon temps", // 4
  "", // 5
  "00:18:51.080 --> 00:18:52.200", // 6
  "Je n'ai plus peur de perdre mes dents", // 7
];

describe("parsers - srt - getCueBlocks", () => {
  it("should return only timed cue blocks from a srt", () => {
    expect(getCueBlocks(srt1)).toEqual([
      [
        "112",
        "00:17:31.080 --> 00:17:32.200",
        "Je suis le petit chevalier",
        "Avec le ciel dessus mes yeux",
        "Je ne peux pas me effroyer",
      ],
      ["00:17:55.520 --> 00:17:57.640", "Je suis le petit chevalier"],
      ["00:18:01.520 --> 00:18:09.640"],
      ["112", "00:18:31.080 --> 00:18:32.200"],

      ["112", "00:18:51.080 --> 00:18:52.200", "J'irai te visiter", "J'irai te visiter"],
    ]);
    expect(getCueBlocks(srt2)).toEqual([
      [
        "112",
        "00:17:31.080 --> 00:17:32.200",
        "Ce que j'ai fais, ce soir la",
        "Ce qu'elle a dit, ce soir la",
      ],
    ]);
    expect(getCueBlocks(srt3)).toEqual([
      [
        "1", // 2
        "00:17:31.080 --> 00:17:32.200", // 3
        "Je n'ai plus peur de perdre mon temps", // 4
      ],
      ["00:18:51.080 --> 00:18:52.200", "Je n'ai plus peur de perdre mes dents"],
    ]);
  });
});
