import {expect} from 'chai'; import 'mocha'; import {ContentFile, ContentFileCollection, Typesite} from "typesite"; import {JsxContentsMeta} from "../src/JsxContentsMeta"; import * as React from "react"; import {JsxRendererPlugin} from "../src/JsxRendererPlugin"; describe("JsxRendererPlugin", () => { it("Will render all JsxContentsMeta plugins and set the contents to the default one", async () => { const file = new ContentFile("test.txt", ""); const files = new ContentFileCollection("test.txt"); const plugin = new JsxRendererPlugin(true); file.metadata.setItem(new JsxContentsMeta(() =>
This is content body
)); file.metadata.setItem(new TestJsxMeta(() =>
This is summary
)); files.addFile("out.txt", file); await plugin.run(files, new Typesite("", "")); expect(file.metadata.getItem(JsxContentsMeta).contents).to.equal("
This is content body
"); expect(file.metadata.getItem(TestJsxMeta).contents).to.equal("
This is summary
"); expect(file.getContents().toString()).to.equal("
This is content body
"); }); it("Should pass all the params to the meta render", async () => { const pathSource = "out.txt"; const fileSource = new ContentFile("test.txt", ""); const filesSource = new ContentFileCollection(""); const typesiteSource = new Typesite("", ""); const plugin = new JsxRendererPlugin(true); filesSource.addFile(pathSource, fileSource); fileSource.metadata.setItem(new JsxContentsMeta((path, file, files, typesite) => { expect(path).to.equal(pathSource); expect(file).to.equal(fileSource); expect(files).to.equal(filesSource); expect(typesite).to.equal(typesiteSource); return
Test
; })); await plugin.run(filesSource, typesiteSource); }); }); class TestJsxMeta extends JsxContentsMeta { getKey(): string { return "testJsx"; } }