mirror of
https://github.com/UNITRONIX/BetterDesk.git
synced 2026-09-11 13:49:03 +00:00
b3973c4991
Prevent concurrent Go and console startup from generating mismatched admin passwords, and keep fresh Docker authentication on the centralized SQLite store. Refs #385 Thanks: INSOLVE (Honorary); Marco Jakobs (@jacotec); MyNameisStitch (@MyNameisStitch); Redspin (@playerumpknow)
41 lines
1.4 KiB
JavaScript
41 lines
1.4 KiB
JavaScript
'use strict';
|
|
|
|
const fs = require('fs');
|
|
const os = require('os');
|
|
const path = require('path');
|
|
const Database = require('better-sqlite3');
|
|
|
|
describe('dbAdapter SQLite single-store topology', () => {
|
|
let tempDir;
|
|
|
|
beforeEach(() => {
|
|
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'betterdesk-single-store-'));
|
|
process.env.DATA_DIR = path.join(tempDir, 'panel-data');
|
|
process.env.DB_PATH = path.join(tempDir, 'db_v2.sqlite3');
|
|
process.env.DB_TYPE = 'sqlite';
|
|
jest.resetModules();
|
|
});
|
|
|
|
afterEach(() => {
|
|
delete process.env.DATA_DIR;
|
|
delete process.env.DB_PATH;
|
|
delete process.env.DB_TYPE;
|
|
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
});
|
|
|
|
it('uses db_v2.sqlite3 on a fresh install and never creates auth.db', async () => {
|
|
const { getAdapter } = require('../services/dbAdapter');
|
|
const adapter = getAdapter();
|
|
await adapter.init();
|
|
|
|
const legacyAuthPath = path.join(process.env.DATA_DIR, 'auth.db');
|
|
expect(fs.existsSync(legacyAuthPath)).toBe(false);
|
|
|
|
const main = new Database(process.env.DB_PATH, { readonly: true });
|
|
expect(main.prepare(`SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'users'`).get()).toBeTruthy();
|
|
main.close();
|
|
expect(adapter.getSqliteAuthDb()).toBe(adapter.getSqliteMainDb());
|
|
await adapter.close();
|
|
});
|
|
});
|