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") + } }