1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
suites:
-
name: Functions
suites:
-
name: missing
resources:
-
source: |-
foo = { MISSING("Foo") }
tests:
-
name: falls back to the name of the function
asserts:
-
id: foo
value: "{MISSING()}"
errors:
-
type: Reference
desc: "Unknown function: MISSING()"
-
name: arguments
resources:
-
source: |-
foo = Foo
.attr = Attribute
pass-nothing = { IDENTITY() }
pass-string = { IDENTITY("a") }
pass-number = { IDENTITY(1) }
pass-message = { IDENTITY(foo) }
pass-attr = { IDENTITY(foo.attr) }
pass-variable = { IDENTITY($var) }
pass-function-call = { IDENTITY(IDENTITY(1)) }
bundles:
-
functions:
- IDENTITY
tests:
-
name: falls back when arguments don't match the arity
asserts:
-
id: pass-nothing
## XXX: Difference from JS
value: "???"
-
name: accepts strings
asserts:
-
id: pass-string
value: a
-
name: accepts numbers
asserts:
-
id: pass-number
value: 1
-
name: accepts entities
asserts:
-
id: pass-message
value: Foo
-
name: accepts attributes
asserts:
-
id: pass-attr
value: Attribute
-
name: accepts variables
asserts:
-
id: pass-variable
args:
var: Variable
value: Variable
-
name: accepts function calls
asserts:
-
id: pass-function-call
value: 1