summaryrefslogtreecommitdiff
path: root/specs/dot-notation.yml
diff options
context:
space:
mode:
Diffstat (limited to 'specs/dot-notation.yml')
-rw-r--r--specs/dot-notation.yml32
1 files changed, 32 insertions, 0 deletions
diff --git a/specs/dot-notation.yml b/specs/dot-notation.yml
new file mode 100644
index 0000000..575c217
--- /dev/null
+++ b/specs/dot-notation.yml
@@ -0,0 +1,32 @@
+tests:
+ - name: Basic Example
+ desc: Dot notation should be a form of shorthand for sections.
+ data: { person: { name: 'Joe' } }
+ template: '"{{person.name}}" == "{{#person}}{{name}}{{/person}}"'
+ expected: '"Joe" == "Joe"'
+ - name: Arbitrary Depth
+ desc: Dot notation should be functional to any level of nesting.
+ data:
+ a: { b: { c: { d: { e: { name: 'Phil' } } } } }
+ template: '"{{a.b.c.d.e.name}}" == "Phil"'
+ expected: '"Phil" == "Phil"'
+ - name: Broken Chain
+ desc: Any falsey value prior to the last part of the name should yield ''.
+ data:
+ a: { }
+ template: '"{{a.b.c}}" == ""'
+ expected: '"" == ""'
+ - name: Broken Chain Resolution
+ desc: Each part of a dotted name should be resolved only against its elder.
+ data:
+ a: { b: { } }
+ c: { name: 'Jim' }
+ template: '"{{a.b.c.name}}" == ""'
+ expected: '"" == ""'
+ - name: Initial Key Resolution
+ desc: The first part of a dotted name should resolve as any other name.
+ data:
+ a: { b: { c: { d: { e: { name: 'Phil' } } } } }
+ b: { c: { d: { e: { name: 'Wrong' } } } }
+ template: '"{{#a}}{{b.c.d.e.name}}{{/a}}" == "Phil"'
+ template: '"Phil" == "Phil"' \ No newline at end of file