// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license. // deno-lint-ignore-file no-console import { assertEquals, loadTestLibrary } from "./common.js"; const properties = loadTestLibrary(); if (import.meta.main) { properties.installCleanupHook(); console.log("installed cleanup hook"); } else { Deno.test("napi cleanup hook", async () => { const { stdout, stderr, code } = await new Deno.Command(Deno.execPath(), { args: [ "run", "--config", Deno.realPathSync("../config/deno.json"), "--no-lock", "--allow-read", "--allow-run", "--allow-ffi", "--unstable-ffi", import.meta.url, ], }).output(); assertEquals(new TextDecoder().decode(stderr), ""); assertEquals(code, 0); const stdoutText = new TextDecoder().decode(stdout); const stdoutLines = stdoutText.split("\n"); assertEquals(stdoutLines.length, 4); assertEquals(stdoutLines[0], "installed cleanup hook"); assertEquals(stdoutLines[1], "cleanup(18)"); assertEquals(stdoutLines[2], "cleanup(42)"); }); }