Fix regression introduced in dae0bb4c67.

Add tests so it doesn't bite me again.
This commit is contained in:
Guo Xiang Tan 2019-03-26 17:52:06 +08:00
parent dc90133d29
commit e0cb2a434a
2 changed files with 32 additions and 2 deletions

View File

@ -1,14 +1,16 @@
import { PHRASE_MATCH_REGEXP_PATTERN } from "discourse/lib/concerns/search-constants";
export const CLASS_NAME = "search-highlight";
export default function($elem, term) {
if (!_.isEmpty(term)) {
// special case ignore "l" which is used for magic sorting
let words = _.reject(
term.match(new RegExp(`${PHRASE_MATCH_REGEXP_PATTERN}|[^\s]+`, "g")),
term.match(new RegExp(`${PHRASE_MATCH_REGEXP_PATTERN}|[^\\s]+`, "g")),
t => t === "l"
);
words = words.map(w => w.replace(/^"(.*)"$/, "$1"));
$elem.highlight(words, { className: "search-highlight", wordsOnly: true });
$elem.highlight(words, { className: CLASS_NAME, wordsOnly: true });
}
}

View File

@ -0,0 +1,28 @@
import {
default as highlightText,
CLASS_NAME
} from "discourse/lib/highlight-text";
QUnit.module("lib:highlight-text");
QUnit.test("highlighting text", assert => {
fixture().html(
`
<p>This is some text to highlight</p>
`
);
highlightText(fixture(), "some text");
const terms = [];
fixture(`.${CLASS_NAME}`).each((_, elem) => {
terms.push(elem.textContent);
});
assert.equal(
terms.join(" "),
"some text",
"it should highlight the terms correctly"
);
});