aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/js/templates/template-patcher.js1
-rw-r--r--test/test-options-util.js55
2 files changed, 23 insertions, 33 deletions
diff --git a/ext/js/templates/template-patcher.js b/ext/js/templates/template-patcher.js
index 57178957..5658ca8a 100644
--- a/ext/js/templates/template-patcher.js
+++ b/ext/js/templates/template-patcher.js
@@ -77,6 +77,7 @@ class TemplatePatcher {
// Private
_addFieldTemplatesBeforeEnd(template, addition) {
+ if (addition.length === 0) { return template; }
const newline = '\n';
let replaced = false;
template = template.replace(this._lookupMarkerPattern, (g0) => {
diff --git a/test/test-options-util.js b/test/test-options-util.js
index d20eec3e..47b09b94 100644
--- a/test/test-options-util.js
+++ b/test/test-options-util.js
@@ -649,12 +649,23 @@ async function testFieldTemplatesUpdate(extDir) {
const content = fs.readFileSync(path.join(extDir, fileName), {encoding: 'utf8'});
return templatePatcher.parsePatch(content).addition;
};
- const update2 = loadDataFile('data/templates/anki-field-templates-upgrade-v2.handlebars');
- const update4 = loadDataFile('data/templates/anki-field-templates-upgrade-v4.handlebars');
- const update6 = loadDataFile('data/templates/anki-field-templates-upgrade-v6.handlebars');
- const update8 = loadDataFile('data/templates/anki-field-templates-upgrade-v8.handlebars');
- const update10 = loadDataFile('data/templates/anki-field-templates-upgrade-v10.handlebars');
- const update12 = loadDataFile('data/templates/anki-field-templates-upgrade-v12.handlebars');
+ const updates = [
+ {version: 2, changes: loadDataFile('data/templates/anki-field-templates-upgrade-v2.handlebars')},
+ {version: 4, changes: loadDataFile('data/templates/anki-field-templates-upgrade-v4.handlebars')},
+ {version: 6, changes: loadDataFile('data/templates/anki-field-templates-upgrade-v6.handlebars')},
+ {version: 8, changes: loadDataFile('data/templates/anki-field-templates-upgrade-v8.handlebars')},
+ {version: 10, changes: loadDataFile('data/templates/anki-field-templates-upgrade-v10.handlebars')},
+ {version: 12, changes: loadDataFile('data/templates/anki-field-templates-upgrade-v12.handlebars')}
+ ];
+ const getUpdateAdditions = (startVersion=0) => {
+ let value = '';
+ for (const {version, changes} of updates) {
+ if (version < startVersion || changes.length === 0) { continue; }
+ if (value.length > 0) { value += '\n'; }
+ value += changes;
+ }
+ return value;
+ };
const data = [
// Standard format
@@ -671,12 +682,7 @@ async function testFieldTemplatesUpdate(extDir) {
{{~definition.character~}}
{{/inline}}
-${update2}
-${update4}
-${update6}
-${update8}
-${update10}
-${update12}
+${getUpdateAdditions()}
{{~> (lookup . "marker") ~}}`.trimStart()
},
// Non-standard marker format
@@ -694,12 +700,7 @@ ${update12}
{{/inline}}
{{~> (lookup . "marker2") ~}}
-${update2}
-${update4}
-${update6}
-${update8}
-${update10}
-${update12}`.trimStart()
+${getUpdateAdditions()}`.trimStart()
},
// Empty test
{
@@ -707,12 +708,7 @@ ${update12}`.trimStart()
{{~> (lookup . "marker") ~}}`.trimStart(),
expected: `
-${update2}
-${update4}
-${update6}
-${update8}
-${update10}
-${update12}
+${getUpdateAdditions()}
{{~> (lookup . "marker") ~}}`.trimStart()
},
// Definition tags update
@@ -782,12 +778,7 @@ ${update12}
{{~> glossary-single definition brief=brief compactGlossaries=../compactGlossaries data=../.~}}
{{/inline}}
-${update2}
-${update4}
-${update6}
-${update8}
-${update10}
-${update12}
+${getUpdateAdditions()}
{{~> (lookup . "marker") ~}}
`.trimStart()
},
@@ -927,9 +918,7 @@ ${update12}
{{~> glossary brief=true ~}}
{{/inline}}
-${update8}
-${update10}
-${update12}
+${getUpdateAdditions(7)}
{{~> (lookup . "marker") ~}}`.trimStart()
}
];