| Index: pkg/mustache/test/spec/partials.yml
|
| diff --git a/pkg/mustache/test/spec/partials.yml b/pkg/mustache/test/spec/partials.yml
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..8c415439f252ce21b7a07a915982df096255118d
|
| --- /dev/null
|
| +++ b/pkg/mustache/test/spec/partials.yml
|
| @@ -0,0 +1,109 @@
|
| +overview: |
|
| + Partial tags are used to expand an external template into the current
|
| + template.
|
| +
|
| + The tag's content MUST be a non-whitespace character sequence NOT containing
|
| + the current closing delimiter.
|
| +
|
| + This tag's content names the partial to inject. Set Delimiter tags MUST NOT
|
| + affect the parsing of a partial. The partial MUST be rendered against the
|
| + context stack local to the tag. If the named partial cannot be found, the
|
| + empty string SHOULD be used instead, as in interpolations.
|
| +
|
| + Partial tags SHOULD be treated as standalone when appropriate. If this tag
|
| + is used standalone, any whitespace preceding the tag should treated as
|
| + indentation, and prepended to each line of the partial before rendering.
|
| +tests:
|
| + - name: Basic Behavior
|
| + desc: The greater-than operator should expand to the named partial.
|
| + data: { }
|
| + template: '"{{>text}}"'
|
| + partials: { text: 'from partial' }
|
| + expected: '"from partial"'
|
| +
|
| + - name: Failed Lookup
|
| + desc: The empty string should be used when the named partial is not found.
|
| + data: { }
|
| + template: '"{{>text}}"'
|
| + partials: { }
|
| + expected: '""'
|
| +
|
| + - name: Context
|
| + desc: The greater-than operator should operate within the current context.
|
| + data: { text: 'content' }
|
| + template: '"{{>partial}}"'
|
| + partials: { partial: '*{{text}}*' }
|
| + expected: '"*content*"'
|
| +
|
| + - name: Recursion
|
| + desc: The greater-than operator should properly recurse.
|
| + data: { content: "X", nodes: [ { content: "Y", nodes: [] } ] }
|
| + template: '{{>node}}'
|
| + partials: { node: '{{content}}<{{#nodes}}{{>node}}{{/nodes}}>' }
|
| + expected: 'X<Y<>>'
|
| +
|
| + # Whitespace Sensitivity
|
| +
|
| + - name: Surrounding Whitespace
|
| + desc: The greater-than operator should not alter surrounding whitespace.
|
| + data: { }
|
| + template: '| {{>partial}} |'
|
| + partials: { partial: "\t|\t" }
|
| + expected: "| \t|\t |"
|
| +
|
| + - name: Inline Indentation
|
| + desc: Whitespace should be left untouched.
|
| + data: { data: '|' }
|
| + template: " {{data}} {{> partial}}\n"
|
| + partials: { partial: ">\n>" }
|
| + expected: " | >\n>\n"
|
| +
|
| + - name: Standalone Line Endings
|
| + desc: '"\r\n" should be considered a newline for standalone tags.'
|
| + data: { }
|
| + template: "|\r\n{{>partial}}\r\n|"
|
| + partials: { partial: ">" }
|
| + expected: "|\r\n>|"
|
| +
|
| + - name: Standalone Without Previous Line
|
| + desc: Standalone tags should not require a newline to precede them.
|
| + data: { }
|
| + template: " {{>partial}}\n>"
|
| + partials: { partial: ">\n>"}
|
| + expected: " >\n >>"
|
| +
|
| + - name: Standalone Without Newline
|
| + desc: Standalone tags should not require a newline to follow them.
|
| + data: { }
|
| + template: ">\n {{>partial}}"
|
| + partials: { partial: ">\n>" }
|
| + expected: ">\n >\n >"
|
| +
|
| + - name: Standalone Indentation
|
| + desc: Each line of the partial should be indented before rendering.
|
| + data: { content: "<\n->" }
|
| + template: |
|
| + \
|
| + {{>partial}}
|
| + /
|
| + partials:
|
| + partial: |
|
| + |
|
| + {{{content}}}
|
| + |
|
| + expected: |
|
| + \
|
| + |
|
| + <
|
| + ->
|
| + |
|
| + /
|
| +
|
| + # Whitespace Insensitivity
|
| +
|
| + - name: Padding Whitespace
|
| + desc: Superfluous in-tag whitespace should be ignored.
|
| + data: { boolean: true }
|
| + template: "|{{> partial }}|"
|
| + partials: { partial: "[]" }
|
| + expected: '|[]|'
|
|
|