-
Notifications
You must be signed in to change notification settings - Fork 0
/
composition.feature
125 lines (121 loc) · 2.43 KB
/
composition.feature
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
Feature: Schema Composition
Scenario: oneOf
Given a YAML schema:
```
oneOf:
- type: number
multipleOf: 5
- type: number
multipleOf: 3
```
Then it should accept:
```
10
```
And it should accept:
```
9
```
But it should NOT accept:
```
2
```
# Multiple of _both_ 5 and 3 is rejected
And it should NOT accept:
```
15
```
Scenario: oneOf null or object
Given a YAML schema:
```
type: object
properties:
child:
oneOf:
- type: null
- type: object
properties:
name:
type: string
additionalProperties: false
```
Then it should accept:
```
child: null
```
And it should accept:
```
child:
name: John
```
But it should NOT accept:
```
name: John
```
Scenario: properties with oneOf
Given a YAML schema:
```
type: object
properties:
name:
type: string
github:
type: object
properties:
environments:
type: object
patternProperties:
"^[a-zA-Z][a-zA-Z0-9_-]*$":
type: object
properties:
reviewers:
oneOf:
- type: null
- type: array
items:
type: string
```
Then it should accept:
```
name: test
github:
environments:
development:
reviewers: null
```
And it should accept:
```
name: test
github:
environments:
production:
reviewers:
- alice
- bob
```
But it should NOT accept:
```
name: test
github:
environments:
development:
reviewers: true
```
Scenario: patternProperties with oneOf
Given a YAML schema:
```
type: object
patternProperties:
^[a-zA-Z0-9]+$:
oneOf:
- type: null
- type: object
properties:
name:
type: string
```
Then it should accept:
```
a1b:
name: John
```