Skip to content

Commit

Permalink
Better tests for #3262. Missed a few cases.
Browse files Browse the repository at this point in the history
  • Loading branch information
zachleat committed Apr 24, 2024
1 parent 6c540f9 commit 45f1aa5
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
8 changes: 4 additions & 4 deletions src/Util/ProxyWrap.js
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,15 @@ function wrapObject(target, fallback) {
let fallbackValue = Reflect.get(fallback, prop);

if (isPlainObject(fallbackValue)) {
if (Object.isFrozen(fallbackValue)) {
return fallbackValue;
}

debug("handler:get (fallback, object)", prop);
// set empty object on primary
let emptyObject = {};
Reflect.set(target, prop, emptyObject);

if (Object.isFrozen(fallbackValue)) {
return fallbackValue;
}

return wrapObject(emptyObject, fallbackValue);
}

Expand Down
11 changes: 11 additions & 0 deletions test/ProxyWrapTest.js
Original file line number Diff line number Diff line change
Expand Up @@ -55,3 +55,14 @@ test("Fails for invalid target", (t) => {
test("Fails for invalid fallback", (t) => {
t.throws(() => ProxyWrap({}, true));
});

test("Frozen Object", (t) => {
let test = ProxyWrap({}, Object.freeze({ eleventy: { generator: "Eleventy v3.0.0" } }));
t.deepEqual(test.eleventy.generator, "Eleventy v3.0.0");
});


test("Frozen Nested Object", (t) => {
let test = ProxyWrap({ eleventy: {} }, { eleventy: Object.freeze({ generator: "Eleventy v3.0.0" }) });
t.deepEqual(test.eleventy.generator, "Eleventy v3.0.0");
});

0 comments on commit 45f1aa5

Please sign in to comment.