(type: "memory" | "persistent" = "memory")
| 45 | }; |
| 46 | |
| 47 | function databaseTest(type: "memory" | "persistent" = "memory") { |
| 48 | const dir = path.join(tmpdir(), "notesnook-tests-tmp"); |
| 49 | if (!existsSync(dir)) mkdirSync(dir, { recursive: true }); |
| 50 | const dbPath = path.join(dir, `notesnook-${getId()}.sql`); |
| 51 | const db = new DB(); |
| 52 | const betterSqliteDb = BetterSQLite3( |
| 53 | type === "persistent" ? dbPath : ":memory:" |
| 54 | ).unsafeMode(true); |
| 55 | db.setup({ |
| 56 | storage: new NodeStorageInterface(), |
| 57 | eventsource: EventSource, |
| 58 | fs: FS, |
| 59 | compressor: async () => Compressor, |
| 60 | maxNoteVersions: async () => 1000, |
| 61 | sqliteOptions: { |
| 62 | dialect: (name) => |
| 63 | new SqliteDialect({ |
| 64 | database: betterSqliteDb |
| 65 | }), |
| 66 | password: type === "persistent" ? "iamalongpassword" : undefined |
| 67 | }, |
| 68 | batchSize: 500 |
| 69 | }); |
| 70 | betterTrigram.load(betterSqliteDb); |
| 71 | fts5Html.load(betterSqliteDb); |
| 72 | betterSqliteDb.loadExtension(getLoadablePath()); |
| 73 | return db.init().then(() => db); |
| 74 | } |
| 75 | |
| 76 | const notebookTest = (notebook = TEST_NOTEBOOK) => |
| 77 | databaseTest().then(async (db) => { |
no test coverage detected