-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy patherrors.yml
More file actions
167 lines (141 loc) · 4.88 KB
/
Copy patherrors.yml
File metadata and controls
167 lines (141 loc) · 4.88 KB
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
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
---
# FLGEDETAIL 1.2.2: reason kind ERROR when flag could not be evaluated
# FLGEDETAIL 1.3.1: errorKind FLAG_NOT_FOUND and MALFORMED_FLAG
# FLGEDETAIL 1.1.2: default value returned when evaluation fails
# FLGEDETAIL 1.1.3: variationIndex absent when default value returned
name: evaluation failures (<TYPE_NAME>)
constants:
CONTEXT: { kind: "user", key: "user-key" }
MALFORMED_FLAG_RESULT:
value: <TYPE_DEFAULT>
reason: { "kind": "ERROR", "errorKind": "MALFORMED_FLAG" }
# Here we iterate through several variation types to prove that the Variation methods correctly
# handle returning the default value in an error condition regardless of the type.
parameters:
- TYPE_NAME: bool
TYPE_VALUE: true
TYPE_DEFAULT: false
- TYPE_NAME: int
TYPE_VALUE: 1
TYPE_DEFAULT: -1
- TYPE_NAME: double
TYPE_VALUE: 1.5
TYPE_DEFAULT: 0.5
- TYPE_NAME: string
TYPE_VALUE: "a"
TYPE_DEFAULT: "x"
- TYPE_NAME: any
TYPE_VALUE: 3
TYPE_DEFAULT: false
sdkData:
flags:
off-variation-too-low-<TYPE_NAME>:
on: false
offVariation: -1
variations: [ "<TYPE_VALUE>" ]
off-variation-too-high-<TYPE_NAME>:
on: false
offVariation: 1
variations: [ "<TYPE_VALUE>" ]
no-off-variation-<TYPE_NAME>:
on: false
variations: [ "<TYPE_VALUE>" ]
fallthrough-variation-too-low-<TYPE_NAME>:
on: true
fallthrough: { "variation": -1 }
variations: [ "<TYPE_VALUE>" ]
fallthrough-variation-too-high-<TYPE_NAME>:
on: true
fallthrough: { "variation": 1 }
variations: [ "<TYPE_VALUE>" ]
target-match-variation-too-low-<TYPE_NAME>:
on: true
targets:
- { "variation": -1, "values": [ "user-key" ] }
variations: [ "<TYPE_VALUE>" ]
target-match-variation-too-high-<TYPE_NAME>:
on: true
targets:
- { "variation": 1, "values": [ "user-key" ] }
variations: [ "<TYPE_VALUE>" ]
rule-match-variation-too-low-<TYPE_NAME>:
on: true
rules:
- { "variation": -1, "clauses": [ { "attribute": "key", "op": "in", "values": [""], "negate": true }] }
variations: [ "<TYPE_VALUE>" ]
rule-match-variation-too-high-<TYPE_NAME>:
on: true
rules:
- { "variation": 1, "clauses": [ { "attribute": "key", "op": "in", "values": [""], "negate": true }] }
variations: [ "<TYPE_VALUE>" ]
evaluations:
# FLGEA 1.6.1: FLAG_NOT_FOUND error
- name: flag not found
flagKey: no-such-flag
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect:
value: <TYPE_DEFAULT>
reason: { "kind": "ERROR", "errorKind": "FLAG_NOT_FOUND" }
# FLGEA 1.6.2.9: MALFORMED_FLAG for invalid off variation index
- name: off variation too low
flagKey: off-variation-too-low-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect: <MALFORMED_FLAG_RESULT>
- name: off variation too high
flagKey: off-variation-too-high-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect: <MALFORMED_FLAG_RESULT>
# FLGEA 1.6.2: off with undefined offVariation returns default
- name: flag is off but has no off variation
flagKey: no-off-variation-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect:
value: <TYPE_DEFAULT>
reason: { kind: "OFF" } # this is *not* considered a "malformed flag" condition even though it returns the default
# FLGEA 1.6.2.9: MALFORMED_FLAG for invalid fallthrough variation index
- name: fallthrough variation too low
flagKey: fallthrough-variation-too-low-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect: <MALFORMED_FLAG_RESULT>
- name: fallthrough variation too high
flagKey: fallthrough-variation-too-high-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect: <MALFORMED_FLAG_RESULT>
# FLGEA 1.6.2.9: MALFORMED_FLAG for invalid target variation index
- name: target variation too low
flagKey: target-match-variation-too-low-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect: <MALFORMED_FLAG_RESULT>
- name: target variation too high
flagKey: target-match-variation-too-high-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect: <MALFORMED_FLAG_RESULT>
# FLGEA 1.6.2.9: MALFORMED_FLAG for invalid rule variation index
- name: rule variation too low
flagKey: rule-match-variation-too-low-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect: <MALFORMED_FLAG_RESULT>
- name: rule variation too high
flagKey: rule-match-variation-too-high-<TYPE_NAME>
context: <CONTEXT>
valueType: <TYPE_NAME>
default: <TYPE_DEFAULT>
expect: <MALFORMED_FLAG_RESULT>