mirror of
https://github.com/MasterAcnolo/Freedom-Loader.git
synced 2026-11-13 15:09:20 +01:00
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
const {mergeMissingFeatures} = require("../../config");
|
|
|
|
describe("configuration migration", () => {
|
|
test("adds missing defaults and preserves user values", () => {
|
|
const result = mergeMissingFeatures(
|
|
{enabled: true, retries: 3},
|
|
{enabled: false}
|
|
);
|
|
|
|
expect(result).toEqual({
|
|
features: {enabled: false, retries: 3},
|
|
changed: true,
|
|
});
|
|
});
|
|
|
|
test("preserves unknown user-defined keys", () => {
|
|
const result = mergeMissingFeatures(
|
|
{enabled: true},
|
|
{enabled: false, customSetting: "keep me"}
|
|
);
|
|
|
|
expect(result).toEqual({
|
|
features: {enabled: false, customSetting: "keep me"},
|
|
changed: false,
|
|
});
|
|
});
|
|
|
|
test("reports no migration when all default keys exist", () => {
|
|
const result = mergeMissingFeatures(
|
|
{enabled: true, retries: 3},
|
|
{enabled: false, retries: 0}
|
|
);
|
|
|
|
expect(result.changed).toBe(false);
|
|
expect(result.features.retries).toBe(0);
|
|
});
|
|
|
|
test("rejects non-object configurations", () => {
|
|
expect(() => mergeMissingFeatures({}, [])).toThrow(
|
|
"User configuration must be a JSON object"
|
|
);
|
|
});
|
|
});
|