Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import lunr from "lunr";
import {
acronymAliases,
registerAcronymAliases,
useAcronymAliases,
} from "@/plugins/search/lunr-pipelines";
describe("lunr-pipelins.js", () => {
afterEach(() => {
jest.restoreAllMocks();
});
it("should update token with acronym alias", () => {
const mockToken = {
toString: () => "cso",
update: jest.fn(),
};
acronymAliases(mockToken);
expect(mockToken.update).toHaveBeenCalledTimes(1);
const updateFn = mockToken.update.mock.calls[0][0];
expect(typeof updateFn).toEqual("function");
expect(updateFn()).toEqual("chief software officer");
});
it("should not update token with alias if no matching alias", () => {
const mockToken = {
toString: () => "mock",
update: jest.fn(),
};
acronymAliases(mockToken);
expect(mockToken.update).toHaveBeenCalledTimes(0);
});
it("should only register acronymAliases once", () => {
const spy = jest.spyOn(lunr.Pipeline, "registerFunction");
registerAcronymAliases();
registerAcronymAliases();
expect(spy).toBeCalledTimes(1);
});
it("should configure lunrjs builder", () => {
const mockBuilder = {
pipeline: { before: jest.fn() },
searchPipeline: { before: jest.fn() },
};
useAcronymAliases(mockBuilder);
expect(mockBuilder.pipeline.before).toHaveBeenCalledTimes(1);
expect(mockBuilder.pipeline.before).toHaveBeenCalledWith(
lunr.stemmer,
acronymAliases
);
expect(mockBuilder.searchPipeline.before).toHaveBeenCalledTimes(1);
expect(mockBuilder.searchPipeline.before).toHaveBeenCalledWith(
lunr.stemmer,
acronymAliases
);
});
});