highlight.spec.js 6.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. var highlight_1 = require("./highlight");
  4. describe('highlight.js', function () {
  5. describe('highlightError', function () {
  6. it('should error highlight unescaped', function () {
  7. var htmlInput = "x & y";
  8. var errorCharStart = 2;
  9. var errorLength = 1;
  10. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  11. expect(v).toEqual("x <span class=\"ion-diagnostics-error-chr\">&</span> y");
  12. });
  13. it('should error highlight escaped >', function () {
  14. var sourceText = "x > y";
  15. var htmlInput = highlight_1.highlight('typescript', sourceText, true).value;
  16. var errorCharStart = 2;
  17. var errorLength = 1;
  18. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  19. expect(v).toEqual("x <span class=\"ion-diagnostics-error-chr\">&gt;</span> y");
  20. });
  21. it('should error highlight before escaped >', function () {
  22. var sourceText = "if (x > y) return;";
  23. var htmlInput = highlight_1.highlight('typescript', sourceText, true).value;
  24. var errorCharStart = 4;
  25. var errorLength = 1;
  26. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  27. expect(v).toEqual("<span class=\"hljs-keyword\">if</span> (<span class=\"ion-diagnostics-error-chr\">x</span> &gt; y) <span class=\"hljs-keyword\">return</span>;");
  28. });
  29. it('should error highlight after escaped <', function () {
  30. var sourceText = "if (x < y) return;";
  31. var htmlInput = highlight_1.highlight('typescript', sourceText, true).value;
  32. var errorCharStart = 8;
  33. var errorLength = 1;
  34. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  35. expect(v).toEqual("<span class=\"hljs-keyword\">if</span> (x &lt; <span class=\"ion-diagnostics-error-chr\">y</span>) <span class=\"hljs-keyword\">return</span>;");
  36. });
  37. it('should error highlight first 3 chars', function () {
  38. // var name: string = 'Ellie';
  39. var htmlInput = "<span class=\"hljs-keyword\">var</span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;";
  40. var errorCharStart = 0;
  41. var errorLength = 3;
  42. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  43. expect(v).toEqual("<span class=\"hljs-keyword\"><span class=\"ion-diagnostics-error-chr\">v</span><span class=\"ion-diagnostics-error-chr\">a</span><span class=\"ion-diagnostics-error-chr\">r</span></span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;");
  44. });
  45. it('should error highlight second char', function () {
  46. // var name: string = 'Ellie';
  47. var htmlInput = "<span class=\"hljs-keyword\">var</span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;";
  48. var errorCharStart = 1;
  49. var errorLength = 1;
  50. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  51. expect(v).toEqual("<span class=\"hljs-keyword\">v<span class=\"ion-diagnostics-error-chr\">a</span>r</span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;");
  52. });
  53. it('should error highlight first char', function () {
  54. // var name: string = 'Ellie';
  55. var htmlInput = "<span class=\"hljs-keyword\">var</span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;";
  56. var errorCharStart = 0;
  57. var errorLength = 1;
  58. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  59. expect(v).toEqual("<span class=\"hljs-keyword\"><span class=\"ion-diagnostics-error-chr\">v</span>ar</span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;");
  60. });
  61. it('should return the same if there are is no errorLength', function () {
  62. // textInput = `var name: string = 'Ellie';`;
  63. var htmlInput = "<span class=\"hljs-keyword\">var</span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;";
  64. var errorCharStart = 10;
  65. var errorLength = 0;
  66. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  67. expect(v).toEqual(htmlInput);
  68. });
  69. it('should return the same if there are is no errorCharStart', function () {
  70. // textInput = `var name: string = 'Ellie';`;
  71. var htmlInput = "<span class=\"hljs-keyword\">var</span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;";
  72. var errorCharStart = -1;
  73. var errorLength = 10;
  74. var v = highlight_1.highlightError(htmlInput, errorCharStart, errorLength);
  75. expect(v).toEqual(htmlInput);
  76. });
  77. });
  78. describe('typescript', function () {
  79. it('should replace typescript with <', function () {
  80. var sourceText = "if (x < y) return;";
  81. var v = highlight_1.highlight('typescript', sourceText, true).value;
  82. expect(v).toEqual("<span class=\"hljs-keyword\">if</span> (x &lt; y) <span class=\"hljs-keyword\">return</span>;");
  83. });
  84. it('should replace typescript', function () {
  85. var sourceText = "var name: string = 'Ellie';";
  86. var v = highlight_1.highlight('typescript', sourceText, true).value;
  87. expect(v).toEqual("<span class=\"hljs-keyword\">var</span> name: <span class=\"hljs-built_in\">string</span> = <span class=\"hljs-string\">'Ellie'</span>;");
  88. });
  89. });
  90. describe('html', function () {
  91. it('should replace html', function () {
  92. var sourceText = "<div key=\"value\">Text</div>";
  93. var v = highlight_1.highlight('html', sourceText, true).value;
  94. expect(v).toEqual("<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">div</span> <span class=\"hljs-attr\">key</span>=<span class=\"hljs-string\">\"value\"</span>&gt;</span>Text<span class=\"hljs-tag\">&lt;/<span class=\"hljs-name\">div</span>&gt;</span>");
  95. });
  96. });
  97. describe('scss', function () {
  98. it('should replace scss', function () {
  99. var sourceText = ".className { color: $red; }";
  100. var v = highlight_1.highlight('scss', sourceText, true).value;
  101. expect(v).toEqual("<span class=\"hljs-selector-class\">.className</span> { <span class=\"hljs-attribute\">color</span>: <span class=\"hljs-variable\">$red</span>; }");
  102. });
  103. });
  104. });