server/packages/media-manager/tests/media-manager.test.ts

54 lines
1.7 KiB
TypeScript
Raw Normal View History

2024-03-09 00:14:45 +01:00
// FILEPATH: /home/jessew/Dev/lysand/packages/media-manager/media-converter.test.ts
2024-04-07 07:30:49 +02:00
import { beforeEach, describe, expect, it } from "bun:test";
import { MediaConverter } from "../media-converter";
2024-03-09 00:14:45 +01:00
describe("MediaConverter", () => {
2024-04-07 07:30:49 +02:00
let mediaConverter: MediaConverter;
2024-03-09 00:14:45 +01:00
2024-04-07 07:30:49 +02:00
beforeEach(() => {
mediaConverter = new MediaConverter();
2024-04-07 07:30:49 +02:00
});
2024-03-09 00:14:45 +01:00
2024-04-07 07:30:49 +02:00
it("should replace file name extension", () => {
const fileName = "test.jpg";
const expectedFileName = "test.png";
// Written like this because it's a private function
// @ts-ignore
expect(mediaConverter.getReplacedFileName(fileName, "png")).toEqual(
2024-04-07 07:30:49 +02:00
expectedFileName,
);
});
2024-03-09 00:14:45 +01:00
2024-04-07 07:30:49 +02:00
describe("Filename extractor", () => {
it("should extract filename from path", () => {
const path = "path/to/test.jpg";
const expectedFileName = "test.jpg";
// @ts-ignore
2024-04-07 07:30:49 +02:00
expect(mediaConverter.extractFilenameFromPath(path)).toEqual(
expectedFileName,
);
});
2024-03-09 00:14:45 +01:00
2024-04-07 07:30:49 +02:00
it("should handle escaped slashes", () => {
const path = "path/to/test\\/test.jpg";
const expectedFileName = "test\\/test.jpg";
// @ts-ignore
2024-04-07 07:30:49 +02:00
expect(mediaConverter.extractFilenameFromPath(path)).toEqual(
expectedFileName,
);
});
});
2024-03-09 00:14:45 +01:00
2024-04-07 07:30:49 +02:00
it("should convert media", async () => {
const file = Bun.file(`${__dirname}/megamind.jpg`);
2024-03-09 00:14:45 +01:00
2024-04-07 07:30:49 +02:00
const convertedFile = await mediaConverter.convert(
file as unknown as File,
"image/png",
2024-04-07 07:30:49 +02:00
);
2024-03-09 00:14:45 +01:00
2024-04-07 07:30:49 +02:00
expect(convertedFile.name).toEqual("megamind.png");
expect(convertedFile.type).toEqual("image/png");
2024-04-07 07:30:49 +02:00
});
2024-03-09 00:14:45 +01:00
});