import React from "react";
import { assert } from "chai";
import loadEL from "../../node/el/loadEL";
import type * as std from "../../law/std";
import { DOCXAmendProvision, HTMLAmendProvision } from "./amendProvision";
import { renderToStaticMarkup } from "../common";
import { renderDocxAsync } from "../common/docx/file";
import path from "path";
import fs from "fs";
import formatXML from "../../util/formatXml";
import htmlCSS from "./htmlCSS";
import { promisify } from "util";
import ensureTempTestDir from "../../../test/ensureTempTestDir";
describe("Test HTML amendProvision", () => {
/* eslint-disable no-irregular-whitespace */
it("Success case", async () => {
const input = loadEL({
tag: "AmendProvision",
attr: {},
children: [
{
tag: "AmendProvisionSentence",
attr: {},
children: [
{
tag: "Sentence",
attr: {},
children: ["第十七条の次に次の一条を加える。"],
},
],
},
{
tag: "NewProvision",
attr: {},
children: [
{
tag: "Article",
attr: {},
children: [
{
tag: "ArticleCaption",
attr: {},
children: ["(株式等の取得及び保有)"],
},
{
tag: "ArticleTitle",
attr: {},
children: ["第十七条の二"],
},
{
tag: "Paragraph",
attr: {},
children: [
{
tag: "ParagraphNum",
attr: {},
children: [],
},
{
tag: "ParagraphSentence",
attr: {},
children: [
{
tag: "Sentence",
attr: {},
children: ["機構は、科学技術・イノベーション創出の活性化に関する法律(平成二十年法律第六十三号)第三十四条の五第一項及び第二項の規定による株式又は新株予約権の取得及び保有を行うことができる。"],
},
],
},
],
},
],
},
],
},
],
}) as std.AmendProvision;
const expectedHTML = /*html*/`\
第十七条の次に次の一条を加える。
(株式等の取得及び保有)
第十七条の二
機構は、科学技術・イノベーション創出の活性化に関する法律(平成二十年法律第六十三号)第三十四条の五第一項及び第二項の規定による株式又は新株予約権の取得及び保有を行うことができる。
`;
const element = ;
const rendered = renderToStaticMarkup(element);
const formatted = formatXML(rendered, { collapseContent: true });
assert.strictEqual(
formatted,
expectedHTML,
);
const html = /*html*/`\
${rendered}
`;
const tempParsedHtml = path.join(ensureTempTestDir(), "renderer.amendProvision.html");
await promisify(fs.writeFile)(tempParsedHtml, html);
console.log(` Saved html: ${tempParsedHtml}`);
});
});
describe("Test DOCX amendProvision", () => {
/* eslint-disable no-irregular-whitespace */
it("Success case", async () => {
const input = loadEL({
tag: "AmendProvision",
attr: {},
children: [
{
tag: "AmendProvisionSentence",
attr: {},
children: [
{
tag: "Sentence",
attr: {},
children: ["第十七条の次に次の一条を加える。"],
},
],
},
{
tag: "NewProvision",
attr: {},
children: [
{
tag: "Article",
attr: {},
children: [
{
tag: "ArticleCaption",
attr: {},
children: ["(株式等の取得及び保有)"],
},
{
tag: "ArticleTitle",
attr: {},
children: ["第十七条の二"],
},
{
tag: "Paragraph",
attr: {},
children: [
{
tag: "ParagraphNum",
attr: {},
children: [],
},
{
tag: "ParagraphSentence",
attr: {},
children: [
{
tag: "Sentence",
attr: {},
children: ["機構は、科学技術・イノベーション創出の活性化に関する法律(平成二十年法律第六十三号)第三十四条の五第一項及び第二項の規定による株式又は新株予約権の取得及び保有を行うことができる。"],
},
],
},
],
},
],
},
],
},
],
}) as std.AmendProvision;
const expectedDOCX = /*xml*/`\
第十七条の次に次の一条を加える。
(株式等の取得及び保有)
第十七条の二
機構は、科学技術・イノベーション創出の活性化に関する法律(平成二十年法律第六十三号)第三十四条の五第一項及び第二項の規定による株式又は新株予約権の取得及び保有を行うことができる。
`;
const element = ;
const rendered = renderToStaticMarkup(element);
const formatted = formatXML(rendered, { collapseContent: true });
assert.strictEqual(
formatted,
expectedDOCX,
);
const u8 = await renderDocxAsync(element);
const tempParsedDocx = path.join(ensureTempTestDir(), "renderer.amendProvision.docx");
fs.writeFileSync(tempParsedDocx, u8);
console.log(` Saved docx: ${tempParsedDocx}`);
});
});