webamp/packages/skin-database/data/__tests__/SkinModel.test.ts
2025-07-07 12:51:20 -07:00

66 lines
2 KiB
TypeScript

import { knex } from "../../db";
import SkinModel from "../SkinModel";
import UserContext from "../UserContext";
beforeEach(async () => {
await knex.migrate.latest();
await knex.seed.run();
});
afterAll(async () => {
await knex.destroy();
});
test("fromMd5", async () => {
const ctx = new UserContext();
const skin = await SkinModel.fromMd5(ctx, "a_fake_md5");
expect(skin?.getMd5()).toBe("a_fake_md5");
});
describe("fromAnything", () => {
test("md5", async () => {
const ctx = new UserContext();
const skin = await SkinModel.fromAnything(
ctx,
"48bbdbbeb03d347e59b1eebda4d352d0"
);
expect(skin?.getMd5()).toBe("48bbdbbeb03d347e59b1eebda4d352d0");
});
test("Skin Museuem URL", async () => {
const ctx = new UserContext();
const skin = await SkinModel.fromAnything(
ctx,
"https://skins.webamp.org/skin/48bbdbbeb03d347e59b1eebda4d352d0/MountainDew.wsz/"
);
expect(skin?.getMd5()).toBe("48bbdbbeb03d347e59b1eebda4d352d0");
});
test("Webamp URL", async () => {
const ctx = new UserContext();
const skin = await SkinModel.fromAnything(
ctx,
"https://webamp.org/?skinUrl=https://cdn.webampskins.org/skins/48bbdbbeb03d347e59b1eebda4d352d0.wsz"
);
expect(skin?.getMd5()).toBe("48bbdbbeb03d347e59b1eebda4d352d0");
});
test("Internet Archive Item identifier", async () => {
const ctx = new UserContext();
const skin = await SkinModel.fromAnything(ctx, "a_fake_ia_identifier");
expect(skin?.getMd5()).toBe("a_fake_md5");
});
test("Internet Archive Item identifier", async () => {
const ctx = new UserContext();
const skin = await SkinModel.fromAnything(
ctx,
"https://archive.org/details/a_fake_ia_identifier"
);
expect(skin?.getMd5()).toBe("a_fake_md5");
});
test("Tweet URL", async () => {
const ctx = new UserContext();
const skin = await SkinModel.fromAnything(
ctx,
"https://twitter.com/winampskins/status/1333893671326871552"
);
expect(skin?.getMd5()).toBe("a_tweeted_md5");
});
});