Parcourir la source

Merge pull request #3287 from shockey/bug/3279-markdown-falsey-values

Don't render Markdown if input or sanitized input is empty
bubble
shockey il y a 7 ans
committed by GitHub
Parent
révision
4c2a6f452e
2 fichiers modifiés avec 43 ajouts et 0 suppressions
  1. +6
    -0
      src/core/components/providers/markdown.jsx
  2. +37
    -0
      test/bugs/3279-empty-markdown-source.js

+ 6
- 0
src/core/components/providers/markdown.jsx Voir le fichier

@@ -11,6 +11,12 @@ const sanitizeOptions = {

function Markdown({ source }) {
const sanitized = sanitize(source, sanitizeOptions)

// sometimes the sanitizer returns "undefined" as a string
if(!source || !sanitized || sanitized === "undefined") {
return null
}

return <Remarkable
options={{html: true, typographer: true, linkify: true, linkTarget: "_blank"}}
source={sanitized}


+ 37
- 0
test/bugs/3279-empty-markdown-source.js Voir le fichier

@@ -0,0 +1,37 @@
/* eslint-env mocha */
import React from "react"
import expect from "expect"
import { render } from "enzyme"
import Markdown from "components/providers/markdown"

describe("UI-3279: Empty Markdown inputs causing bare `undefined` in output", function(){
it("should return no text for `null` as source input", function(){
let props = {
source: null
}

let el = render(<Markdown {...props}/>)

expect(el.text()).toEqual("")
})

it("should return no text for `undefined` as source input", function(){
let props = {
source: undefined
}

let el = render(<Markdown {...props}/>)

expect(el.text()).toEqual("")
})

it("should return no text for empty string as source input", function(){
let props = {
source: ""
}

let el = render(<Markdown {...props}/>)

expect(el.text()).toEqual("")
})
})

Chargement…
Annuler
Enregistrer