-
Notifications
You must be signed in to change notification settings - Fork 789
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: node compat v2 handle $ in inject preset (#6048)
* fix(node_compat): support $ characters in unenv inject preset Follow up on #6025 that makes the code a bit more resilient. * fixup! fix(node_compat): support $ characters in unenv inject preset * fixup! fix(node_compat): support $ characters in unenv inject preset * fixup! fix(node_compat): support $ characters in unenv inject preset --------- Co-authored-by: Peter Bacon Darwin <[email protected]>
- Loading branch information
1 parent
5d3d12f
commit 6a5979c
Showing
2 changed files
with
67 additions
and
7 deletions.
There are no files selected for viewing
47 changes: 47 additions & 0 deletions
47
packages/wrangler/src/__tests__/hybrid-nodejs-compat.test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
import { | ||
decodeFromLowerCase, | ||
encodeToLowerCase, | ||
} from "../deployment-bundle/esbuild-plugins/hybrid-nodejs-compat"; | ||
|
||
describe("hybrid nodejs compat", () => { | ||
describe("toLowerCase encoding and decoding", () => { | ||
describe("encodeToLowerCase", () => { | ||
it("should encode uppercase characters to lowercase prefixed with $", () => { | ||
expect(encodeToLowerCase("Performance")).toBe("$performance"); | ||
expect(encodeToLowerCase("PerformanceMark")).toBe("$performance$mark"); | ||
}); | ||
|
||
it("should encode $ as $$", () => { | ||
expect(encodeToLowerCase("$initial-and-final$")).toBe( | ||
"$$initial-and-final$$" | ||
); | ||
expect(encodeToLowerCase("$FollowedByCapital")).toBe( | ||
"$$$followed$by$capital" | ||
); | ||
expect(encodeToLowerCase("In$the$middle")).toBe("$in$$the$$middle"); | ||
}); | ||
}); | ||
|
||
describe("decodeFromLowerCase", () => { | ||
it("should decode uppercase characters from lowercase prefixed with $", () => { | ||
expect(decodeFromLowerCase("$foo$bar")).toBe("FooBar"); | ||
}); | ||
|
||
it("should decode $ from $$", () => { | ||
expect(decodeFromLowerCase("$$foo$bar")).toBe("$fooBar"); | ||
expect(decodeFromLowerCase("$$$query$$")).toBe("$Query$"); | ||
expect(decodeFromLowerCase("$$$$query")).toBe("$$query"); | ||
expect(decodeFromLowerCase("$$$$$query")).toBe("$$Query"); | ||
}); | ||
}); | ||
|
||
it("by symmetrical", () => { | ||
expect(decodeFromLowerCase(encodeToLowerCase("Performance"))).toBe( | ||
"Performance" | ||
); | ||
expect(decodeFromLowerCase(encodeToLowerCase("$foo$BarBaz"))).toBe( | ||
"$foo$BarBaz" | ||
); | ||
}); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters