Skip to content

Commit d1af5e7

Browse files
authored
fix(schema)!: Split out indiivual event structs (#109)
This makes things more composable if someone wants to emit their own messages.
2 parents 9aad038 + 8e6d432 commit d1af5e7

9 files changed

Lines changed: 619 additions & 394 deletions

File tree

crates/libtest-json/event.schema.json

Lines changed: 120 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,103 @@
33
"title": "Event",
44
"oneOf": [
55
{
6+
"type": "object",
7+
"properties": {
8+
"event": {
9+
"type": "string",
10+
"const": "discover_start"
11+
}
12+
},
13+
"$ref": "#/$defs/DiscoverStart",
14+
"required": [
15+
"event"
16+
]
17+
},
18+
{
19+
"type": "object",
20+
"properties": {
21+
"event": {
22+
"type": "string",
23+
"const": "discover_case"
24+
}
25+
},
26+
"$ref": "#/$defs/DiscoverCase",
27+
"required": [
28+
"event"
29+
]
30+
},
31+
{
32+
"type": "object",
33+
"properties": {
34+
"event": {
35+
"type": "string",
36+
"const": "discover_complete"
37+
}
38+
},
39+
"$ref": "#/$defs/DiscoverComplete",
40+
"required": [
41+
"event"
42+
]
43+
},
44+
{
45+
"type": "object",
46+
"properties": {
47+
"event": {
48+
"type": "string",
49+
"const": "run_start"
50+
}
51+
},
52+
"$ref": "#/$defs/RunStart",
53+
"required": [
54+
"event"
55+
]
56+
},
57+
{
58+
"type": "object",
59+
"properties": {
60+
"event": {
61+
"type": "string",
62+
"const": "case_start"
63+
}
64+
},
65+
"$ref": "#/$defs/CaseStart",
66+
"required": [
67+
"event"
68+
]
69+
},
70+
{
71+
"type": "object",
72+
"properties": {
73+
"event": {
74+
"type": "string",
75+
"const": "case_complete"
76+
}
77+
},
78+
"$ref": "#/$defs/CaseComplete",
79+
"required": [
80+
"event"
81+
]
82+
},
83+
{
84+
"type": "object",
85+
"properties": {
86+
"event": {
87+
"type": "string",
88+
"const": "run_complete"
89+
}
90+
},
91+
"$ref": "#/$defs/RunComplete",
92+
"required": [
93+
"event"
94+
]
95+
}
96+
],
97+
"$defs": {
98+
"Elapsed": {
99+
"description": "Time elapsed since process start",
100+
"type": "string"
101+
},
102+
"DiscoverStart": {
6103
"type": "object",
7104
"properties": {
8105
"elapsed_s": {
@@ -14,17 +111,17 @@
14111
"type": "null"
15112
}
16113
]
17-
},
18-
"event": {
19-
"type": "string",
20-
"const": "discover_start"
21114
}
22-
},
23-
"required": [
24-
"event"
115+
}
116+
},
117+
"RunMode": {
118+
"type": "string",
119+
"enum": [
120+
"test",
121+
"bench"
25122
]
26123
},
27-
{
124+
"DiscoverCase": {
28125
"type": "object",
29126
"properties": {
30127
"name": {
@@ -46,18 +143,13 @@
46143
"type": "null"
47144
}
48145
]
49-
},
50-
"event": {
51-
"type": "string",
52-
"const": "discover_case"
53146
}
54147
},
55148
"required": [
56-
"event",
57149
"name"
58150
]
59151
},
60-
{
152+
"DiscoverComplete": {
61153
"type": "object",
62154
"properties": {
63155
"elapsed_s": {
@@ -69,17 +161,10 @@
69161
"type": "null"
70162
}
71163
]
72-
},
73-
"event": {
74-
"type": "string",
75-
"const": "discover_complete"
76164
}
77-
},
78-
"required": [
79-
"event"
80-
]
165+
}
81166
},
82-
{
167+
"RunStart": {
83168
"type": "object",
84169
"properties": {
85170
"elapsed_s": {
@@ -91,17 +176,10 @@
91176
"type": "null"
92177
}
93178
]
94-
},
95-
"event": {
96-
"type": "string",
97-
"const": "run_start"
98179
}
99-
},
100-
"required": [
101-
"event"
102-
]
180+
}
103181
},
104-
{
182+
"CaseStart": {
105183
"type": "object",
106184
"properties": {
107185
"name": {
@@ -116,18 +194,20 @@
116194
"type": "null"
117195
}
118196
]
119-
},
120-
"event": {
121-
"type": "string",
122-
"const": "case_start"
123197
}
124198
},
125199
"required": [
126-
"event",
127200
"name"
128201
]
129202
},
130-
{
203+
"RunStatus": {
204+
"type": "string",
205+
"enum": [
206+
"ignored",
207+
"failed"
208+
]
209+
},
210+
"CaseComplete": {
131211
"type": "object",
132212
"properties": {
133213
"name": {
@@ -159,18 +239,13 @@
159239
"type": "null"
160240
}
161241
]
162-
},
163-
"event": {
164-
"type": "string",
165-
"const": "case_complete"
166242
}
167243
},
168244
"required": [
169-
"event",
170245
"name"
171246
]
172247
},
173-
{
248+
"RunComplete": {
174249
"type": "object",
175250
"properties": {
176251
"elapsed_s": {
@@ -182,35 +257,8 @@
182257
"type": "null"
183258
}
184259
]
185-
},
186-
"event": {
187-
"type": "string",
188-
"const": "run_complete"
189260
}
190-
},
191-
"required": [
192-
"event"
193-
]
194-
}
195-
],
196-
"$defs": {
197-
"Elapsed": {
198-
"description": "Time elapsed since process start",
199-
"type": "string"
200-
},
201-
"RunMode": {
202-
"type": "string",
203-
"enum": [
204-
"test",
205-
"bench"
206-
]
207-
},
208-
"RunStatus": {
209-
"type": "string",
210-
"enum": [
211-
"ignored",
212-
"failed"
213-
]
261+
}
214262
}
215263
}
216264
}

0 commit comments

Comments
 (0)