167 lines
4.3 KiB
JavaScript
167 lines
4.3 KiB
JavaScript
"use strict";
|
|
|
|
var _require = require("../utils.js"),
|
|
resolveSoon = _require.resolveSoon;
|
|
var fixDocPrCorruption = require("../../modules/fix-doc-pr-corruption.js");
|
|
describe("Resolver", function () {
|
|
it("should render the document correctly in async mode", function () {
|
|
return this.render({
|
|
async: true,
|
|
name: "office365.docx",
|
|
data: {
|
|
test: resolveSoon("Value"),
|
|
test2: "Value2"
|
|
},
|
|
options: {
|
|
paragraphLoop: true
|
|
},
|
|
expectedName: "expected-office365.docx",
|
|
expectedText: "Value Value2"
|
|
});
|
|
});
|
|
it("should work at parent level", function () {
|
|
return this.render({
|
|
name: "office365.docx",
|
|
data: resolveSoon({
|
|
test: resolveSoon("Value"),
|
|
test2: "Value2"
|
|
}),
|
|
options: {
|
|
paragraphLoop: true
|
|
},
|
|
expectedName: "expected-office365.docx",
|
|
async: true,
|
|
expectedText: "Value Value2"
|
|
});
|
|
});
|
|
it("should resolve loops", function () {
|
|
return this.render({
|
|
name: "multi-loop.docx",
|
|
data: {
|
|
companies: resolveSoon([{
|
|
name: "Acme",
|
|
users: resolveSoon([{
|
|
name: resolveSoon("John", 25)
|
|
}, resolveSoon({
|
|
name: "James"
|
|
})], 5)
|
|
}, resolveSoon({
|
|
name: resolveSoon("Emca"),
|
|
users: resolveSoon([{
|
|
name: "Mary"
|
|
}, {
|
|
name: "Liz"
|
|
}])
|
|
}, 20)]),
|
|
test2: "Value2"
|
|
},
|
|
options: {
|
|
paragraphLoop: true
|
|
},
|
|
expectedName: "expected-multi-loop.docx",
|
|
async: true
|
|
});
|
|
});
|
|
var dataNestedLoops = {
|
|
a: [{
|
|
d: "Hello world"
|
|
}]
|
|
};
|
|
it("should not regress with nested loops sync", function () {
|
|
return this.render({
|
|
name: "regression-complex-loops.docx",
|
|
data: dataNestedLoops,
|
|
expectedName: "expected-regression-complex-loops.docx"
|
|
});
|
|
});
|
|
it("should not regress when having [Content_Types.xml] contain Default instead of Override", function () {
|
|
return this.render({
|
|
name: "with-default-contenttype.docx",
|
|
expectedName: "expected-with-default-contenttype.docx"
|
|
});
|
|
});
|
|
it("should not regress with nested loops async", function () {
|
|
return this.renderV4({
|
|
name: "regression-complex-loops.docx",
|
|
data: dataNestedLoops,
|
|
expectedName: "expected-regression-complex-loops.docx",
|
|
async: true
|
|
});
|
|
});
|
|
var regressData = {
|
|
amount_wheels_car_1: "4",
|
|
amount_wheels_motorcycle_1: "2",
|
|
amount_wheels_car_2: "6",
|
|
amount_wheels_motorcycle_2: "3",
|
|
id: [{
|
|
car: "1",
|
|
motorcycle: ""
|
|
}]
|
|
};
|
|
it("should not regress with multiple loops sync", function () {
|
|
return this.renderV4({
|
|
name: "regression-loops-resolve.docx",
|
|
data: regressData,
|
|
expectedName: "expected-regression-loops-resolve.docx"
|
|
});
|
|
});
|
|
it("should not regress with multiple loops async", function () {
|
|
return this.renderV4({
|
|
name: "regression-loops-resolve.docx",
|
|
data: regressData,
|
|
expectedName: "expected-regression-loops-resolve.docx"
|
|
});
|
|
});
|
|
it("should not regress with long file (hit maxCompact value of 65536)", function () {
|
|
return this.renderV4({
|
|
name: "regression-loops-resolve.docx",
|
|
data: {
|
|
amount_wheels_car_1: "4",
|
|
amount_wheels_motorcycle_1: "2",
|
|
amount_wheels_car_2: "6",
|
|
amount_wheels_motorcycle_2: "3",
|
|
id: [{
|
|
car: "1",
|
|
motorcycle: "2"
|
|
}, {
|
|
car: "2",
|
|
motorcycle: "3"
|
|
}, {
|
|
car: "4",
|
|
motorcycle: "5"
|
|
}, {
|
|
car: "4",
|
|
motorcycle: "5"
|
|
}]
|
|
},
|
|
options: {
|
|
paragraphLoop: true
|
|
},
|
|
expectedName: "expected-regression-loops-resolve-long.docx",
|
|
async: true
|
|
});
|
|
});
|
|
it("should deduplicate a16:rowId tag", function () {
|
|
return this.renderV4({
|
|
name: "a16-row-id.pptx",
|
|
data: {
|
|
loop: [1, 2, 3, 4]
|
|
},
|
|
expectedName: "expected-a16-row-id.pptx",
|
|
async: true
|
|
});
|
|
});
|
|
it("should work with fix doc pr corruption", function () {
|
|
return this.renderV4({
|
|
name: "loop-image.docx",
|
|
options: {
|
|
modules: [fixDocPrCorruption]
|
|
},
|
|
data: {
|
|
loop: [1, 2, 3, 4]
|
|
},
|
|
expectedName: "expected-loop-images.docx",
|
|
async: true
|
|
});
|
|
});
|
|
}); |