From 817c3cf503a93546fae75a295f3a371230037b89 Mon Sep 17 00:00:00 2001 From: DecDuck Date: Mon, 25 Aug 2025 12:35:12 +1000 Subject: [PATCH] feat: script backend, fixes --- __test__/manifest.spec.mjs | 44 ++++++++++++++++++++++++++++++++++++++ package.json | 2 +- src/lib.rs | 1 - src/ssl.rs | 1 - 4 files changed, 45 insertions(+), 3 deletions(-) diff --git a/__test__/manifest.spec.mjs b/__test__/manifest.spec.mjs index 95cad1f..06ee618 100644 --- a/__test__/manifest.spec.mjs +++ b/__test__/manifest.spec.mjs @@ -93,3 +93,47 @@ test.skip("performance test", async (t) => { fs.rmSync(dirName, { recursive: true }); }); + +test("special characters", async (t) => { + // Setup test dir + const dirName = "./.test/sc"; + if (fs.existsSync(dirName)) fs.rmSync(dirName, { recursive: true }); + fs.mkdirSync(dirName, { recursive: true }); + + // Config + const fileNames = ["Technická podpora.rtf", "Servicio técnico.rtf"]; + + for (let i = 0; i < fileNames.length; i++) { + const fileName = path.join(dirName, fileNames[i]); + fs.writeFileSync(fileName, i.toString()); + } + + const dropletHandler = new DropletHandler(); + + const manifest = JSON.parse( + await new Promise((r, e) => + generateManifest( + dropletHandler, + dirName, + (_, __) => {}, + (_, __) => {}, + (err, manifest) => (err ? e(err) : r(manifest)) + ) + ) + ); + + // Check the first few checksums + const checksums = [ + "cfcd208495d565ef66e7dff9f98764da", + "c4ca4238a0b923820dcc509a6f75849b", + ]; + for (let index in checksums) { + const entry = manifest[fileNames[index]]; + if (!entry) return t.fail(`manifest missing file ${index}`); + + const checksum = entry.checksums[0]; + t.is(checksum, checksums[index], `checksums do not match for ${index}`); + } + + fs.rmSync(dirName, { recursive: true }); +}); \ No newline at end of file diff --git a/package.json b/package.json index 6cc24c9..14e2524 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@drop-oss/droplet", - "version": "2.3.1", + "version": "3.0.0", "main": "index.js", "types": "index.d.ts", "napi": { diff --git a/src/lib.rs b/src/lib.rs index a3f390e..bfe8518 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,7 +3,6 @@ #![deny(clippy::panic)] #![feature(trait_alias)] -use std::{any, io}; pub mod manifest; pub mod script; diff --git a/src/ssl.rs b/src/ssl.rs index 206b7e3..d18166e 100644 --- a/src/ssl.rs +++ b/src/ssl.rs @@ -1,5 +1,4 @@ use anyhow::anyhow; -use napi::Error; use rcgen::{ CertificateParams, DistinguishedName, IsCa, KeyPair, KeyUsagePurpose, PublicKeyData, SubjectPublicKeyInfo,