frontend/test/common/util/parse_aspect_ratio.test.ts

54 lines
1.3 KiB
TypeScript

import { assert, describe, it } from "vitest";
import parseAspectRatio from "../../../src/common/util/parse-aspect-ratio";
describe("parseAspectRatio", () => {
const ratio16by9 = { w: 16, h: 9 };
const ratio178 = { w: 1.78, h: 1 };
it("Parses 16x9", () => {
const r = parseAspectRatio("16x9");
assert.deepEqual(r, ratio16by9);
});
it("Parses 16:9", () => {
const r = parseAspectRatio("16:9");
assert.deepEqual(r, ratio16by9);
});
it("Parses 1.78x1", () => {
const r = parseAspectRatio("1.78x1");
assert.deepEqual(r, ratio178);
});
it("Parses 1.78:1", () => {
const r = parseAspectRatio("1.78:1");
assert.deepEqual(r, ratio178);
});
it("Parses 1.78", () => {
const r = parseAspectRatio("1.78");
assert.deepEqual(r, ratio178);
});
it("Parses 23%", () => {
const r = parseAspectRatio("23%");
assert.deepEqual(r, { w: 100, h: 23 });
});
it("Skips empty states", () => {
const r = parseAspectRatio(" ");
assert.equal(r, null);
});
it("Skips invalid input", () => {
const r = parseAspectRatio("mary had a little lamb");
assert.equal(r, null);
});
it("Skips invalid, but close input", () => {
const r = parseAspectRatio("mary:lamb");
assert.equal(r, null);
});
});