diff options
Diffstat (limited to 'test')
| -rw-r--r-- | test/test-options-util.js | 43 | 
1 files changed, 27 insertions, 16 deletions
| diff --git a/test/test-options-util.js b/test/test-options-util.js index 7d86743b..986ba040 100644 --- a/test/test-options-util.js +++ b/test/test-options-util.js @@ -658,10 +658,10 @@ async function testFieldTemplatesUpdate(extDir) {          {version: 12, changes: loadDataFile('data/templates/anki-field-templates-upgrade-v12.handlebars')},          {version: 13, changes: loadDataFile('data/templates/anki-field-templates-upgrade-v13.handlebars')}      ]; -    const getUpdateAdditions = (startVersion=0) => { +    const getUpdateAdditions = (startVersion, targetVersion) => {          let value = '';          for (const {version, changes} of updates) { -            if (version < startVersion || changes.length === 0) { continue; } +            if (version < startVersion || version > targetVersion || changes.length === 0) { continue; }              if (value.length > 0) { value += '\n'; }              value += changes;          } @@ -671,6 +671,8 @@ async function testFieldTemplatesUpdate(extDir) {      const data = [          // Standard format          { +            oldVersion: 0, +            newVersion: 12,              old: `  {{#*inline "character"}}      {{~definition.character~}} @@ -683,11 +685,13 @@ async function testFieldTemplatesUpdate(extDir) {      {{~definition.character~}}  {{/inline}} -${getUpdateAdditions()} +<<<UPDATE-ADDITIONS>>>  {{~> (lookup . "marker") ~}}`.trimStart()          },          // Non-standard marker format          { +            oldVersion: 0, +            newVersion: 12,              old: `  {{#*inline "character"}}      {{~definition.character~}} @@ -701,19 +705,23 @@ ${getUpdateAdditions()}  {{/inline}}  {{~> (lookup . "marker2") ~}} -${getUpdateAdditions()}`.trimStart() +<<<UPDATE-ADDITIONS>>>`.trimStart()          },          // Empty test          { +            oldVersion: 0, +            newVersion: 12,              old: `  {{~> (lookup . "marker") ~}}`.trimStart(),              expected: ` -${getUpdateAdditions()} +<<<UPDATE-ADDITIONS>>>  {{~> (lookup . "marker") ~}}`.trimStart()          },          // Definition tags update          { +            oldVersion: 0, +            newVersion: 12,              old: `  {{#*inline "glossary-single"}}      {{~#unless brief~}} @@ -779,13 +787,14 @@ ${getUpdateAdditions()}      {{~> glossary-single definition brief=brief compactGlossaries=../compactGlossaries data=../.~}}  {{/inline}} -${getUpdateAdditions()} +<<<UPDATE-ADDITIONS>>>  {{~> (lookup . "marker") ~}}  `.trimStart()          },          // glossary and glossary-brief update          {              oldVersion: 7, +            newVersion: 12,              old: `  {{#*inline "glossary-single"}}      {{~#unless brief~}} @@ -876,11 +885,11 @@ ${getUpdateAdditions()}          {{~#if only~}}({{#each only}}{{.}}{{#unless @last}}, {{/unless}}{{/each}} only) {{/if~}}      {{~/unless~}}      {{~#if (op "<=" glossary.length 1)~}} -        {{#each glossary}}{{#formatGlossary ../dictionary}}{{{.}}}{{/formatGlossary}}{{/each}} +        {{#each glossary}}{{#multiLine}}{{.}}{{/multiLine}}{{/each}}      {{~else if @root.compactGlossaries~}} -        {{#each glossary}}{{#formatGlossary ../dictionary}}{{{.}}}{{/formatGlossary}}{{#unless @last}} | {{/unless}}{{/each}} +        {{#each glossary}}{{#multiLine}}{{.}}{{/multiLine}}{{#unless @last}} | {{/unless}}{{/each}}      {{~else~}} -        <ul>{{#each glossary}}<li>{{#formatGlossary ../dictionary}}{{{.}}}{{/formatGlossary}}</li>{{/each}}</ul> +        <ul>{{#each glossary}}<li>{{#multiLine}}{{.}}{{/multiLine}}</li>{{/each}}</ul>      {{~/if~}}      {{~#set "previousDictionary" dictionary~}}{{~/set~}}  {{/inline}} @@ -919,12 +928,13 @@ ${getUpdateAdditions()}      {{~> glossary brief=true ~}}  {{/inline}} -${getUpdateAdditions(7)} +<<<UPDATE-ADDITIONS>>>  {{~> (lookup . "marker") ~}}`.trimStart()          },          // formatGlossary update          {              oldVersion: 12, +            newVersion: 13,              old: `      {{~#if (op "<=" glossary.length 1)~}}          {{#each glossary}}{{#multiLine}}{{.}}{{/multiLine}}{{/each}} @@ -945,16 +955,17 @@ ${getUpdateAdditions(7)}          }      ]; -    for (const {old, expected, oldVersion} of data) { +    const updatesPattern = /<<<UPDATE-ADDITIONS>>>/g; +    for (const {old, expected, oldVersion, newVersion} of data) {          const options = createOptionsTestData1();          options.profiles[0].options.anki.fieldTemplates = old; -        if (typeof oldVersion === 'number') { -            options.version = oldVersion; -        } +        options.version = oldVersion; + +        const expected2 = expected.replace(updatesPattern, getUpdateAdditions(oldVersion, newVersion)); -        const optionsUpdated = clone(await optionsUtil.update(options)); +        const optionsUpdated = clone(await optionsUtil.update(options, newVersion));          const fieldTemplatesActual = optionsUpdated.profiles[0].options.anki.fieldTemplates; -        assert.deepStrictEqual(fieldTemplatesActual, expected); +        assert.deepStrictEqual(fieldTemplatesActual, expected2);      }  } |