23 lines
862 B
JavaScript
23 lines
862 B
JavaScript
test("basic functionality", () => {
|
|
const localSym = Symbol("foo");
|
|
const globalSym = Symbol.for("foo");
|
|
|
|
expect(localSym).not.toBe(globalSym);
|
|
expect(localSym).not.toBe(Symbol("foo"));
|
|
expect(globalSym).not.toBe(Symbol("foo"));
|
|
expect(globalSym).toBe(Symbol.for("foo"));
|
|
expect(localSym.toString()).toBe("Symbol(foo)");
|
|
expect(globalSym.toString()).toBe("Symbol(foo)");
|
|
|
|
expect(Symbol.for(1).description).toBe("1");
|
|
expect(Symbol.for(true).description).toBe("true");
|
|
expect(Symbol.for({}).description).toBe("[object Object]");
|
|
expect(Symbol.for().description).toBe("undefined");
|
|
expect(Symbol.for(null).description).toBe("null");
|
|
});
|
|
|
|
test("symbol argument throws an error", () => {
|
|
expect(() => {
|
|
Symbol.for(Symbol());
|
|
}).toThrowWithMessage(TypeError, "Cannot convert symbol to string");
|
|
});
|