42 lines
1.1 KiB
JavaScript
42 lines
1.1 KiB
JavaScript
import { isIdentifierName } from "..";
|
|
|
|
describe("isIdentifierName", function () {
|
|
it("returns false if provided string is empty", function () {
|
|
expect(isIdentifierName("")).toBe(false);
|
|
});
|
|
it.each([
|
|
"hello",
|
|
"$",
|
|
"ゆゆ式",
|
|
"$20",
|
|
"hello20",
|
|
"_",
|
|
"if",
|
|
"_\u200c",
|
|
"_\u200d",
|
|
])(
|
|
"returns true if provided string %p is an IdentifierName",
|
|
function (word) {
|
|
expect(isIdentifierName(word)).toBe(true);
|
|
},
|
|
);
|
|
it.each(["+hello", "0$", "-ゆゆ式", "#_", "_#", "\ud800\ud800"])(
|
|
"returns false if provided string %p is not an IdentifierName",
|
|
function (word) {
|
|
expect(isIdentifierName(word)).toBe(false);
|
|
},
|
|
);
|
|
it("supports astral symbols", function () {
|
|
expect(isIdentifierName("x\uDB40\uDDD5")).toBe(true);
|
|
});
|
|
it("supports Unicode 13", () => {
|
|
expect(isIdentifierName("\u{30000}")).toBe(true);
|
|
});
|
|
it("supports Unicode 12", () => {
|
|
expect(isIdentifierName("\u{10fe0}")).toBe(true);
|
|
});
|
|
it("supports Unicode 11", () => {
|
|
expect(isIdentifierName("\u{10f00}")).toBe(true);
|
|
});
|
|
});
|