mirror of
https://github.com/zadam/trilium.git
synced 2026-04-10 22:17:48 +02:00
47 lines
2.1 KiB
TypeScript
47 lines
2.1 KiB
TypeScript
import { beforeAll } from "vitest";
|
|
import { readFileSync } from "fs";
|
|
import { join } from "path";
|
|
import { initializeCore } from "@triliumnext/core";
|
|
import { serverZipExportProviderFactory } from "../src/services/export/zip/factory.js";
|
|
import ClsHookedExecutionContext from "../src/cls_provider.js";
|
|
import NodejsCryptoProvider from "../src/crypto_provider.js";
|
|
import NodejsZipProvider from "../src/zip_provider.js";
|
|
import ServerPlatformProvider from "../src/platform_provider.js";
|
|
import BetterSqlite3Provider from "../src/sql_provider.js";
|
|
import NodejsInAppHelpProvider from "../src/in_app_help_provider.js";
|
|
import { initializeTranslations } from "../src/services/i18n.js";
|
|
|
|
// Initialize environment variables.
|
|
process.env.TRILIUM_DATA_DIR = join(__dirname, "db");
|
|
process.env.TRILIUM_RESOURCE_DIR = join(__dirname, "../src");
|
|
process.env.TRILIUM_INTEGRATION_TEST = "memory";
|
|
process.env.TRILIUM_ENV = "dev";
|
|
process.env.TRILIUM_PUBLIC_SERVER = "http://localhost:4200";
|
|
|
|
beforeAll(async () => {
|
|
// Load the integration test database into memory. The fixture at
|
|
// spec/db/document.db is pre-seeded with the schema, demo content, and
|
|
// a known password ("demo1234") that the ETAPI tests log in with. Each
|
|
// test file runs in its own vitest fork (pool: "forks"), so each gets a
|
|
// fresh in-memory copy and mutations don't leak across files.
|
|
const dbProvider = new BetterSqlite3Provider();
|
|
dbProvider.loadFromBuffer(readFileSync(join(__dirname, "db", "document.db")));
|
|
|
|
await initializeCore({
|
|
dbConfig: {
|
|
provider: dbProvider,
|
|
isReadOnly: false,
|
|
onTransactionCommit() {},
|
|
onTransactionRollback() {}
|
|
},
|
|
crypto: new NodejsCryptoProvider(),
|
|
zip: new NodejsZipProvider(),
|
|
zipExportProviderFactory: serverZipExportProviderFactory,
|
|
executionContext: new ClsHookedExecutionContext(),
|
|
schema: readFileSync(require.resolve("@triliumnext/core/src/assets/schema.sql"), "utf-8"),
|
|
platform: new ServerPlatformProvider(),
|
|
translations: initializeTranslations,
|
|
inAppHelp: new NodejsInAppHelpProvider()
|
|
});
|
|
});
|