mirror of
https://github.com/xuthus83/pigallery2.git
synced 2024-11-03 21:04:03 +08:00
Merge pull request #889 from bpatrik/bugfix/config-defaults
Fix config default loading #888
This commit is contained in:
commit
1e4a6d4aef
@ -22,9 +22,8 @@ export class ExtensionConfigWrapper {
|
||||
// make sure the config file exists by the time we load it.
|
||||
// TODO: remove this once typeconfig is fixed and can properly load defaults in arrays
|
||||
if (!fs.existsSync((pc.__options as ConfigClassOptions<ServerConfig>).configPath)) {
|
||||
await pc.save();
|
||||
await pc.load();
|
||||
}
|
||||
|
||||
await pc.load(); // loading the basic configs, but we do not know the extension config hierarchy yet
|
||||
|
||||
// TODO make sure that all extensions are present even after loading them from file
|
||||
@ -47,7 +46,7 @@ export class ExtensionConfigWrapper {
|
||||
// make sure the config file exists by the time we load it.
|
||||
// TODO: remove this once typeconfig is fixed and can properly load defaults in arrays
|
||||
if (!fs.existsSync((pc.__options as ConfigClassOptions<ServerConfig>).configPath)) {
|
||||
pc.saveSync();
|
||||
pc.loadSync();
|
||||
}
|
||||
pc.loadSync(); // loading the basic configs, but we do not know the extension config hierarchy yet
|
||||
// TODO make sure that all extensions are present even after loading them from file
|
||||
|
@ -15,7 +15,7 @@ const isTesting = process.env['NODE_ENV'] == true || ['afterEach', 'after', 'bef
|
||||
.every((fn) => (global as any)[fn] instanceof Function);
|
||||
|
||||
@ConfigClass<IConfigClass<TAGS> & ServerConfig>({
|
||||
configPath: path.join(__dirname, !isTesting ? './../../../../config.json' : './../../../../test/backend/tmp/config.json'),
|
||||
configPath: path.join(__dirname, !isTesting ? './../../../../config.json' : './../../../../test/tmp/config.json'),
|
||||
crateConfigPathIfNotExists: isTesting,
|
||||
saveIfNotExist: true,
|
||||
attachDescription: true,
|
||||
|
25
test/common/unit/config/Config.ts
Normal file
25
test/common/unit/config/Config.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import {expect} from 'chai';
|
||||
import {ConfigClassBuilder} from 'typeconfig/node';
|
||||
import {ExtensionConfigWrapper} from '../../../../src/backend/model/extension/ExtensionConfigWrapper';
|
||||
import {TestHelper} from '../../../TestHelper';
|
||||
import * as fs from 'fs';
|
||||
|
||||
|
||||
describe('Config', () => {
|
||||
beforeEach(async () => {
|
||||
await fs.promises.rm(TestHelper.TMP_DIR, {recursive: true, force: true});
|
||||
});
|
||||
afterEach(async () => {
|
||||
await fs.promises.rm(TestHelper.TMP_DIR, {recursive: true, force: true});
|
||||
});
|
||||
it('should load default from env', () => {
|
||||
process.env['default-Media-tempFolder'] = 'test/test';
|
||||
const conf = ExtensionConfigWrapper.originalSync();
|
||||
expect(conf.Media.tempFolder).to.be.equal('test/test');
|
||||
expect(ConfigClassBuilder.attachPrivateInterface(conf.Media).__defaults.tempFolder).to.be.equal('test/test');
|
||||
expect(process.env['default-Media-tempFolder']).to.be.equal('test/test');
|
||||
const conf2 = ExtensionConfigWrapper.originalSync();
|
||||
expect(ConfigClassBuilder.attachPrivateInterface(conf2.Media).__defaults.tempFolder).to.be.equal('test/test');
|
||||
expect(conf2.Media.tempFolder).to.be.equal('test/test');
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue
Block a user