summaryrefslogtreecommitdiffstats
path: root/web_src/js/utils.test.js
diff options
context:
space:
mode:
authorwxiaoguang <wxiaoguang@gmail.com>2022-10-08 19:22:44 +0800
committerGitHub <noreply@github.com>2022-10-08 12:22:44 +0100
commit768e16dad19e98e5a6090bd09a7662da6079eae0 (patch)
treee68861e02b9f99bd0e78fa6f44641512a2f547c7 /web_src/js/utils.test.js
parent7bb12d7efa9fd01e15ddc14b3b8e40df4a4abd42 (diff)
downloadgitea-768e16dad19e98e5a6090bd09a7662da6079eae0.tar.gz
gitea-768e16dad19e98e5a6090bd09a7662da6079eae0.zip
Use weighted algorithm for string matching when finding files in repo (#21370)
This PR is for: * https://github.com/go-gitea/gitea/issues/20231 Now, when a user searches `word`, they always see `/{word}.txt` before `/{w}e-g{o}t-{r}esult.{d}at` Demo: When searching "a", "a.ext" comes first. Then when searching "at", the longer matched "template" comes first. <details> ![image](https://user-images.githubusercontent.com/2114189/194588738-3644d891-956f-40e4-b79b-b97d34265456.png) ![image](https://user-images.githubusercontent.com/2114189/194588797-9b124670-4e1e-4510-a170-780295ed89b8.png) </details> This PR also makes the frontend tests could import feature JS files by introducing `jestSetup.js` Co-authored-by: delvh <dev.lh@web.de> Co-authored-by: silverwind <me@silverwind.io>
Diffstat (limited to 'web_src/js/utils.test.js')
-rw-r--r--web_src/js/utils.test.js18
1 files changed, 1 insertions, 17 deletions
diff --git a/web_src/js/utils.test.js b/web_src/js/utils.test.js
index 5c17c162af..762f29f6fe 100644
--- a/web_src/js/utils.test.js
+++ b/web_src/js/utils.test.js
@@ -1,5 +1,5 @@
import {
- basename, extname, isObject, uniq, stripTags, joinPaths, parseIssueHref, strSubMatch,
+ basename, extname, isObject, uniq, stripTags, joinPaths, parseIssueHref,
prettyNumber, parseUrl,
} from './utils.js';
@@ -86,22 +86,6 @@ test('parseIssueHref', () => {
expect(parseIssueHref('')).toEqual({owner: undefined, repo: undefined, type: undefined, index: undefined});
});
-test('strSubMatch', () => {
- expect(strSubMatch('abc', '')).toEqual(['abc']);
- expect(strSubMatch('abc', 'a')).toEqual(['', 'a', 'bc']);
- expect(strSubMatch('abc', 'b')).toEqual(['a', 'b', 'c']);
- expect(strSubMatch('abc', 'c')).toEqual(['ab', 'c']);
- expect(strSubMatch('abc', 'ac')).toEqual(['', 'a', 'b', 'c']);
- expect(strSubMatch('abc', 'z')).toEqual(['abc']);
- expect(strSubMatch('abc', 'az')).toEqual(['abc']);
-
- expect(strSubMatch('abc', 'aC')).toEqual(['', 'a', 'b', 'c']);
- expect(strSubMatch('abC', 'ac')).toEqual(['', 'a', 'b', 'C']);
-
- expect(strSubMatch('aabbcc', 'abc')).toEqual(['', 'a', 'a', 'b', 'b', 'c', 'c']);
- expect(strSubMatch('the/directory', 'hedir')).toEqual(['t', 'he', '/', 'dir', 'ectory']);
-});
-
test('prettyNumber', () => {
expect(prettyNumber()).toEqual('');
expect(prettyNumber(null)).toEqual('');