From 552914bb314f539f8a2ff831003509267d5f6e40 Mon Sep 17 00:00:00 2001 From: Greg Bolsinga Date: Sat, 15 Jun 2024 10:40:02 -0700 Subject: [PATCH] fix when emphasizing the empty string (#811) --- Sources/Site/Utility/String+EmphasizedMatching.swift | 2 ++ Tests/SiteTests/EmphasizedMatchingTests.swift | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/Sources/Site/Utility/String+EmphasizedMatching.swift b/Sources/Site/Utility/String+EmphasizedMatching.swift index e5301b0..38b883d 100644 --- a/Sources/Site/Utility/String+EmphasizedMatching.swift +++ b/Sources/Site/Utility/String+EmphasizedMatching.swift @@ -10,6 +10,8 @@ import RegexBuilder extension String { func emphasized(matching fragment: String) -> String { + guard !fragment.isEmpty else { return self } + let regex = Regex { Capture { fragment diff --git a/Tests/SiteTests/EmphasizedMatchingTests.swift b/Tests/SiteTests/EmphasizedMatchingTests.swift index c105f0e..2a0fd87 100644 --- a/Tests/SiteTests/EmphasizedMatchingTests.swift +++ b/Tests/SiteTests/EmphasizedMatchingTests.swift @@ -29,4 +29,12 @@ final class EmphasizedMatchingTests: XCTestCase { XCTAssertEqual("Gregr".emphasized(matching: "Gr"), "**Gr**egr") XCTAssertEqual("GregR".emphasized(matching: "gr"), "**Gr**egR") } + + func testNoMatches() throws { + XCTAssertEqual("Greg".emphasized(matching: "o"), "Greg") + } + + func testEmptyStringMatches() throws { + XCTAssertEqual("Greg".emphasized(matching: ""), "Greg") + } }