hugo-lunr-indexer
Version:
Generate Lunr indices for Hugo static sites by parsing front matter.
175 lines (138 loc) • 4.51 kB
JavaScript
const fs = require("fs");
const mockfs = require("mock-fs");
describe("hli api", () => {
const root = fs.realpathSync(process.cwd());
const hli = require(root);
describe("#constructor (language) ~ toml", () => {
const input = "content/**";
const output = "public/lunr.json";
const language = "toml";
const delimiter = "+++";
let Indexer;
beforeAll(() => {
process.chdir(root);
mockfs({ "public/lunr.json": mockfs.file() });
Indexer = new hli();
Indexer.index(); // null, null, "toml", null
mockfs.restore();
});
it("should set `input` property", () => {
expect(Indexer.input).toEqual(input);
});
it("should set `output` property", () => {
expect(Indexer.output).toEqual(output);
});
it("should set `language` property", () => {
expect(Indexer.language).toEqual(language);
});
it("should set `delimiter` property", () => {
expect(Indexer.delimiter).toEqual(delimiter);
});
});
describe("#constructor (language) ~ yaml", () => {
const input = "content/**";
const output = "public/lunr.json";
const language = "yaml";
const delimiter = "---";
let Indexer;
beforeAll(() => {
process.chdir(root);
mockfs({ "public/lunr.json": mockfs.file() });
Indexer = new hli();
Indexer.index(null, null, "yaml", null);
mockfs.restore();
});
it("should set `input` property", () => {
expect(Indexer.input).toEqual(input);
});
it("should set `output` property", () => {
expect(Indexer.output).toEqual(output);
});
it("should set `language` property", () => {
expect(Indexer.language).toEqual(language);
});
it("should set `delimiter` property", () => {
expect(Indexer.delimiter).toEqual(delimiter);
});
});
describe("#constructor (input, output, language, delimiter)", () => {
const input = "content/test-yaml.md";
const output = "public/lunr-api-constructor-all.json";
const language = "yaml";
const delimiter = "---";
let Indexer;
beforeAll(() => {
process.chdir(root);
Indexer = new hli();
Indexer.index(input, output, language, delimiter);
});
it("should set `input` property", () => {
expect(Indexer.input).toEqual(input);
});
it("should set `output` property", () => {
expect(Indexer.output).toEqual(output);
});
it("should set `language` property", () => {
expect(Indexer.language).toEqual(language);
});
it("should set `delimiter` property", () => {
expect(Indexer.delimiter).toEqual(delimiter);
});
});
describe("#setters (input, output, language, delimiter) ~ toml", () => {
const input = "content/test-toml.md";
const output = "public/lunr-api-setters-toml.json";
const language = "toml";
const delimiter = "+++";
let Indexer;
beforeAll(() => {
process.chdir(root);
Indexer = new hli();
Indexer.setInput(input);
Indexer.setOutput(output);
Indexer.setLanguage(language);
Indexer.setDelimiter(delimiter);
Indexer.index();
});
it("should set `input` property", () => {
expect(Indexer.input).toEqual(input);
});
it("should set `output` property", () => {
expect(Indexer.output).toEqual(output);
});
it("should set `language` property", () => {
expect(Indexer.language).toEqual(language);
});
it("should set `delimiter` property", () => {
expect(Indexer.delimiter).toEqual(delimiter);
});
});
describe("#setters (input, output, language, delimiter) ~ yaml", () => {
const input = "content/test-yaml.md";
const output = "public/lunr-api-setters-yaml.json";
const language = "yaml";
const delimiter = "---";
let Indexer;
beforeAll(() => {
process.chdir(root);
Indexer = new hli();
Indexer.setInput(input);
Indexer.setOutput(output);
Indexer.setLanguage(language);
Indexer.setDelimiter(delimiter);
Indexer.index();
});
it("should set `input` property", () => {
expect(Indexer.input).toEqual(input);
});
it("should set `output` property", () => {
expect(Indexer.output).toEqual(output);
});
it("should set `language` property", () => {
expect(Indexer.language).toEqual(language);
});
it("should set `delimiter` property", () => {
expect(Indexer.delimiter).toEqual(delimiter);
});
});
});