From 7e886b787e91fb874f48599014a482730c7cd758 Mon Sep 17 00:00:00 2001 From: Abdullah Atta Date: Mon, 19 Feb 2024 16:34:03 +0500 Subject: [PATCH] core: refactor test setup & use better-sqlite-multiple-cipher --- packages/core/__tests__/setup/global.setup.ts | 31 +++++++++++++++++++ .../setup/test.setup.ts} | 4 +++ packages/core/package-lock.json | 10 +++--- packages/core/package.json | 2 +- packages/core/vitest.config.ts | 3 +- 5 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 packages/core/__tests__/setup/global.setup.ts rename packages/core/{globals.setup.js => __tests__/setup/test.setup.ts} (86%) diff --git a/packages/core/__tests__/setup/global.setup.ts b/packages/core/__tests__/setup/global.setup.ts new file mode 100644 index 000000000..69fee4d9d --- /dev/null +++ b/packages/core/__tests__/setup/global.setup.ts @@ -0,0 +1,31 @@ +/* +This file is part of the Notesnook project (https://notesnook.com/) + +Copyright (C) 2023 Streetwriters (Private) Limited + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +*/ + +import { rmSync } from "fs"; +import path from "path"; +import { tmpdir } from "os"; + +export default async function () { + return async () => { + rmSync(path.join(tmpdir(), "notesnook-tests-tmp"), { + force: true, + recursive: true + }); + }; +} diff --git a/packages/core/globals.setup.js b/packages/core/__tests__/setup/test.setup.ts similarity index 86% rename from packages/core/globals.setup.js rename to packages/core/__tests__/setup/test.setup.ts index 0f25a8bf4..0dc03351e 100644 --- a/packages/core/globals.setup.js +++ b/packages/core/__tests__/setup/test.setup.ts @@ -22,7 +22,11 @@ import dotenv from "dotenv"; import { DOMParser } from "linkedom"; import WebSocket from "ws"; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore globalThis.DOMParser = DOMParser; +// eslint-disable-next-line @typescript-eslint/ban-ts-comment +// @ts-ignore globalThis.WebSocket = WebSocket; require("abortcontroller-polyfill/dist/polyfill-patch-fetch"); dotenv.config(); diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index a4e2864fc..54ed77c7d 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -45,7 +45,7 @@ "@types/ws": "^8.5.5", "@vitest/coverage-v8": "^1.0.1", "abortcontroller-polyfill": "^1.7.3", - "better-sqlite3": "^8.6.0", + "better-sqlite3-multiple-ciphers": "^9.4.0", "bson-objectid": "^2.0.4", "cross-env": "^7.0.3", "dotenv": "^16.0.1", @@ -2537,10 +2537,10 @@ } ] }, - "node_modules/better-sqlite3": { - "version": "8.7.0", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-8.7.0.tgz", - "integrity": "sha512-99jZU4le+f3G6aIl6PmmV0cxUIWqKieHxsiF7G34CVFiE+/UabpYqkU0NJIkY/96mQKikHeBjtR27vFfs5JpEw==", + "node_modules/better-sqlite3-multiple-ciphers": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/better-sqlite3-multiple-ciphers/-/better-sqlite3-multiple-ciphers-9.4.0.tgz", + "integrity": "sha512-uQoBdShnpCdAPUmCPuLSrHtfSHAxjIFQvLnMbXHsvbWkfBP3sPfnnIaUTz7KHYRqgWNLlcQfs+9F9uqvMqau6Q==", "dev": true, "hasInstallScript": true, "dependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index 23bce48a0..a7f78c23e 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -20,7 +20,7 @@ "@types/ws": "^8.5.5", "@vitest/coverage-v8": "^1.0.1", "abortcontroller-polyfill": "^1.7.3", - "better-sqlite3": "^8.6.0", + "better-sqlite3-multiple-ciphers": "^9.4.0", "bson-objectid": "^2.0.4", "cross-env": "^7.0.3", "dotenv": "^16.0.1", diff --git a/packages/core/vitest.config.ts b/packages/core/vitest.config.ts index 0d6334888..c804772e6 100644 --- a/packages/core/vitest.config.ts +++ b/packages/core/vitest.config.ts @@ -23,7 +23,8 @@ const IS_E2E = process.env.IS_E2E === "true"; export default defineConfig({ test: { - setupFiles: ["./globals.setup.js"], + globalSetup: ["./__tests__/setup/global.setup.ts"], + setupFiles: ["./__tests__/setup/test.setup.ts"], coverage: { reporter: ["text", "html"], exclude: ["src/utils/templates/html/languages/*.js"],