From 82fbe59a918a65283da1a966d4708a514b0dc2d8 Mon Sep 17 00:00:00 2001 From: Jordan Eldredge Date: Mon, 16 Aug 2021 22:42:46 -0700 Subject: [PATCH] Add analyzer tests --- packages/skin-database/analyzer.test.ts | 29 +++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 packages/skin-database/analyzer.test.ts diff --git a/packages/skin-database/analyzer.test.ts b/packages/skin-database/analyzer.test.ts new file mode 100644 index 00000000..3dbfd655 --- /dev/null +++ b/packages/skin-database/analyzer.test.ts @@ -0,0 +1,29 @@ +import fsPromises from "fs"; +import path from "path"; +import * as Analyzer from "./analyser"; +import JSZip from "jszip"; + +test("getReadme", async () => { + const zip = await getSkinZip("Sonic_Attitude.wsz"); + const readme = await Analyzer.getReadme(zip); + if (readme == null) { + throw new Error("Expected to find readme."); + } + expect(readme.length).toBe(387); + expect(readme.split("\n")[0].trim()).toMatchInlineSnapshot( + `"SONIC ATTITUDE - By LuigiHann (luigihann@aol.com)"` + ); +}); + +test("getSkinType", async () => { + const zip = await getSkinZip("Sonic_Attitude.wsz"); + const skinType = await Analyzer.getSkinType(zip); + expect(skinType).toBe("CLASSIC"); +}); + +function getSkinZip(filename: string): Promise { + const buffer = fsPromises.readFileSync( + path.join(__dirname, "../webamp/demo/skins/", filename) + ); + return JSZip.loadAsync(buffer); +}