forked from 3scale/APIcast
-
Notifications
You must be signed in to change notification settings - Fork 0
/
apicast-policy-liquid-context-debug.t
77 lines (72 loc) · 1.59 KB
/
apicast-policy-liquid-context-debug.t
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
use lib 't';
use Test::APIcast::Blackbox 'no_plan';
run_tests();
__DATA__
=== TEST 1: liquid_context_debug policy does not crash
If there's a problem while parsing the context or converting it to JSON, this
will crash.
--- configuration
{
"services": [
{
"id": 42,
"proxy": {
"policy_chain": [
{
"name": "liquid_context_debug",
"configuration": {}
}
],
"proxy_rules": [
]
}
}
]
}
--- request
GET /
--- error_code: 200
--- no_error_log
[error]
=== TEST 2: does not crash with policies that define Liquid values
The Liquid.Template instances of the liquid lib that we are using store the
context when render() is called on them. That means that there are some
elements in the context that reference the context itself. This could result in
an infinite loop if not properly handled.
This test checks that does not happen.
--- configuration
{
"services": [
{
"id": 42,
"proxy": {
"policy_chain": [
{
"name": "liquid_context_debug",
"configuration": {}
},
{
"name": "headers",
"version": "builtin",
"configuration": {
"request": [
{
"op": "push",
"header": "SOME-HEADER",
"value_type": "liquid",
"value": "{{ service.id }}"
}
]
}
}
],
"proxy_rules": []
}
}
]
}
--- request
GET /
--- error_code: 200
--- no_error_log
[error]