From c150c950576b64aa4946a4dc44abb5a26a7b6137 Mon Sep 17 00:00:00 2001 From: Evelyn Hathaway Date: Mon, 6 Jul 2020 21:56:54 -0700 Subject: [PATCH] fix: add edge cases for quotes, use sanitize function for aria-label (#63) --- preview/preview.md | 2 +- src/index.ts | 19 ++++++++++--------- tap-snapshots/test-badgen.spec.ts-TAP.test.js | 6 +++--- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/preview/preview.md b/preview/preview.md index a430b04..8fce20b 100644 --- a/preview/preview.md +++ b/preview/preview.md @@ -60,4 +60,4 @@ ## Edge Cases -![](/<{[(&)]}>/<{[(&)]}>) +![](/'"<{[(&)]}>"'/'"<{[(&)]}>"') diff --git a/src/index.ts b/src/index.ts index b768c69..76310ce 100644 --- a/src/index.ts +++ b/src/index.ts @@ -52,7 +52,7 @@ export function badgen ({ const accessibleText = createAccessibleText({label, status}) if (style === 'flat') { - return ` + return ` ${accessibleText} @@ -68,7 +68,7 @@ export function badgen ({ ` } - return ` + return ` ${accessibleText} @@ -100,7 +100,7 @@ function bare ({ status, color, style }) { status = sanitize(status) if (style === 'flat') { - return ` + return ` ${status} @@ -112,7 +112,7 @@ function bare ({ status, color, style }) { ` } - return ` + return ` ${status} @@ -131,11 +131,12 @@ function bare ({ status, color, style }) { } function sanitize (str: string): string { - return str.replace(/\u0026/g, '&').replace(/\u003C/g, '<') -} - -function sanitizeAttribute (str: string): string { - return str.replace(/\u0022/g, '\"') + return str + .replace(/\u0026/g, '&') + .replace(/\u003C/g, '<') + .replace(/\u003E/g, '>') + .replace(/\u0022/g, '"') + .replace(/\u0027/g, ''') } interface AccessibleTextProps { diff --git a/tap-snapshots/test-badgen.spec.ts-TAP.test.js b/tap-snapshots/test-badgen.spec.ts-TAP.test.js index cea8802..14bc83b 100644 --- a/tap-snapshots/test-badgen.spec.ts-TAP.test.js +++ b/tap-snapshots/test-badgen.spec.ts-TAP.test.js @@ -172,7 +172,7 @@ exports[`test/badgen.spec.ts TAP generate badge with { status, icon, iconWidth } ` exports[`test/badgen.spec.ts TAP generate bare badge with { status } > snapshot 1`] = ` - + v1.0.0 @@ -191,7 +191,7 @@ exports[`test/badgen.spec.ts TAP generate bare badge with { status } > snapshot ` exports[`test/badgen.spec.ts TAP generate bare badge with { status, color } > snapshot 1`] = ` - + v1.0.0 @@ -210,7 +210,7 @@ exports[`test/badgen.spec.ts TAP generate bare badge with { status, color } > sn ` exports[`test/badgen.spec.ts TAP generate bare badge with { status, style } > snapshot 1`] = ` - + v1.0.0