Skip to content

Commit

Permalink
Comments fixture test
Browse files Browse the repository at this point in the history
- Add fixture test for a file with <!-- comments -->
- Found and fixed a bug in DocxParser
  • Loading branch information
alonrbar committed May 25, 2024
1 parent bdfcedc commit e57d8a7
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 1 deletion.
4 changes: 3 additions & 1 deletion src/office/docxParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -208,8 +208,10 @@ export class DocxParser {
}
while (curWordTextNode) {

if (curWordTextNode.nodeName !== DocxParser.TEXT_NODE)
if (curWordTextNode.nodeName !== DocxParser.TEXT_NODE) {
curWordTextNode = curWordTextNode.nextSibling;
continue;
}

// move text to first node
const curXmlTextNode = XmlNode.lastTextChild(curWordTextNode);
Expand Down
3 changes: 3 additions & 0 deletions test/fixtures/__snapshots__/comments.tests.ts.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`comments process correctly a template with comments 1`] = `<w:document xmlns:wpc="http://schemas.microsoft.com/office/word/2010/wordprocessingCanvas" xmlns:cx="http://schemas.microsoft.com/office/drawing/2014/chartex" xmlns:cx1="http://schemas.microsoft.com/office/drawing/2015/9/8/chartex" xmlns:cx2="http://schemas.microsoft.com/office/drawing/2015/10/21/chartex" xmlns:cx3="http://schemas.microsoft.com/office/drawing/2016/5/9/chartex" xmlns:cx4="http://schemas.microsoft.com/office/drawing/2016/5/10/chartex" xmlns:cx5="http://schemas.microsoft.com/office/drawing/2016/5/11/chartex" xmlns:cx6="http://schemas.microsoft.com/office/drawing/2016/5/12/chartex" xmlns:cx7="http://schemas.microsoft.com/office/drawing/2016/5/13/chartex" xmlns:cx8="http://schemas.microsoft.com/office/drawing/2016/5/14/chartex" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:aink="http://schemas.microsoft.com/office/drawing/2016/ink" xmlns:am3d="http://schemas.microsoft.com/office/drawing/2017/model3d" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math" xmlns:v="urn:schemas-microsoft-com:vml" xmlns:wp14="http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" xmlns:wp="http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing" xmlns:w10="urn:schemas-microsoft-com:office:word" xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main" xmlns:w14="http://schemas.microsoft.com/office/word/2010/wordml" xmlns:w15="http://schemas.microsoft.com/office/word/2012/wordml" xmlns:w16cid="http://schemas.microsoft.com/office/word/2016/wordml/cid" xmlns:w16se="http://schemas.microsoft.com/office/word/2015/wordml/symex" xmlns:wpg="http://schemas.microsoft.com/office/word/2010/wordprocessingGroup" xmlns:wpi="http://schemas.microsoft.com/office/word/2010/wordprocessingInk" xmlns:wne="http://schemas.microsoft.com/office/word/2006/wordml" xmlns:wps="http://schemas.microsoft.com/office/word/2010/wordprocessingShape" mc:Ignorable="w14 w15 w16se w16cid wp14"><!-- comment 1 --><w:body><!-- comment 2 --><w:p w14:paraId="604CB376" w14:textId="42385B7D" w:rsidR="007E51D4" w:rsidRDefault="007E51D4" w:rsidP="00E14424"><w:pPr><w:bidi w:val="0"/></w:pPr><w:r><w:t xml:space="preserve">foo</w:t></w:r><w:r><!-- comment 3 --></w:r><w:bookmarkStart w:id="0" w:name="_GoBack"/><w:bookmarkEnd w:id="0"/></w:p><w:sectPr w:rsidR="007E51D4" w:rsidSect="00C4055C"><w:pgSz w:w="11906" w:h="16838"/><w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440" w:header="708" w:footer="708" w:gutter="0"/><w:cols w:space="708"/><w:bidi/><w:rtlGutter/><w:docGrid w:linePitch="360"/></w:sectPr></w:body></w:document>`;
27 changes: 27 additions & 0 deletions test/fixtures/comments.tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { TemplateHandler } from 'src/templateHandler';
import { readFixture } from './fixtureUtils';

describe('comments', () => {

it("process correctly a template with comments", async () => {

const handler = new TemplateHandler();

const template = readFixture("comments.docx");

// Verify getText
const templateText = await handler.getText(template);
expect(templateText.trim()).toEqual("{simple_prop}");

const data = {
simple_prop: "foo"
};
const doc = await handler.process(template, data);

// Verify template processing
const docXml = await handler.getXml(doc);
expect(docXml).toMatchSnapshot();

// writeTempFile('comments - out.docx', doc);
});
});
Binary file added test/fixtures/files/comments.docx
Binary file not shown.

0 comments on commit e57d8a7

Please sign in to comment.