summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibJS/Tests/builtins/Symbol/Symbol.keyFor.js
blob: 8b04f652bce9bc343a3718fa2ef3fe6b36cd00d3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
test("basic functionality", () => {
    const localSym = Symbol("foo");
    const globalSym = Symbol.for("foo");

    expect(Symbol.keyFor(localSym)).toBeUndefined();
    expect(Symbol.keyFor(globalSym)).toBe("foo");
});

test("bad argument values", () => {
    [
        [1, "1"],
        [null, "null"],
        [undefined, "undefined"],
        [[], "[object Array]"],
        [{}, "[object Object]"],
        [true, "true"],
        ["foobar", "foobar"],
        [function () {}, "[object ScriptFunction]"], // FIXME: Better function stringification
    ].forEach(testCase => {
        expect(() => {
            Symbol.keyFor(testCase[0]);
        }).toThrowWithMessage(TypeError, `${testCase[1]} is not a symbol`);
    });
});