String.raw.js 844 B

12345678910111213141516171819202122232425262728293031
  1. test("basic functionality", () => {
  2. expect(String.raw).toHaveLength(1);
  3. let str = String.raw`foo\nbar`;
  4. expect(str).toHaveLength(8);
  5. expect(str).toBe("foo\\nbar");
  6. str = String.raw`foo ${1 + 9}\nbar${"hf!"}`;
  7. expect(str).toBe("foo 10\\nbarhf!");
  8. str = String.raw`${10}${20}${30}`;
  9. expect(str).toBe("102030");
  10. str = String.raw({ raw: ["foo ", "\\nbar"] }, 10, "hf!");
  11. expect(str).toBe("foo 10\\nbar");
  12. str = String.raw({ raw: ["foo ", "\\nbar"] });
  13. expect(str).toBe("foo \\nbar");
  14. str = String.raw({ raw: [] }, 10, "hf!");
  15. expect(str).toBe("");
  16. str = String.raw({ raw: 1 });
  17. expect(str).toBe("");
  18. });
  19. test("passing object with no 'raw' property", () => {
  20. expect(() => {
  21. String.raw({});
  22. }).toThrowWithMessage(TypeError, "ToObject on null or undefined");
  23. });