RegExp.js 985 B

12345678910111213141516171819202122232425262728293031
  1. describe("errors", () => {
  2. test("invalid pattern", () => {
  3. expect(() => {
  4. RegExp("[");
  5. }).toThrowWithMessage(
  6. SyntaxError,
  7. "RegExp compile error: Error during parsing of regular expression:"
  8. );
  9. });
  10. test("invalid flag", () => {
  11. expect(() => {
  12. RegExp("", "x");
  13. }).toThrowWithMessage(SyntaxError, "Invalid RegExp flag 'x'");
  14. });
  15. test("repeated flag", () => {
  16. expect(() => {
  17. RegExp("", "gg");
  18. }).toThrowWithMessage(SyntaxError, "Repeated RegExp flag 'g'");
  19. });
  20. });
  21. test("basic functionality", () => {
  22. expect(RegExp().toString()).toBe("/(?:)/");
  23. expect(RegExp(undefined).toString()).toBe("/(?:)/");
  24. expect(RegExp("foo").toString()).toBe("/foo/");
  25. expect(RegExp("foo", undefined).toString()).toBe("/foo/");
  26. expect(RegExp("foo", "g").toString()).toBe("/foo/g");
  27. expect(RegExp(undefined, "g").toString()).toBe("/(?:)/g");
  28. });