mirror of
https://github.com/versia-pub/server.git
synced 2026-03-13 22:09:16 +01:00
refactor(api): 🔥 Refactor media uploader code
This commit is contained in:
parent
9566387273
commit
303928f960
6 changed files with 80 additions and 86 deletions
|
|
@ -1,7 +1,6 @@
|
|||
import { beforeEach, describe, expect, it, jest, spyOn } from "bun:test";
|
||||
import type { S3Client } from "@jsr/bradenmacdonald__s3-lite-client";
|
||||
import type { Config } from "config-manager";
|
||||
// FILEPATH: /home/jessew/Dev/lysand/packages/media-manager/backends/s3.test.ts
|
||||
import {
|
||||
LocalMediaBackend,
|
||||
MediaBackend,
|
||||
|
|
@ -9,7 +8,7 @@ import {
|
|||
MediaHasher,
|
||||
S3MediaBackend,
|
||||
} from "..";
|
||||
import { ConvertableMediaFormats, MediaConverter } from "../media-converter";
|
||||
import { MediaConverter } from "../media-converter";
|
||||
|
||||
type DeepPartial<T> = {
|
||||
[P in keyof T]?: DeepPartial<T[P]>;
|
||||
|
|
@ -115,7 +114,7 @@ describe("S3MediaBackend", () => {
|
|||
},
|
||||
media: {
|
||||
conversion: {
|
||||
convert_to: ConvertableMediaFormats.PNG,
|
||||
convert_to: "image/png",
|
||||
},
|
||||
},
|
||||
};
|
||||
|
|
@ -201,7 +200,7 @@ describe("LocalMediaBackend", () => {
|
|||
media: {
|
||||
conversion: {
|
||||
convert_images: true,
|
||||
convert_to: ConvertableMediaFormats.PNG,
|
||||
convert_to: "image/png",
|
||||
},
|
||||
local_uploads_folder: "./uploads",
|
||||
},
|
||||
|
|
@ -220,10 +219,7 @@ describe("LocalMediaBackend", () => {
|
|||
it("should add file", async () => {
|
||||
const mockHash = "test-hash";
|
||||
spyOn(mockMediaHasher, "getMediaHash").mockResolvedValue(mockHash);
|
||||
const mockMediaConverter = new MediaConverter(
|
||||
ConvertableMediaFormats.JPG,
|
||||
ConvertableMediaFormats.PNG,
|
||||
);
|
||||
const mockMediaConverter = new MediaConverter();
|
||||
spyOn(mockMediaConverter, "convert").mockResolvedValue(mockFile);
|
||||
// @ts-expect-error This is a mock
|
||||
spyOn(Bun, "file").mockImplementationOnce(() => ({
|
||||
|
|
|
|||
|
|
@ -1,33 +1,20 @@
|
|||
// FILEPATH: /home/jessew/Dev/lysand/packages/media-manager/media-converter.test.ts
|
||||
import { beforeEach, describe, expect, it } from "bun:test";
|
||||
import { ConvertableMediaFormats, MediaConverter } from "../media-converter";
|
||||
import { MediaConverter } from "../media-converter";
|
||||
|
||||
describe("MediaConverter", () => {
|
||||
let mediaConverter: MediaConverter;
|
||||
|
||||
beforeEach(() => {
|
||||
mediaConverter = new MediaConverter(
|
||||
ConvertableMediaFormats.JPG,
|
||||
ConvertableMediaFormats.PNG,
|
||||
);
|
||||
});
|
||||
|
||||
it("should initialize with correct formats", () => {
|
||||
expect(mediaConverter.fromFormat).toEqual(ConvertableMediaFormats.JPG);
|
||||
expect(mediaConverter.toFormat).toEqual(ConvertableMediaFormats.PNG);
|
||||
});
|
||||
|
||||
it("should check if media is convertable", () => {
|
||||
expect(mediaConverter.isConvertable()).toBe(true);
|
||||
mediaConverter.toFormat = ConvertableMediaFormats.JPG;
|
||||
expect(mediaConverter.isConvertable()).toBe(false);
|
||||
mediaConverter = new MediaConverter();
|
||||
});
|
||||
|
||||
it("should replace file name extension", () => {
|
||||
const fileName = "test.jpg";
|
||||
const expectedFileName = "test.png";
|
||||
// Written like this because it's a private function
|
||||
expect(mediaConverter.getReplacedFileName(fileName)).toEqual(
|
||||
// @ts-ignore
|
||||
expect(mediaConverter.getReplacedFileName(fileName, "png")).toEqual(
|
||||
expectedFileName,
|
||||
);
|
||||
});
|
||||
|
|
@ -36,6 +23,7 @@ describe("MediaConverter", () => {
|
|||
it("should extract filename from path", () => {
|
||||
const path = "path/to/test.jpg";
|
||||
const expectedFileName = "test.jpg";
|
||||
// @ts-ignore
|
||||
expect(mediaConverter.extractFilenameFromPath(path)).toEqual(
|
||||
expectedFileName,
|
||||
);
|
||||
|
|
@ -44,6 +32,7 @@ describe("MediaConverter", () => {
|
|||
it("should handle escaped slashes", () => {
|
||||
const path = "path/to/test\\/test.jpg";
|
||||
const expectedFileName = "test\\/test.jpg";
|
||||
// @ts-ignore
|
||||
expect(mediaConverter.extractFilenameFromPath(path)).toEqual(
|
||||
expectedFileName,
|
||||
);
|
||||
|
|
@ -55,11 +44,10 @@ describe("MediaConverter", () => {
|
|||
|
||||
const convertedFile = await mediaConverter.convert(
|
||||
file as unknown as File,
|
||||
"image/png",
|
||||
);
|
||||
|
||||
expect(convertedFile.name).toEqual("megamind.png");
|
||||
expect(convertedFile.type).toEqual(
|
||||
`image/${ConvertableMediaFormats.PNG}`,
|
||||
);
|
||||
expect(convertedFile.type).toEqual("image/png");
|
||||
});
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue