@argdown/node
Version:
Async Argdown application for node.js
91 lines (86 loc) • 2.43 kB
text/typescript
import { expect } from "chai";
const chai = require("chai");
chai.use(require("chai-fs"));
import { describe, it } from "mocha";
import { argdown } from "../src/index";
import { IArgdownRequest } from "@argdown/core";
import path from "path";
import rimraf from "rimraf";
const rimrafPromise = function(path: string) {
return new Promise<void>((resolve, reject) => {
rimraf(path, {}, function(err: Error | null | undefined) {
if (err) {
reject(err);
}
resolve();
});
});
};
describe("SvgToPdfExportPlugin", () => {
it("can generate pdf from svg (sanity test)", async () => {
const input = `
[B]: test
<A>: test
- [B]
+ <C>: test
`;
const request: IArgdownRequest = {
input,
svgToPdf: {
fileName: "test",
outputDir: "test/pdf"
},
process: [
"parse-input",
"build-model",
"build-map",
"colorize",
"export-dot",
"export-svg",
"save-svg-as-pdf"
],
logLevel: "error"
};
await argdown.runAsync(request);
const filePathToPdf = path.resolve(__dirname, "pdf/test.pdf");
(<any>expect(filePathToPdf).to.be.a).file();
await rimrafPromise(path.resolve(__dirname, "pdf/"));
});
it("can load custom font (sanity test)", async () => {
const input = `
===
svgToPdf:
fonts:
- {name: "arial", path: "./DejaVuSans.ttf"}
- {name: "arial Bold", path: "./DejaVuSans-Bold.ttf"}
- {name: "Times,serif", path: "./DejaVuSans.ttf"}
===
[B]: ДҖЛ̕
<A>: ДҖЛ̕
- [B]
+ <C>: ДҖЛ̕
`;
const request: IArgdownRequest = {
input,
inputPath: path.resolve(__dirname, "test-font.argdown"),
svgToPdf: {
fileName: "test-font",
outputDir: "test/pdf"
},
process: [
"parse-input",
"build-model",
"build-map",
"colorize",
"export-dot",
"export-svg",
"save-svg-as-pdf"
],
logLevel: "error"
};
await argdown.runAsync(request);
const filePathToPdf = path.resolve(__dirname, "pdf/test-font.pdf");
(<any>expect(filePathToPdf).to.be.a).file();
await rimrafPromise(path.resolve(__dirname, "pdf/"));
});
});