diff options
Diffstat (limited to 'dev/lib/handlebars/src/spec/index.subexpressions.test.ts')
| -rw-r--r-- | dev/lib/handlebars/src/spec/index.subexpressions.test.ts | 214 | 
1 files changed, 0 insertions, 214 deletions
diff --git a/dev/lib/handlebars/src/spec/index.subexpressions.test.ts b/dev/lib/handlebars/src/spec/index.subexpressions.test.ts deleted file mode 100644 index 4dee24b7..00000000 --- a/dev/lib/handlebars/src/spec/index.subexpressions.test.ts +++ /dev/null @@ -1,214 +0,0 @@ -/* - * This file is forked from the handlebars project (https://github.com/handlebars-lang/handlebars.js), - * and may include modifications made by Elasticsearch B.V. - * Elasticsearch B.V. licenses this file to you under the MIT License. - * See `packages/kbn-handlebars/LICENSE` for more information. - */ - -import Handlebars, { type HelperOptions } from '../..'; -import { expectTemplate } from '../__jest__/test_bench'; - -describe('subexpressions', () => { -  it('arg-less helper', () => { -    expectTemplate('{{foo (bar)}}!') -      .withHelpers({ -        foo(val) { -          return val + val; -        }, -        bar() { -          return 'LOL'; -        }, -      }) -      .toCompileTo('LOLLOL!'); -  }); - -  it('helper w args', () => { -    expectTemplate('{{blog (equal a b)}}') -      .withInput({ bar: 'LOL' }) -      .withHelpers({ -        blog(val) { -          return 'val is ' + val; -        }, -        equal(x, y) { -          return x === y; -        }, -      }) -      .toCompileTo('val is true'); -  }); - -  it('mixed paths and helpers', () => { -    expectTemplate('{{blog baz.bat (equal a b) baz.bar}}') -      .withInput({ bar: 'LOL', baz: { bat: 'foo!', bar: 'bar!' } }) -      .withHelpers({ -        blog(val, that, theOther) { -          return 'val is ' + val + ', ' + that + ' and ' + theOther; -        }, -        equal(x, y) { -          return x === y; -        }, -      }) -      .toCompileTo('val is foo!, true and bar!'); -  }); - -  it('supports much nesting', () => { -    expectTemplate('{{blog (equal (equal true true) true)}}') -      .withInput({ bar: 'LOL' }) -      .withHelpers({ -        blog(val) { -          return 'val is ' + val; -        }, -        equal(x, y) { -          return x === y; -        }, -      }) -      .toCompileTo('val is true'); -  }); - -  it('GH-800 : Complex subexpressions', () => { -    const context = { a: 'a', b: 'b', c: { c: 'c' }, d: 'd', e: { e: 'e' } }; -    const helpers = { -      dash(a: any, b: any) { -        return a + '-' + b; -      }, -      concat(a: any, b: any) { -        return a + b; -      }, -    }; - -    expectTemplate("{{dash 'abc' (concat a b)}}") -      .withInput(context) -      .withHelpers(helpers) -      .toCompileTo('abc-ab'); - -    expectTemplate('{{dash d (concat a b)}}') -      .withInput(context) -      .withHelpers(helpers) -      .toCompileTo('d-ab'); - -    expectTemplate('{{dash c.c (concat a b)}}') -      .withInput(context) -      .withHelpers(helpers) -      .toCompileTo('c-ab'); - -    expectTemplate('{{dash (concat a b) c.c}}') -      .withInput(context) -      .withHelpers(helpers) -      .toCompileTo('ab-c'); - -    expectTemplate('{{dash (concat a e.e) c.c}}') -      .withInput(context) -      .withHelpers(helpers) -      .toCompileTo('ae-c'); -  }); - -  it('provides each nested helper invocation its own options hash', () => { -    let lastOptions: HelperOptions; -    const helpers = { -      equal(x: any, y: any, options: HelperOptions) { -        if (!options || options === lastOptions) { -          throw new Error('options hash was reused'); -        } -        lastOptions = options; -        return x === y; -      }, -    }; -    expectTemplate('{{equal (equal true true) true}}').withHelpers(helpers).toCompileTo('true'); -  }); - -  it('with hashes', () => { -    expectTemplate("{{blog (equal (equal true true) true fun='yes')}}") -      .withInput({ bar: 'LOL' }) -      .withHelpers({ -        blog(val) { -          return 'val is ' + val; -        }, -        equal(x, y) { -          return x === y; -        }, -      }) -      .toCompileTo('val is true'); -  }); - -  it('as hashes', () => { -    expectTemplate("{{blog fun=(equal (blog fun=1) 'val is 1')}}") -      .withHelpers({ -        blog(options) { -          return 'val is ' + options.hash.fun; -        }, -        equal(x, y) { -          return x === y; -        }, -      }) -      .toCompileTo('val is true'); -  }); - -  it('multiple subexpressions in a hash', () => { -    expectTemplate('{{input aria-label=(t "Name") placeholder=(t "Example User")}}') -      .withHelpers({ -        input(options) { -          const hash = options.hash; -          const ariaLabel = Handlebars.Utils.escapeExpression(hash['aria-label']); -          const placeholder = Handlebars.Utils.escapeExpression(hash.placeholder); -          return new Handlebars.SafeString( -            '<input aria-label="' + ariaLabel + '" placeholder="' + placeholder + '" />' -          ); -        }, -        t(defaultString) { -          return new Handlebars.SafeString(defaultString); -        }, -      }) -      .toCompileTo('<input aria-label="Name" placeholder="Example User" />'); -  }); - -  it('multiple subexpressions in a hash with context', () => { -    expectTemplate('{{input aria-label=(t item.field) placeholder=(t item.placeholder)}}') -      .withInput({ -        item: { -          field: 'Name', -          placeholder: 'Example User', -        }, -      }) -      .withHelpers({ -        input(options) { -          const hash = options.hash; -          const ariaLabel = Handlebars.Utils.escapeExpression(hash['aria-label']); -          const placeholder = Handlebars.Utils.escapeExpression(hash.placeholder); -          return new Handlebars.SafeString( -            '<input aria-label="' + ariaLabel + '" placeholder="' + placeholder + '" />' -          ); -        }, -        t(defaultString) { -          return new Handlebars.SafeString(defaultString); -        }, -      }) -      .toCompileTo('<input aria-label="Name" placeholder="Example User" />'); -  }); - -  it('subexpression functions on the context', () => { -    expectTemplate('{{foo (bar)}}!') -      .withInput({ -        bar() { -          return 'LOL'; -        }, -      }) -      .withHelpers({ -        foo(val) { -          return val + val; -        }, -      }) -      .toCompileTo('LOLLOL!'); -  }); - -  it("subexpressions can't just be property lookups", () => { -    expectTemplate('{{foo (bar)}}!') -      .withInput({ -        bar: 'LOL', -      }) -      .withHelpers({ -        foo(val) { -          return val + val; -        }, -      }) -      .toThrow(); -  }); -});  |