diff --git a/packages/webamp/js/__snapshots__/aniParser.test.ts.snap b/packages/webamp/js/__snapshots__/aniParser.test.ts.snap new file mode 100644 index 00000000..8e63319e --- /dev/null +++ b/packages/webamp/js/__snapshots__/aniParser.test.ts.snap @@ -0,0 +1,97 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Green Dimension v2.wsz eqslid.cur 1`] = ` +Object { + "images": "00201032320000001681600220004000032000640001032000000160000000000000000,00201032320000001681600220004000032000640001032000000160000000000000000...", + "metadata": Object { + "bfAttributes": 1, + "cbSize": 36, + "iBitCount": 0, + "iDispRate": 10, + "iHeight": 0, + "iWidth": 0, + "nFrames": 2, + "nPlanes": 0, + "nSteps": 2, + }, + "rate": Array [ + 8, + 8, + ], + "seq": null, +} +`; + +exports[`Super_Mario_Amp_2.wsz close.cur 1`] = ` +Object { + "images": "0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000,0020103232000000168800220004000032000640001080000012840000000000000000...", + "metadata": Object { + "bfAttributes": 3, + "cbSize": 36, + "iBitCount": 4, + "iDispRate": 10, + "iHeight": 0, + "iWidth": 0, + "nFrames": 10, + "nPlanes": 1, + "nSteps": 17, + }, + "rate": Array [ + 10, + 10, + 10, + 10, + 7, + 6, + 5, + 4, + 3, + 2, + 1, + 2, + 2, + 2, + 2, + 2, + 60, + ], + "seq": Array [ + 0, + 1, + 2, + 3, + 4, + 5, + 4, + 5, + 4, + 5, + 6, + 7, + 8, + 9, + 8, + 9, + 8, + ], +} +`; + +exports[`Super_Mario_Amp_2.wsz eqslid.cur 1`] = ` +Object { + "images": "0020103232000000168120022000400003200064000102400000128120000000000000000,0020103232000000168120022000400003200064000102400000128120000000000000000,0020103232000000168120022000400003200064000102400000128120000000000000000,0020103232000000168120022000400003200064000102400000128120000000000000000,0020103232000000168120022000400003200064000102400000128120000000000000000,0020103232000000168120022000400003200064000102400000128120000000000000000,0020103232000000168120022000400003200064000102400000128120000000000000000,0020103232000000168120022000400003200064000102400000128120000000000000000...", + "metadata": Object { + "bfAttributes": 1, + "cbSize": 36, + "iBitCount": 4, + "iDispRate": 10, + "iHeight": 0, + "iWidth": 0, + "nFrames": 8, + "nPlanes": 1, + "nSteps": 8, + }, + "rate": null, + "seq": null, +} +`; diff --git a/packages/webamp/js/__tests__/fixtures/ani/Green Dimension v2/eqslid.cur b/packages/webamp/js/__tests__/fixtures/ani/Green Dimension v2/eqslid.cur new file mode 100644 index 00000000..b917c8f3 Binary files /dev/null and b/packages/webamp/js/__tests__/fixtures/ani/Green Dimension v2/eqslid.cur differ diff --git a/packages/webamp/js/__tests__/fixtures/ani/Super_Mario_Amp_2/close.cur b/packages/webamp/js/__tests__/fixtures/ani/Super_Mario_Amp_2/close.cur new file mode 100644 index 00000000..d23e6d51 Binary files /dev/null and b/packages/webamp/js/__tests__/fixtures/ani/Super_Mario_Amp_2/close.cur differ diff --git a/packages/webamp/js/__tests__/fixtures/ani/Super_Mario_Amp_2/eqslid.cur b/packages/webamp/js/__tests__/fixtures/ani/Super_Mario_Amp_2/eqslid.cur new file mode 100644 index 00000000..cb4a6e36 Binary files /dev/null and b/packages/webamp/js/__tests__/fixtures/ani/Super_Mario_Amp_2/eqslid.cur differ diff --git a/packages/webamp/js/aniParser.test.ts b/packages/webamp/js/aniParser.test.ts index 0e285d43..329873bd 100644 --- a/packages/webamp/js/aniParser.test.ts +++ b/packages/webamp/js/aniParser.test.ts @@ -1,106 +1,34 @@ import fs from "fs"; import path from "path"; -import { parseAni, ParsedAni } from "./aniParser"; +import { parseAni } from "./aniParser"; -function parsePath(filePath: string): ParsedAni { +// Parse a `.ani` in our fixture directory and trim down the image data for use +// in snapshot tests. +function parsePath(filePath: string) { const buffer = fs.readFileSync( path.join(__dirname, "./__tests__/fixtures/ani/", filePath) ); - return parseAni(buffer); + const ani = parseAni(buffer); + const imgString = ani.images.map((image) => image.slice(0, 60).join("")); + // @ts-ignore + ani.images = `${imgString}...`; + return ani; } -test("Super_Mario_Amp_2.wsz eqslid.cur", async () => { - const ani = parsePath("Super_Mario_Amp_2/eqslid.cur"); - // @ts-ignore - ani.images = ani.images.map((image) => image.slice(0, 60).join("")); - expect(ani).toMatchInlineSnapshot(` - Object { - "images": Array [ - "0020103232000000168120022000400003200064000102400000128120000000000000000", - "0020103232000000168120022000400003200064000102400000128120000000000000000", - "0020103232000000168120022000400003200064000102400000128120000000000000000", - "0020103232000000168120022000400003200064000102400000128120000000000000000", - "0020103232000000168120022000400003200064000102400000128120000000000000000", - "0020103232000000168120022000400003200064000102400000128120000000000000000", - "0020103232000000168120022000400003200064000102400000128120000000000000000", - "0020103232000000168120022000400003200064000102400000128120000000000000000", - ], - "metadata": Object { - "bfAttributes": 1, - "cbSize": 36, - "iBitCount": 4, - "iDispRate": 10, - "iHeight": 0, - "iWidth": 0, - "nFrames": 8, - "nPlanes": 1, - "nSteps": 8, - }, - "rate": null, - "seq": null, - } - `); +// https://skins.webamp.org/skin/6e30f9e9b8f5719469809785ae5e4a1f/Super_Mario_Amp_2.wsz/ +describe("Super_Mario_Amp_2.wsz", () => { + test("eqslid.cur", async () => { + expect(parsePath("Super_Mario_Amp_2/eqslid.cur")).toMatchSnapshot(); + }); + test("close.cur", async () => { + expect(parsePath("Super_Mario_Amp_2/close.cur")).toMatchSnapshot(); + }); }); -test("Green Dimension v2.wsz eqslid.cur", async () => { - const ani = parsePath("Green_Dimension_v2/Eqslid.cur"); - // @ts-ignore - ani.images = ani.images.map((image) => image.slice(0, 60).join("")); - expect(ani).toMatchInlineSnapshot(` - Object { - "images": Array [ - "00201032320000001681600220004000032000640001032000000160000000000000000", - "00201032320000001681600220004000032000640001032000000160000000000000000", - ], - "metadata": Object { - "bfAttributes": 1, - "cbSize": 36, - "iBitCount": 0, - "iDispRate": 10, - "iHeight": 0, - "iWidth": 0, - "nFrames": 2, - "nPlanes": 0, - "nSteps": 2, - }, - "rate": Array [ - 8, - 8, - ], - "seq": null, - } - `); -}); - -test("rainbow", async () => { - const ani = parsePath("Rainbow classic.ani"); - // @ts-ignore - ani.images = ani.images.map((image) => image.slice(0, 60).join("")); - expect(ani).toMatchInlineSnapshot(` - Object { - "images": Array [ - "0020103232000000168160022000400003200064000103200000128160000000000000000", - "0020103232000000168160022000400003200064000103200000128160000000000000000", - "0020103232000000168160022000400003200064000103200000128160000000000000000", - "0020103232000000168160022000400003200064000103200000128160000000000000000", - "0020103232000000168160022000400003200064000103200000128160000000000000000", - "0020103232000000168160022000400003200064000103200000128160000000000000000", - "0020103232000000168160022000400003200064000103200000128160000000000000000", - ], - "metadata": Object { - "bfAttributes": 1, - "cbSize": 36, - "iBitCount": 0, - "iDispRate": 7, - "iHeight": 0, - "iWidth": 0, - "nFrames": 7, - "nPlanes": 0, - "nSteps": 7, - }, - "rate": null, - "seq": null, - } - `); +// https://skins.webamp.org/skin/4308a2fc648033bf5fe7c4d56a5c8823/Green-Dimension-V2.wsz/ +describe("Green Dimension v2.wsz", () => { + test("eqslid.cur", async () => { + expect(parsePath("Green Dimension v2/eqslid.cur")).toMatchSnapshot(); + }); });