String.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. test("constructor properties", () => {
  2. expect(String).toHaveLength(1);
  3. expect(String.name).toBe("String");
  4. });
  5. test("typeof", () => {
  6. expect(typeof String()).toBe("string");
  7. expect(typeof new String()).toBe("object");
  8. });
  9. test("length", () => {
  10. expect(new String().length).toBe(0);
  11. expect(new String("a").length).toBe(1);
  12. expect(new String("\u180E").length).toBe(1);
  13. expect(new String("\uDBFF\uDFFF").length).toBe(2);
  14. // Issue #2280
  15. expect("⛳".length).toBe(1);
  16. expect("🔥".length).toBe(2);
  17. expect("🔥🔥🔥".length).toBe(6);
  18. expect("👨‍👩‍👦".length).toBe(8);
  19. expect("👩‍❤️‍💋‍👩".length).toBe(11);
  20. });
  21. test("indices", () => {
  22. expect("abc"[0]).toBe("a");
  23. expect("abc"[1]).toBe("b");
  24. expect("abc"[2]).toBe("c");
  25. expect("abc"[3]).toBeUndefined();
  26. expect("😀"[0]).toBe("\ud83d");
  27. expect("😀"[1]).toBe("\ude00");
  28. expect("😀"[2]).toBeUndefined();
  29. });
  30. test("properties", () => {
  31. expect(Object.getOwnPropertyNames("")).toEqual(["length"]);
  32. expect(Object.getOwnPropertyNames("a")).toEqual(["0", "length"]);
  33. expect(Object.getOwnPropertyNames("ab")).toEqual(["0", "1", "length"]);
  34. expect(Object.getOwnPropertyNames("abc")).toEqual(["0", "1", "2", "length"]);
  35. expect(Object.getOwnPropertyNames("😀")).toEqual(["0", "1", "length"]);
  36. });