aboutsummaryrefslogtreecommitdiff
path: root/src/templates.test.ts
blob: 8fbf7e47427a341ebc38c55371c409c3e2fd63d9 (plain) (blame)
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
import processTemplate, { Template } from "./templates";
import path from "path";
import fs from "fs";

const genTemplate = (filename: string): Template =>
  ({
    inputFile: path.join(__dirname, "..", "example_reports", filename),
    outputFile: path.join(
      __dirname,
      "..",
      "build",
      filename.replace(/template/, "txt")
    ),
    context: { that: "this", potential: "resolved" },
  } as Template);

describe("processTemplate", () => {
  beforeAll(() =>
    fs.promises.mkdir(path.join(__dirname, "..", "build")).catch(() => null)
  );

  it("should process the template file with the given context", async () => {
    // Arrange
    const template = genTemplate("ex.tmpl");

    // Act
    const result = await processTemplate(template);

    // Assert
    expect(result.data).not.toBeNull();
    expect(result.data).toEqual("But what is this other than resolved?");
    expect(fs.existsSync(result.outputFile)).toEqual(true);
  });

  it("should process the blank file", async () => {
    // Arrange
    const template = genTemplate("blank.tmpl");

    // Act
    const result = await processTemplate(template);

    // Assert
    expect(result.data).not.toBeNull();
    expect(result.data).toEqual("");
    expect(fs.existsSync(result.outputFile)).toEqual(true);
  });
});