Symbol.keyFor.js 741 B

123456789101112131415161718192021222324
  1. test("basic functionality", () => {
  2. const localSym = Symbol("foo");
  3. const globalSym = Symbol.for("foo");
  4. expect(Symbol.keyFor(localSym)).toBeUndefined();
  5. expect(Symbol.keyFor(globalSym)).toBe("foo");
  6. });
  7. test("bad argument values", () => {
  8. [
  9. [1, "1"],
  10. [null, "null"],
  11. [undefined, "undefined"],
  12. [[], "[object Array]"],
  13. [{}, "[object Object]"],
  14. [true, "true"],
  15. ["foobar", "foobar"],
  16. [function () {}, "[object OrdinaryFunctionObject]"], // FIXME: Better function stringification
  17. ].forEach(testCase => {
  18. expect(() => {
  19. Symbol.keyFor(testCase[0]);
  20. }).toThrowWithMessage(TypeError, `${testCase[1]} is not a symbol`);
  21. });
  22. });