intellitester 0.2.11 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-VOGZ7IFW.js → chunk-BYSKHSJB.js} +198 -206
- package/dist/chunk-BYSKHSJB.js.map +1 -0
- package/dist/{chunk-ZWHIDROO.cjs → chunk-UM7RXADM.cjs} +198 -206
- package/dist/chunk-UM7RXADM.cjs.map +1 -0
- package/dist/cli/index.cjs +34 -34
- package/dist/cli/index.js +1 -1
- package/dist/index.cjs +28 -28
- package/dist/index.js +1 -1
- package/package.json +3 -2
- package/schemas/intellitester.config.schema.json +210 -204
- package/schemas/pipeline.schema.json +292 -0
- package/schemas/test.schema.json +355 -204
- package/schemas/workflow.schema.json +135 -104
- package/dist/chunk-VOGZ7IFW.js.map +0 -1
- package/dist/chunk-ZWHIDROO.cjs.map +0 -1
|
@@ -1,227 +1,258 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$schema": "
|
|
3
|
-
"
|
|
4
|
-
"description": "Schema for IntelliTester workflow files (*.workflow.yaml) that orchestrate multiple tests",
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description": "Schema for IntelliTester workflow files that orchestrate multiple tests",
|
|
5
4
|
"type": "object",
|
|
6
|
-
"required": ["name", "tests"],
|
|
7
5
|
"properties": {
|
|
8
6
|
"name": {
|
|
9
|
-
"type": "string",
|
|
10
|
-
"minLength": 1,
|
|
11
7
|
"description": "The name of the workflow",
|
|
12
|
-
"
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1
|
|
13
10
|
},
|
|
14
11
|
"platform": {
|
|
15
|
-
"type": "string",
|
|
16
|
-
"enum": ["web", "android", "ios"],
|
|
17
12
|
"description": "The platform to run the workflow on",
|
|
18
|
-
"default": "web"
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
"default": "web",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"enum": [
|
|
16
|
+
"web",
|
|
17
|
+
"android",
|
|
18
|
+
"ios"
|
|
19
|
+
]
|
|
24
20
|
},
|
|
25
21
|
"config": {
|
|
26
|
-
"type": "object",
|
|
27
22
|
"description": "Workflow-level configuration that applies to all tests",
|
|
23
|
+
"type": "object",
|
|
28
24
|
"properties": {
|
|
29
25
|
"web": {
|
|
30
|
-
"type": "object",
|
|
31
26
|
"description": "Web platform configuration for the workflow",
|
|
27
|
+
"type": "object",
|
|
32
28
|
"properties": {
|
|
33
29
|
"baseUrl": {
|
|
34
|
-
"type": "string",
|
|
35
|
-
"format": "uri",
|
|
36
30
|
"description": "Base URL for all tests in this workflow",
|
|
37
|
-
"
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1,
|
|
33
|
+
"format": "uri"
|
|
38
34
|
},
|
|
39
35
|
"browser": {
|
|
40
|
-
"type": "string",
|
|
41
|
-
"enum": ["chromium", "firefox", "webkit"],
|
|
42
36
|
"description": "Browser to use for all web tests",
|
|
43
|
-
"
|
|
37
|
+
"type": "string",
|
|
38
|
+
"enum": [
|
|
39
|
+
"chromium",
|
|
40
|
+
"firefox",
|
|
41
|
+
"webkit"
|
|
42
|
+
]
|
|
44
43
|
},
|
|
45
44
|
"headless": {
|
|
46
|
-
"type": "boolean",
|
|
47
45
|
"description": "Run browser in headless mode",
|
|
48
|
-
"
|
|
46
|
+
"type": "boolean"
|
|
49
47
|
}
|
|
50
|
-
}
|
|
48
|
+
},
|
|
49
|
+
"additionalProperties": false
|
|
51
50
|
},
|
|
52
51
|
"appwrite": {
|
|
53
|
-
"type": "object",
|
|
54
52
|
"description": "Appwrite backend configuration for the workflow",
|
|
53
|
+
"type": "object",
|
|
55
54
|
"properties": {
|
|
56
55
|
"endpoint": {
|
|
57
|
-
"type": "string",
|
|
58
|
-
"format": "uri",
|
|
59
56
|
"description": "Appwrite API endpoint",
|
|
60
|
-
"
|
|
57
|
+
"type": "string",
|
|
58
|
+
"minLength": 1,
|
|
59
|
+
"format": "uri"
|
|
61
60
|
},
|
|
62
61
|
"projectId": {
|
|
62
|
+
"description": "Appwrite project ID",
|
|
63
63
|
"type": "string",
|
|
64
|
-
"minLength": 1
|
|
65
|
-
"description": "Appwrite project ID"
|
|
64
|
+
"minLength": 1
|
|
66
65
|
},
|
|
67
66
|
"apiKey": {
|
|
67
|
+
"description": "Appwrite API key",
|
|
68
68
|
"type": "string",
|
|
69
|
-
"minLength": 1
|
|
70
|
-
"description": "Appwrite API key"
|
|
69
|
+
"minLength": 1
|
|
71
70
|
},
|
|
72
71
|
"cleanup": {
|
|
73
|
-
"type": "boolean",
|
|
74
72
|
"description": "Enable automatic cleanup of created resources",
|
|
75
|
-
"default": true
|
|
73
|
+
"default": true,
|
|
74
|
+
"type": "boolean"
|
|
76
75
|
},
|
|
77
76
|
"cleanupOnFailure": {
|
|
78
|
-
"type": "boolean",
|
|
79
77
|
"description": "Clean up resources even when tests fail",
|
|
80
|
-
"default": true
|
|
78
|
+
"default": true,
|
|
79
|
+
"type": "boolean"
|
|
81
80
|
}
|
|
82
81
|
},
|
|
83
|
-
"required": [
|
|
82
|
+
"required": [
|
|
83
|
+
"endpoint",
|
|
84
|
+
"projectId",
|
|
85
|
+
"apiKey",
|
|
86
|
+
"cleanup",
|
|
87
|
+
"cleanupOnFailure"
|
|
88
|
+
],
|
|
89
|
+
"additionalProperties": false
|
|
84
90
|
},
|
|
85
91
|
"cleanup": {
|
|
86
|
-
"type": "object",
|
|
87
92
|
"description": "Resource cleanup configuration",
|
|
93
|
+
"type": "object",
|
|
88
94
|
"properties": {
|
|
89
95
|
"provider": {
|
|
90
|
-
"type": "string",
|
|
91
96
|
"description": "Cleanup provider to use",
|
|
92
|
-
"
|
|
97
|
+
"type": "string"
|
|
93
98
|
},
|
|
94
99
|
"parallel": {
|
|
95
|
-
"type": "boolean",
|
|
96
100
|
"description": "Run cleanup tasks in parallel",
|
|
97
|
-
"default": false
|
|
101
|
+
"default": false,
|
|
102
|
+
"type": "boolean"
|
|
98
103
|
},
|
|
99
104
|
"retries": {
|
|
100
|
-
"type": "integer",
|
|
101
|
-
"minimum": 1,
|
|
102
|
-
"maximum": 10,
|
|
103
105
|
"description": "Number of retry attempts for failed cleanup operations",
|
|
104
|
-
"default": 3
|
|
106
|
+
"default": 3,
|
|
107
|
+
"type": "number",
|
|
108
|
+
"minimum": 1,
|
|
109
|
+
"maximum": 10
|
|
105
110
|
},
|
|
106
111
|
"types": {
|
|
107
|
-
"type": "object",
|
|
108
112
|
"description": "Map resource types to cleanup handler methods",
|
|
109
|
-
"
|
|
113
|
+
"type": "object",
|
|
114
|
+
"propertyNames": {
|
|
110
115
|
"type": "string"
|
|
111
116
|
},
|
|
112
|
-
"
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
"team": "appwrite.deleteTeam",
|
|
116
|
-
"stripe_customer": "stripe.deleteCustomer"
|
|
117
|
-
}
|
|
118
|
-
]
|
|
117
|
+
"additionalProperties": {
|
|
118
|
+
"type": "string"
|
|
119
|
+
}
|
|
119
120
|
},
|
|
120
121
|
"handlers": {
|
|
121
|
-
"type": "array",
|
|
122
122
|
"description": "Explicit paths to custom cleanup handler files",
|
|
123
|
+
"type": "array",
|
|
123
124
|
"items": {
|
|
124
125
|
"type": "string"
|
|
125
|
-
}
|
|
126
|
-
"examples": [["./src/cleanup/stripe.ts", "./tests/cleanup/custom.ts"]]
|
|
126
|
+
}
|
|
127
127
|
},
|
|
128
128
|
"discover": {
|
|
129
|
-
"type": "object",
|
|
130
129
|
"description": "Auto-discovery configuration for cleanup handlers",
|
|
130
|
+
"type": "object",
|
|
131
131
|
"properties": {
|
|
132
132
|
"enabled": {
|
|
133
|
-
"type": "boolean",
|
|
134
133
|
"description": "Enable auto-discovery of cleanup handlers",
|
|
135
|
-
"default": true
|
|
134
|
+
"default": true,
|
|
135
|
+
"type": "boolean"
|
|
136
136
|
},
|
|
137
137
|
"paths": {
|
|
138
|
-
"type": "array",
|
|
139
138
|
"description": "Directories to search for cleanup handlers",
|
|
139
|
+
"default": [
|
|
140
|
+
"./tests/cleanup"
|
|
141
|
+
],
|
|
142
|
+
"type": "array",
|
|
140
143
|
"items": {
|
|
141
144
|
"type": "string"
|
|
142
|
-
}
|
|
143
|
-
"default": ["./tests/cleanup"]
|
|
145
|
+
}
|
|
144
146
|
},
|
|
145
147
|
"pattern": {
|
|
146
|
-
"type": "string",
|
|
147
148
|
"description": "Glob pattern for handler files",
|
|
148
|
-
"default": "**/*.ts"
|
|
149
|
+
"default": "**/*.ts",
|
|
150
|
+
"type": "string"
|
|
149
151
|
}
|
|
150
|
-
}
|
|
152
|
+
},
|
|
153
|
+
"required": [
|
|
154
|
+
"enabled",
|
|
155
|
+
"paths",
|
|
156
|
+
"pattern"
|
|
157
|
+
],
|
|
158
|
+
"additionalProperties": false
|
|
151
159
|
}
|
|
152
|
-
}
|
|
160
|
+
},
|
|
161
|
+
"required": [
|
|
162
|
+
"parallel",
|
|
163
|
+
"retries"
|
|
164
|
+
],
|
|
165
|
+
"additionalProperties": {}
|
|
153
166
|
},
|
|
154
167
|
"webServer": {
|
|
155
|
-
"type": "object",
|
|
156
168
|
"description": "Configuration for starting a web server before tests",
|
|
157
|
-
"
|
|
169
|
+
"type": "object",
|
|
158
170
|
"properties": {
|
|
159
171
|
"command": {
|
|
160
|
-
"type": "string",
|
|
161
|
-
"minLength": 1,
|
|
162
172
|
"description": "Command to start the web server",
|
|
163
|
-
"
|
|
173
|
+
"type": "string",
|
|
174
|
+
"minLength": 1
|
|
164
175
|
},
|
|
165
176
|
"auto": {
|
|
166
|
-
"type": "boolean",
|
|
167
177
|
"description": "Auto-detect server start command from package.json",
|
|
168
|
-
"
|
|
178
|
+
"type": "boolean"
|
|
169
179
|
},
|
|
170
180
|
"url": {
|
|
171
|
-
"type": "string",
|
|
172
|
-
"format": "uri",
|
|
173
181
|
"description": "URL to wait for before starting tests",
|
|
174
|
-
"
|
|
182
|
+
"type": "string",
|
|
183
|
+
"minLength": 1,
|
|
184
|
+
"format": "uri"
|
|
175
185
|
},
|
|
176
186
|
"reuseExistingServer": {
|
|
177
|
-
"type": "boolean",
|
|
178
187
|
"description": "Use existing server if already running at the URL",
|
|
179
|
-
"default": true
|
|
188
|
+
"default": true,
|
|
189
|
+
"type": "boolean"
|
|
180
190
|
},
|
|
181
191
|
"timeout": {
|
|
182
|
-
"type": "integer",
|
|
183
|
-
"minimum": 1,
|
|
184
192
|
"description": "Timeout in milliseconds to wait for server to start",
|
|
185
|
-
"default": 30000
|
|
193
|
+
"default": 30000,
|
|
194
|
+
"type": "integer",
|
|
195
|
+
"exclusiveMinimum": 0,
|
|
196
|
+
"maximum": 9007199254740991
|
|
186
197
|
}
|
|
187
|
-
}
|
|
198
|
+
},
|
|
199
|
+
"required": [
|
|
200
|
+
"url",
|
|
201
|
+
"reuseExistingServer",
|
|
202
|
+
"timeout"
|
|
203
|
+
],
|
|
204
|
+
"additionalProperties": false
|
|
188
205
|
}
|
|
189
|
-
}
|
|
206
|
+
},
|
|
207
|
+
"additionalProperties": false
|
|
208
|
+
},
|
|
209
|
+
"continueOnFailure": {
|
|
210
|
+
"description": "Continue running subsequent tests even if a test fails",
|
|
211
|
+
"default": false,
|
|
212
|
+
"type": "boolean"
|
|
190
213
|
},
|
|
191
214
|
"tests": {
|
|
192
|
-
"type": "array",
|
|
193
215
|
"description": "List of test files to execute in this workflow",
|
|
194
216
|
"minItems": 1,
|
|
217
|
+
"type": "array",
|
|
195
218
|
"items": {
|
|
219
|
+
"description": "Reference to a test file",
|
|
196
220
|
"type": "object",
|
|
197
|
-
"required": ["file"],
|
|
198
221
|
"properties": {
|
|
199
222
|
"file": {
|
|
200
|
-
"type": "string",
|
|
201
|
-
"minLength": 1,
|
|
202
223
|
"description": "Path to the test file relative to the workflow file",
|
|
203
|
-
"
|
|
224
|
+
"type": "string",
|
|
225
|
+
"minLength": 1
|
|
204
226
|
},
|
|
205
227
|
"id": {
|
|
206
|
-
"type": "string",
|
|
207
228
|
"description": "Optional ID for referencing this test in variables or dependencies",
|
|
208
|
-
"
|
|
229
|
+
"type": "string",
|
|
230
|
+
"minLength": 1
|
|
209
231
|
},
|
|
210
232
|
"variables": {
|
|
211
|
-
"type": "object",
|
|
212
233
|
"description": "Variables to inject or override for this specific test",
|
|
213
|
-
"
|
|
234
|
+
"type": "object",
|
|
235
|
+
"propertyNames": {
|
|
214
236
|
"type": "string"
|
|
215
237
|
},
|
|
216
|
-
"
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
"TEST_USER": "workflow-user@example.com"
|
|
220
|
-
}
|
|
221
|
-
]
|
|
238
|
+
"additionalProperties": {
|
|
239
|
+
"type": "string"
|
|
240
|
+
}
|
|
222
241
|
}
|
|
223
|
-
}
|
|
242
|
+
},
|
|
243
|
+
"required": [
|
|
244
|
+
"file"
|
|
245
|
+
],
|
|
246
|
+
"additionalProperties": false
|
|
224
247
|
}
|
|
225
248
|
}
|
|
226
|
-
}
|
|
249
|
+
},
|
|
250
|
+
"required": [
|
|
251
|
+
"name",
|
|
252
|
+
"platform",
|
|
253
|
+
"continueOnFailure",
|
|
254
|
+
"tests"
|
|
255
|
+
],
|
|
256
|
+
"additionalProperties": false,
|
|
257
|
+
"title": "IntelliTester Workflow Definition"
|
|
227
258
|
}
|