UNPKG

@argdown/node

Version:

Async Argdown application for node.js

91 lines (86 loc) 2.43 kB
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/")); }); });