mirror of
https://codeberg.org/forgejo/forgejo
synced 2024-12-05 02:54:46 +01:00
ac8d71ff07
Follow #23394
There were many bad smells in old code. This PR only moves the code into
Vue SFC, doesn't touch the unrelated logic.
update: after
5f23218c85
, there should be no usage of the vue-rumtime-compiler anymore
(hopefully), so I think this PR could close #19851
---------
Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com>
35 lines
1.5 KiB
JavaScript
35 lines
1.5 KiB
JavaScript
import {describe, expect, test} from 'vitest';
|
|
import {strSubMatch, calcMatchedWeight, filterRepoFilesWeighted} from './repo-findfile.js';
|
|
|
|
describe('Repo Find Files', () => {
|
|
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('calcMatchedWeight', () => {
|
|
expect(calcMatchedWeight(['a', 'b', 'c', 'd']) < calcMatchedWeight(['a', 'bc', 'c'])).toBeTruthy();
|
|
});
|
|
|
|
test('filterRepoFilesWeighted', () => {
|
|
// the first matched result should always be the "word.txt"
|
|
let res = filterRepoFilesWeighted(['word.txt', 'we-got-result.dat'], 'word');
|
|
expect(res).toHaveLength(2);
|
|
expect(res[0].matchResult).toEqual(['', 'word', '.txt']);
|
|
|
|
res = filterRepoFilesWeighted(['we-got-result.dat', 'word.txt'], 'word');
|
|
expect(res).toHaveLength(2);
|
|
expect(res[0].matchResult).toEqual(['', 'word', '.txt']);
|
|
});
|
|
});
|