Redesign the desktop workspace with task sidebars, live filters, clearer settings, and an accessible update dialog. Harden encrypted backup imports, configuration persistence, history retention, queue snapshots, shutdown recovery, and update installation ordering. Publish verified Windows artifacts and refreshed English documentation.
54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
const { describe, it } = require('node:test');
|
|
const assert = require('node:assert');
|
|
const path = require('path');
|
|
const fs = require('fs');
|
|
const os = require('os');
|
|
|
|
// Minimal app mock for ConfigStore
|
|
function createTestConfigStore() {
|
|
const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'mhu-test-'));
|
|
const mockApp = {
|
|
isPackaged: false,
|
|
getPath: (name) => tmpDir,
|
|
getPath: () => tmpDir
|
|
};
|
|
const ConfigStore = require('../lib/config-store');
|
|
const store = new ConfigStore(mockApp);
|
|
store.filePath = path.join(tmpDir, 'test-config.json');
|
|
return { store, tmpDir };
|
|
}
|
|
|
|
describe('remote config defaults', () => {
|
|
it('should include remote settings in defaults', () => {
|
|
const { store } = createTestConfigStore();
|
|
const config = store.load();
|
|
const remote = config.globalSettings.remote;
|
|
|
|
assert.strictEqual(remote.enabled, false);
|
|
assert.strictEqual(remote.port, 9100);
|
|
assert.strictEqual(typeof remote.token, 'string');
|
|
assert.strictEqual(remote.token, '');
|
|
assert.strictEqual(remote.allowInput, true);
|
|
});
|
|
|
|
it('should deep-merge remote settings with existing config', async () => {
|
|
const { store } = createTestConfigStore();
|
|
// Save config with partial remote settings
|
|
await store.save({
|
|
globalSettings: {
|
|
remote: { enabled: true, port: 9200 }
|
|
}
|
|
});
|
|
|
|
const config = store.load();
|
|
const remote = config.globalSettings.remote;
|
|
|
|
// Saved values preserved
|
|
assert.strictEqual(remote.enabled, true);
|
|
assert.strictEqual(remote.port, 9200);
|
|
// Defaults merged in
|
|
assert.strictEqual(remote.allowInput, true);
|
|
assert.strictEqual(remote.token, '');
|
|
});
|
|
});
|