ui-spec.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. const dedent = require('dedent');
  2. describe("Renders Markdown", () => {
  3. describe("properly when given no opts", () => {
  4. it("handles bold", () => {
  5. expect(atom.ui.markdown.render("**Hello World**"))
  6. .toBe("<p><strong>Hello World</strong></p>\n");
  7. });
  8. });
  9. it(`escapes HTML in code blocks properly`, () => {
  10. let input = dedent`
  11. Lorem ipsum dolor.
  12. \`\`\`html
  13. <p>sit amet</p>
  14. \`\`\`
  15. `
  16. let expected = dedent`
  17. <p>Lorem ipsum dolor.</p>
  18. <pre><code class="language-html">&lt;p&gt;sit amet&lt;/p&gt;
  19. </code></pre>
  20. `
  21. expect(
  22. atom.ui.markdown.render(input).trim()
  23. ).toBe(expected);
  24. })
  25. describe("transforms links correctly", () => {
  26. it("makes no changes to a fqdn link", () => {
  27. expect(atom.ui.markdown.render("[Hello World](https://github.com)"))
  28. .toBe('<p><a href="https://github.com">Hello World</a></p>\n');
  29. });
  30. it("resolves package links to pulsar", () => {
  31. expect(atom.ui.markdown.render("[Hello](https://atom.io/packages/hey-pane)"))
  32. .toBe('<p><a href="https://web.pulsar-edit.dev/packages/hey-pane">Hello</a></p>\n');
  33. });
  34. it("resolves atom links to web archive", () => {
  35. expect(atom.ui.markdown.render("[Hello](https://flight-manual.atom.io/some-docs)"))
  36. .toBe('<p><a href="https://web.archive.org/web/20221215003438/https://flight-manual.atom.io/some-docs">Hello</a></p>\n');
  37. });
  38. it("resolves incomplete local links", () => {
  39. expect(atom.ui.markdown.render(
  40. "[Hello](./readme.md)",
  41. { rootDomain: "https://github.com/pulsar-edit/pulsar" }
  42. )).toBe('<p><a href="https://github.com/pulsar-edit/pulsar/blob/HEAD/readme.md">Hello</a></p>\n');
  43. });
  44. it("resolves incomplete root links", () => {
  45. expect(atom.ui.markdown.render(
  46. "[Hello](/readme.md)",
  47. { rootDomain: "https://github.com/pulsar-edit/pulsar" }
  48. )).toBe('<p><a href="https://github.com/pulsar-edit/pulsar/blob/HEAD/readme.md">Hello</a></p>\n');
  49. });
  50. });
  51. });