test: made tests work in windows
This commit is contained in:
parent
8a0be8c913
commit
4271f268c3
9 changed files with 57 additions and 20 deletions
|
|
@ -41,8 +41,8 @@ export let taskQueue: TaskQueue;
|
|||
export let plugins: PluginManager;
|
||||
export let events: EventEmitter<AppEventMap>;
|
||||
let controlsHandle: { cleanup: () => void; };
|
||||
let api: any;
|
||||
let bunServer: { stop: () => void; } | undefined;
|
||||
let api: { cleanup: () => Promise<void>; };
|
||||
let bunServer: { cleanup: () => Promise<void>; } | undefined;
|
||||
|
||||
export async function load ()
|
||||
{
|
||||
|
|
@ -97,13 +97,16 @@ export async function load ()
|
|||
export async function cleanup ()
|
||||
{
|
||||
console.log("Cleaning Up");
|
||||
bunServer?.stop();
|
||||
await api.apiServer.stop(true);
|
||||
await bunServer?.cleanup();
|
||||
await api.cleanup();
|
||||
await taskQueue.close();
|
||||
await plugins.cleanup();
|
||||
controlsHandle.cleanup();
|
||||
sqlite.close();
|
||||
cacheSqlite.close();
|
||||
emulatorsSqlite.close();
|
||||
sqlite.close();
|
||||
config._closeWatcher();
|
||||
customEmulators._closeWatcher();
|
||||
console.log("Finished Cleaning Up");
|
||||
}
|
||||
|
||||
|
|
@ -117,7 +120,7 @@ export async function reloadDatabase ()
|
|||
db = drizzle(sqlite, { schema });
|
||||
cache = drizzle(cacheSqlite, { schema: cacheSchema });
|
||||
migrate(db!, { migrationsFolder: appPath("./drizzle") });
|
||||
cache.run(`
|
||||
await cache.run(`
|
||||
CREATE TABLE IF NOT EXISTS item_cache (
|
||||
key TEXT PRIMARY KEY,
|
||||
data TEXT NOT NULL,
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import fs from "node:fs/promises";
|
|||
import { Downloader } from "@/bun/utils/downloader";
|
||||
import { ensureDir, move } from "fs-extra";
|
||||
import { simulateProgress } from "@/bun/utils";
|
||||
import { path7za } from "7zip-bin";
|
||||
|
||||
type EmulatorDownloadStates = "download" | "extract";
|
||||
|
||||
|
|
@ -97,7 +98,7 @@ export class EmulatorDownloadJob implements IJob<z.infer<typeof EmulatorDownload
|
|||
let destinationPath = destinationPaths[0];
|
||||
await new Promise((resolve, reject) =>
|
||||
{
|
||||
const seven = Seven.extractFull(destinationPath, emulatorsFolder, { $bin: process.env.ZIP7_PATH, $progress: true });
|
||||
const seven = Seven.extractFull(destinationPath, emulatorsFolder, { $bin: process.env.ZIP7_PATH ?? path7za, $progress: true, noRootDuplication: true });
|
||||
seven.on('progress', p => context.setProgress(p.percent, "extract"));
|
||||
seven.on('error', e => reject(e));
|
||||
seven.on('end', () => resolve(true));
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ import Seven from 'node-7z';
|
|||
import z from "zod";
|
||||
import { checkFiles } from "../games/services/utils";
|
||||
import { ensureDir } from "fs-extra";
|
||||
import { path7za } from "7zip-bin";
|
||||
|
||||
interface JobConfig
|
||||
{
|
||||
|
|
@ -45,7 +46,7 @@ export class InstallJob implements IJob<never, InstallJobStates>
|
|||
public async start (cx: JobContext<InstallJob, never, InstallJobStates>)
|
||||
{
|
||||
cx.setProgress(0, 'download');
|
||||
fs.mkdir(config.get('downloadPath'), { recursive: true });
|
||||
await fs.mkdir(config.get('downloadPath'), { recursive: true });
|
||||
|
||||
const downloadPath = config.get('downloadPath');
|
||||
let info: DownloadInfo | undefined;
|
||||
|
|
@ -111,7 +112,7 @@ export class InstallJob implements IJob<never, InstallJobStates>
|
|||
const extractPath = path.join(config.get('downloadPath'), info.extract_path);
|
||||
await new Promise((resolve, reject) =>
|
||||
{
|
||||
const seven = Seven.extractFull(filePath, extractPath, { $bin: process.env.ZIP7_PATH, $progress: true });
|
||||
const seven = Seven.extractFull(filePath, extractPath, { $bin: process.env.ZIP7_PATH ?? path7za, $progress: true });
|
||||
seven.on('progress', p =>
|
||||
{
|
||||
cx.setProgress(progress + p.percent * progressDelta, "extract");
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ export async function RunAPIServer ()
|
|||
apiServer: api,
|
||||
async cleanup ()
|
||||
{
|
||||
await api.stop();
|
||||
await api.stop(true);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
@ -105,7 +105,7 @@ export class TaskQueue
|
|||
{
|
||||
this.queue = [];
|
||||
this.activeQueue.forEach(c => c.abort());
|
||||
return Promise.all(this.activeQueue.map(c => c.promise));
|
||||
return Promise.all(this.activeQueue.map(c => c.promise.promise));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue