wisp-schema 1.0.6 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 440717453e56bc6b9fdb2ac23fa5acab01e76975840a3ae9005cb82b6d876cea
4
- data.tar.gz: bac04b791a26cea2ba3c0775794d05988ff2749c9a000a8a0d58365137cf15e7
3
+ metadata.gz: 4b84a9f4f5273e68367e3dd5f8a7ca761d799c9e8da578dbcd0902949206f267
4
+ data.tar.gz: c24fd37ce555fe9ae1378f936539085df37e6ab321f428721e16550df3557038
5
5
  SHA512:
6
- metadata.gz: eba99df0496a5e3ed596015ec19b3064e3c2c12d30db13eb455922b9bd2ada9599aca1c6dc02cf331a0555e09a7fe95773c87c2d1be9c4a3a83d0d7b41bd1fd9
7
- data.tar.gz: ad23771078a30e0921927c33b490ba603e130d2f830000a2547dc36abd45be7bdd4929ddbafdc6e718033dc5aafdb51a817ebaff1f61c9492308cf2f0ff7b625
6
+ metadata.gz: a4e7aad44e62ee576644afb790bf2de039c7fccd11d0031594798949ac57e6a078b1dff9115fec999a0eec78df5a56c9f2f854f83539888f77739e204293c21a
7
+ data.tar.gz: ce14c453a2d0e96f3440c20228e34b41da7607723ec98502ac1007825d407b56c7a675300b9159e289d2b61f32355ec15641ef0bb7a574b67c806ff2870e6b17
data/canary-wisp.json CHANGED
@@ -91,6 +91,8 @@
91
91
  "enum": ["click"]
92
92
  },
93
93
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
94
+ "id": {"title": "Action ID", "type": "integer"},
95
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
94
96
  "target": {
95
97
  "title": "Target",
96
98
  "$ref": "#/definitions/noun",
@@ -113,6 +115,8 @@
113
115
  "enum": ["double_click"]
114
116
  },
115
117
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
118
+ "id": {"title": "Action ID", "type": "integer"},
119
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
116
120
  "target": {
117
121
  "title": "Target",
118
122
  "$ref": "#/definitions/noun",
@@ -132,6 +136,8 @@
132
136
  "enum": ["fill"]
133
137
  },
134
138
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
139
+ "id": {"title": "Action ID", "type": "integer"},
140
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
135
141
  "target": {
136
142
  "title": "Target",
137
143
  "$ref": "#/definitions/noun",
@@ -152,6 +158,8 @@
152
158
  "enum": ["type"]
153
159
  },
154
160
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
161
+ "id": {"title": "Action ID", "type": "integer"},
162
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
155
163
  "text": {"title": "Text", "type": "string"}
156
164
  },
157
165
  "additionalProperties": false,
@@ -167,6 +175,8 @@
167
175
  "enum": ["send_key"]
168
176
  },
169
177
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
178
+ "id": {"title": "Action ID", "type": "integer"},
179
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
170
180
  "key": {"title": "Key", "type": "string"},
171
181
  "modifier": {"title": "Modifier", "type": "string"}
172
182
  },
@@ -183,6 +193,8 @@
183
193
  "enum": ["hover"]
184
194
  },
185
195
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
196
+ "id": {"title": "Action ID", "type": "integer"},
197
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
186
198
  "target": {
187
199
  "title": "Target",
188
200
  "$ref": "#/definitions/noun",
@@ -202,6 +214,8 @@
202
214
  "enum": ["select"]
203
215
  },
204
216
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
217
+ "id": {"title": "Action ID", "type": "integer"},
218
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
205
219
  "target": {
206
220
  "title": "Target",
207
221
  "$ref": "#/definitions/noun",
@@ -224,7 +238,9 @@
224
238
  "action": {
225
239
  "enum": ["refresh"]
226
240
  },
227
- "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"}
241
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
242
+ "id": {"title": "Action ID", "type": "integer"},
243
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"}
228
244
  },
229
245
  "additionalProperties": false,
230
246
  "required": ["action"]
@@ -239,6 +255,8 @@
239
255
  "enum": ["navigate"]
240
256
  },
241
257
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
258
+ "id": {"title": "Action ID", "type": "integer"},
259
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
242
260
  "url": {"title": "URL", "type": "string"},
243
261
  "tab": {"title": "Tab", "type": "string", "enum": ["current", "new", "incognito"]}
244
262
  },
@@ -254,7 +272,9 @@
254
272
  "action": {
255
273
  "enum": ["close_tab"]
256
274
  },
257
- "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"}
275
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
276
+ "id": {"title": "Action ID", "type": "integer"},
277
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"}
258
278
  },
259
279
  "additionalProperties": false,
260
280
  "required": ["action"]
@@ -269,6 +289,8 @@
269
289
  "enum": ["scroll"]
270
290
  },
271
291
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
292
+ "id": {"title": "Action ID", "type": "integer"},
293
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
272
294
  "direction": {"title": "Direction", "type": "string", "enum": ["up", "down", "left", "right"]},
273
295
  "target": {
274
296
  "title": "Target",
@@ -289,6 +311,8 @@
289
311
  "enum": ["wait"]
290
312
  },
291
313
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
314
+ "id": {"title": "Action ID", "type": "integer"},
315
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
292
316
  "seconds": {"title": "seconds", "type": "integer"}
293
317
  },
294
318
  "additionalProperties": false,
@@ -304,6 +328,8 @@
304
328
  "enum": ["drag_and_drop"]
305
329
  },
306
330
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
331
+ "id": {"title": "Action ID", "type": "integer"},
332
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
307
333
  "object": {
308
334
  "title": "Object",
309
335
  "$ref": "#/definitions/noun"
@@ -344,6 +370,8 @@
344
370
  "enum": ["tester_instruction"]
345
371
  },
346
372
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
373
+ "id": {"title": "Action ID", "type": "integer"},
374
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
347
375
  "instruction": {"title": "Instruction", "type": "string"}
348
376
  },
349
377
  "additionalProperties": false,
@@ -359,6 +387,8 @@
359
387
  "enum": ["observe"]
360
388
  },
361
389
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
390
+ "id": {"title": "Action ID", "type": "integer"},
391
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
362
392
  "object": {
363
393
  "title": "Object",
364
394
  "$ref": "#/definitions/noun"
@@ -382,6 +412,8 @@
382
412
  "enum": ["loaded"]
383
413
  },
384
414
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
415
+ "id": {"title": "Action ID", "type": "integer"},
416
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
385
417
  "page": {"title": "Page", "type": "string"}
386
418
  },
387
419
  "additionalProperties": false,
@@ -397,6 +429,8 @@
397
429
  "enum": ["tester_confirmation"]
398
430
  },
399
431
  "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
432
+ "id": {"title": "Action ID", "type": "integer"},
433
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
400
434
  "confirmation": {"title": "confirmation", "type": "string"}
401
435
  },
402
436
  "additionalProperties": false,
data/lib/version.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Wisp
4
- VERSION = '1.0.6'
5
- STABLE_VERSION = '0.18.1'
4
+ VERSION = '1.2.2'
5
+ STABLE_VERSION = '1.2.2'
6
+ CANARY_VERSION = '2.0.0'
6
7
  end
data/lib/wisp-schema.rb CHANGED
@@ -4,12 +4,35 @@ require 'semantic'
4
4
  require_relative 'version'
5
5
 
6
6
  module Wisp
7
+ class NotSupportedAction < StandardError
8
+ end
9
+
7
10
  SCHEMA_PATH = File.expand_path('../wisp.json', __dir__)
8
11
  NOUNS_PATH = File.expand_path('../nouns.json', __dir__)
9
12
 
10
13
  CANARY_SCHEMA_PATH = File.expand_path('../canary-wisp.json', __dir__)
11
14
  CANARY_NOUNS_PATH = File.expand_path('../canary-nouns.json', __dir__)
12
15
 
16
+ ACTIONS = [
17
+ "click",
18
+ "close_tab",
19
+ "double_click",
20
+ "drag_and_drop",
21
+ "fill",
22
+ "hover",
23
+ "loaded",
24
+ "navigate",
25
+ "observe",
26
+ "refresh",
27
+ "scroll",
28
+ "select",
29
+ "send_key",
30
+ "tester_confirmation",
31
+ "tester_instruction",
32
+ "type",
33
+ "wait",
34
+ ].freeze
35
+
13
36
  SEMANTIC_STABLE_VERSION = Semantic::Version.new(STABLE_VERSION)
14
37
 
15
38
  def is_canary?(raw_version)
@@ -34,4 +57,15 @@ module Wisp
34
57
  end
35
58
  end
36
59
  module_function :nouns_schemer
60
+
61
+ def action_schemer(raw_version, action)
62
+ raise NotSupportedAction unless ACTIONS.include?(action)
63
+
64
+ if is_canary?(raw_version)
65
+ JSONSchemer.schema(Pathname.new(File.expand_path("../canary/actions/#{action}.json", __dir__)))
66
+ else
67
+ JSONSchemer.schema(Pathname.new(File.expand_path("../stable/actions/#{action}.json", __dir__)))
68
+ end
69
+ end
70
+ module_function :action_schemer
37
71
  end
@@ -0,0 +1,27 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Click",
6
+ "description": "Clicks on the UI element",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["click"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "target": {
14
+ "title": "Target",
15
+ "$ref": "ui_element_reference.json"
16
+ },
17
+ "button": {"title": "Mouse Button", "type": "string", "enum": ["left", "middle", "right"]},
18
+ "hold": {"title": "And Hold", "type": "boolean"},
19
+ "hold_seconds": {"title": "Hold seconds", "type": "integer"},
20
+ "version": {
21
+ "type": "string",
22
+ "title": "Version"
23
+ }
24
+ },
25
+ "additionalProperties": false,
26
+ "required": ["action", "target", "button", "hold", "version"]
27
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Close Tab",
6
+ "description": "Closes current browser tab",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["close_tab"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "version": {
14
+ "type": "string",
15
+ "title": "Version"
16
+ }
17
+ },
18
+ "additionalProperties": false,
19
+ "required": ["action", "version"]
20
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Double Click",
6
+ "description": "Double-clicks on the UI element",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["double_click"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "target": {
14
+ "title": "Target",
15
+ "$ref": "ui_element_reference.json"
16
+ },
17
+ "version": {
18
+ "type": "string",
19
+ "title": "Version"
20
+ }
21
+ },
22
+ "additionalProperties": false,
23
+ "required": ["action", "target", "version"]
24
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Drag and drop",
6
+ "description": "Drag and drop",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["drag_and_drop"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "object": {
14
+ "title": "Object",
15
+ "$ref": "ui_element_reference.json"
16
+ },
17
+ "target": {
18
+ "title": "Target",
19
+ "$ref": "ui_element_reference.json"
20
+ },
21
+ "version": {
22
+ "type": "string",
23
+ "title": "Version"
24
+ }
25
+ },
26
+ "additionalProperties": false,
27
+ "required": ["action", "target", "object", "version"]
28
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Fill",
6
+ "description": "Fills the text field with specified content",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["fill"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "target": {
14
+ "title": "Target",
15
+ "$ref": "ui_element_reference.json"
16
+ },
17
+ "text": {"title": "Text", "type": "string"},
18
+ "version": {
19
+ "type": "string",
20
+ "title": "Version"
21
+ }
22
+ },
23
+ "additionalProperties": false,
24
+ "required": ["action", "target", "text", "version"]
25
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Hover",
6
+ "description": "Hovers over specified element",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["hover"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "target": {
14
+ "title": "Target",
15
+ "$ref": "ui_element_reference.json"
16
+ },
17
+ "version": {
18
+ "type": "string",
19
+ "title": "Version"
20
+ }
21
+ },
22
+ "additionalProperties": false,
23
+ "required": ["action", "target", "version"]
24
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "assertion",
5
+ "title": "Loaded",
6
+ "description": "Checks if specified page has loaded",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["loaded"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "page": {"title": "Page", "type": "string"},
14
+ "version": {
15
+ "type": "string",
16
+ "title": "Version"
17
+ }
18
+ },
19
+ "additionalProperties": false,
20
+ "required": ["action", "page", "version"]
21
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Navigate",
6
+ "description": "Navigates to specified URL",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["navigate"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "url": {"title": "URL", "type": "string"},
14
+ "tab": {"title": "Tab", "type": "string", "enum": ["current", "new", "incognito"]},
15
+ "version": {
16
+ "type": "string",
17
+ "title": "Version"
18
+ }
19
+ },
20
+ "additionalProperties": false,
21
+ "required": ["action", "url", "tab", "version"]
22
+ }
@@ -0,0 +1,29 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "assertion",
5
+ "title": "Observe",
6
+ "description": "Checks if element of the UI is visible or not",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["observe"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "object": {
14
+ "title": "Object",
15
+ "$ref": "ui_element_reference.json"
16
+ },
17
+ "visibility": {
18
+ "title": "Is the element visible?",
19
+ "type": "boolean",
20
+ "enum": [true, false]
21
+ },
22
+ "version": {
23
+ "type": "string",
24
+ "title": "Version"
25
+ }
26
+ },
27
+ "additionalProperties": false,
28
+ "required": ["action", "object", "visibility", "version"]
29
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "refresh",
6
+ "description": "refreshes the webpage",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["refresh"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "version": {
14
+ "type": "string",
15
+ "title": "Version"
16
+ }
17
+ },
18
+ "additionalproperties": false,
19
+ "required": ["action", "version"]
20
+ }
@@ -0,0 +1,25 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Scroll",
6
+ "description": "Scrolls the page into specified direction until target is reached",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["scroll"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "direction": {"title": "Direction", "type": "string", "enum": ["up", "down", "left", "right"]},
14
+ "target": {
15
+ "title": "Target",
16
+ "$ref": "ui_element_reference.json"
17
+ },
18
+ "version": {
19
+ "type": "string",
20
+ "title": "Version"
21
+ }
22
+ },
23
+ "additionalProperties": false,
24
+ "required": ["action", "direction", "target", "version"]
25
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Select",
6
+ "description": "Selects specified item from the dropdown",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["select"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "target": {
14
+ "title": "Target",
15
+ "$ref": "ui_element_reference.json"
16
+ },
17
+ "option": {
18
+ "title": "Option",
19
+ "$ref": "ui_element_reference.json"
20
+ },
21
+ "version": {
22
+ "type": "string",
23
+ "title": "Version"
24
+ }
25
+ },
26
+ "additionalProperties": false,
27
+ "required": ["action", "target", "option", "version"]
28
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Press Key",
6
+ "description": "Press specified key or key combination.",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["send_key"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "key": {"title": "Key", "type": "string"},
14
+ "modifier": {"title": "Modifier", "type": "string"},
15
+ "version": {
16
+ "type": "string",
17
+ "title": "Version"
18
+ }
19
+ },
20
+ "additionalProperties": false,
21
+ "required": ["action", "key", "version"]
22
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "assertion",
5
+ "title": "Tester Confirmation",
6
+ "description": "Ask a question to confirm a behavior",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["tester_confirmation"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "confirmation": {"title": "confirmation", "type": "string"},
14
+ "version": {
15
+ "type": "string",
16
+ "title": "Version"
17
+ }
18
+ },
19
+ "additionalProperties": false,
20
+ "required": ["action", "confirmation", "version"]
21
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Tester Instruction",
6
+ "description": "An action for a human to complete",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["tester_instruction"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "instruction": {"title": "Instruction", "type": "string"},
14
+ "version": {
15
+ "type": "string",
16
+ "title": "Version"
17
+ }
18
+ },
19
+ "additionalProperties": false,
20
+ "required": ["action", "instruction", "version"]
21
+ }
@@ -0,0 +1,21 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Type",
6
+ "description": "Types in specified text",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["type"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "text": {"title": "Text", "type": "string"},
14
+ "version": {
15
+ "type": "string",
16
+ "title": "Version"
17
+ }
18
+ },
19
+ "additionalProperties": false,
20
+ "required": ["action", "text", "version"]
21
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "title": "UI Element Reference",
5
+ "description": "A UI Element stored in the database",
6
+ "properties": {
7
+ "type": {
8
+ "enum": ["ui_element_reference"]
9
+ },
10
+ "id": {"title": "UI Element ID", "type": "integer"}
11
+ },
12
+ "additionalProperties": false,
13
+ "required": ["type", "id"]
14
+ }
@@ -0,0 +1,22 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "type": "object",
4
+ "action_type": "action",
5
+ "title": "Wait",
6
+ "description": "Waits for a number of seconds",
7
+ "properties": {
8
+ "action": {
9
+ "enum": ["wait"]
10
+ },
11
+ "id": {"title": "Action ID", "type": "integer"},
12
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
13
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
14
+ "seconds": {"title": "seconds", "type": "integer"},
15
+ "version": {
16
+ "type": "string",
17
+ "title": "Version"
18
+ }
19
+ },
20
+ "additionalProperties": false,
21
+ "required": ["action", "seconds", "version"]
22
+ }
data/wisp.json CHANGED
@@ -67,56 +67,60 @@
67
67
  {"$ref": "#/definitions/type"},
68
68
  {"$ref": "#/definitions/send_key"},
69
69
  {"$ref": "#/definitions/hover"},
70
- {"$ref": "#/definitions/dropdown_select"},
71
- {"$ref": "#/definitions/checkbox_check"},
72
- {"$ref": "#/definitions/checkbox_uncheck"},
70
+ {"$ref": "#/definitions/select"},
73
71
  {"$ref": "#/definitions/refresh"},
74
72
  {"$ref": "#/definitions/navigate"},
75
- {"$ref": "#/definitions/navigate_new_tab"},
76
- {"$ref": "#/definitions/navigate_incognito_tab"},
77
73
  {"$ref": "#/definitions/close_tab"},
78
74
  {"$ref": "#/definitions/scroll"},
79
- {"$ref": "#/definitions/sleep"},
75
+ {"$ref": "#/definitions/wait"},
80
76
  {"$ref": "#/definitions/drag_and_drop"},
81
- {"$ref": "#/definitions/click_and_hold"},
82
- {"$ref": "#/definitions/plain_language"},
83
- {"$ref": "#/definitions/custom_action"},
84
- {"$ref": "#/definitions/see"},
85
- {"$ref": "#/definitions/disappear"},
77
+ {"$ref": "#/definitions/tester_instruction"},
78
+ {"$ref": "#/definitions/embedded_test"},
79
+ {"$ref": "#/definitions/observe"},
86
80
  {"$ref": "#/definitions/loaded"},
87
- {"$ref": "#/definitions/plain_language_assertion"}
81
+ {"$ref": "#/definitions/tester_confirmation"}
88
82
  ]
89
83
  },
90
84
  "click": {
91
85
  "type": "object",
86
+ "action_type": "action",
92
87
  "title": "Click",
93
88
  "description": "Clicks on the UI element",
94
89
  "properties": {
95
90
  "action": {
96
91
  "enum": ["click"]
97
92
  },
98
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
93
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
94
+ "id": {"title": "Action ID", "type": "integer"},
95
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
99
96
  "target": {
100
97
  "title": "Target",
101
- "$ref": "#/definitions/noun"
98
+ "$ref": "#/definitions/noun",
99
+ "type": "ui_element_reference"
102
100
  },
103
- "button": {"title": "Mouse Button", "type": "string", "enum": ["left", "middle", "right"]}
101
+ "button": {"title": "Mouse Button", "type": "string", "enum": ["left", "middle", "right"]},
102
+ "hold": {"title": "And Hold", "type": "boolean"},
103
+ "hold_seconds": {"title": "Hold seconds", "type": "integer"}
104
104
  },
105
105
  "additionalProperties": false,
106
- "required": ["action", "target"]
106
+ "required": ["action", "target", "button", "hold"]
107
107
  },
108
108
  "double_click": {
109
109
  "type": "object",
110
+ "action_type": "action",
110
111
  "title": "Double Click",
111
112
  "description": "Double-clicks on the UI element",
112
113
  "properties": {
113
114
  "action": {
114
115
  "enum": ["double_click"]
115
116
  },
116
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
117
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
118
+ "id": {"title": "Action ID", "type": "integer"},
119
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
117
120
  "target": {
118
121
  "title": "Target",
119
- "$ref": "#/definitions/noun"
122
+ "$ref": "#/definitions/noun",
123
+ "type": "ui_element_reference"
120
124
  }
121
125
  },
122
126
  "additionalProperties": false,
@@ -124,47 +128,55 @@
124
128
  },
125
129
  "fill": {
126
130
  "type": "object",
131
+ "action_type": "action",
127
132
  "title": "Fill",
128
133
  "description": "Fills the text field with specified content",
129
134
  "properties": {
130
135
  "action": {
131
136
  "enum": ["fill"]
132
137
  },
133
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
138
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
139
+ "id": {"title": "Action ID", "type": "integer"},
140
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
134
141
  "target": {
135
142
  "title": "Target",
136
- "$ref": "#/definitions/noun"
143
+ "$ref": "#/definitions/noun",
144
+ "type": "ui_element_reference"
137
145
  },
138
- "text": {"title": "Text", "type": "string"},
139
- "method": { "title": "Text entry method", "type": "string", "enum": ["pasting", "typing"] }
146
+ "text": {"title": "Text", "type": "string"}
140
147
  },
141
148
  "additionalProperties": false,
142
149
  "required": ["action", "target", "text"]
143
150
  },
144
151
  "type": {
145
152
  "type": "object",
153
+ "action_type": "action",
146
154
  "title": "Type",
147
155
  "description": "Types in specified text",
148
156
  "properties": {
149
157
  "action": {
150
158
  "enum": ["type"]
151
159
  },
152
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
153
- "text": {"title": "Text", "type": "string"},
154
- "method": { "title": "Text entry method", "type": "string", "enum": ["pasting", "typing"] }
160
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
161
+ "id": {"title": "Action ID", "type": "integer"},
162
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
163
+ "text": {"title": "Text", "type": "string"}
155
164
  },
156
165
  "additionalProperties": false,
157
166
  "required": ["action", "text"]
158
167
  },
159
168
  "send_key": {
160
169
  "type": "object",
170
+ "action_type": "action",
161
171
  "title": "Press Key",
162
172
  "description": "Press specified key or key combination.",
163
173
  "properties": {
164
174
  "action": {
165
175
  "enum": ["send_key"]
166
176
  },
167
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
177
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
178
+ "id": {"title": "Action ID", "type": "integer"},
179
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
168
180
  "key": {"title": "Key", "type": "string"},
169
181
  "modifier": {"title": "Modifier", "type": "string"}
170
182
  },
@@ -173,33 +185,41 @@
173
185
  },
174
186
  "hover": {
175
187
  "type": "object",
188
+ "action_type": "action",
176
189
  "title": "Hover",
177
190
  "description": "Hovers over specified element",
178
191
  "properties": {
179
192
  "action": {
180
193
  "enum": ["hover"]
181
194
  },
182
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
195
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
196
+ "id": {"title": "Action ID", "type": "integer"},
197
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
183
198
  "target": {
184
199
  "title": "Target",
185
- "$ref": "#/definitions/noun"
200
+ "$ref": "#/definitions/noun",
201
+ "type": "ui_element_reference"
186
202
  }
187
203
  },
188
204
  "additionalProperties": false,
189
205
  "required": ["action", "target"]
190
206
  },
191
- "dropdown_select": {
207
+ "select": {
192
208
  "type": "object",
193
- "title": "Dropdown Select",
209
+ "action_type": "action",
210
+ "title": "Select",
194
211
  "description": "Selects specified item from the dropdown",
195
212
  "properties": {
196
213
  "action": {
197
- "enum": ["dropdown_select"]
214
+ "enum": ["select"]
198
215
  },
199
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
216
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
217
+ "id": {"title": "Action ID", "type": "integer"},
218
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
200
219
  "target": {
201
220
  "title": "Target",
202
- "$ref": "#/definitions/noun"
221
+ "$ref": "#/definitions/noun",
222
+ "type": "ui_element_reference"
203
223
  },
204
224
  "option": {
205
225
  "title": "Option",
@@ -209,135 +229,90 @@
209
229
  "additionalProperties": false,
210
230
  "required": ["action", "target", "option"]
211
231
  },
212
- "checkbox_check": {
213
- "type": "object",
214
- "title": "Checkbox Check",
215
- "description": "Checks specified checkbox",
216
- "properties": {
217
- "action": {
218
- "enum": ["checkbox_check"]
219
- },
220
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
221
- "target": {
222
- "title": "Target",
223
- "$ref": "#/definitions/noun"
224
- }
225
- },
226
- "additionalProperties": false,
227
- "required": ["action", "target"]
228
- },
229
- "checkbox_uncheck": {
230
- "type": "object",
231
- "title": "Checkbox Uncheck",
232
- "description": "Unchecks specified checkbox",
233
- "properties": {
234
- "action": {
235
- "enum": ["checkbox_uncheck"]
236
- },
237
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
238
- "target": {
239
- "title": "Target",
240
- "$ref": "#/definitions/noun"
241
- }
242
- },
243
- "additionalProperties": false,
244
- "required": ["action", "target"]
245
- },
246
232
  "refresh": {
247
233
  "type": "object",
234
+ "action_type": "action",
248
235
  "title": "Refresh",
249
236
  "description": "Refreshes the webpage",
250
237
  "properties": {
251
238
  "action": {
252
239
  "enum": ["refresh"]
253
240
  },
254
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"}
241
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
242
+ "id": {"title": "Action ID", "type": "integer"},
243
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"}
255
244
  },
256
245
  "additionalProperties": false,
257
246
  "required": ["action"]
258
247
  },
259
248
  "navigate": {
260
249
  "type": "object",
250
+ "action_type": "action",
261
251
  "title": "Navigate",
262
252
  "description": "Navigates to specified URL",
263
253
  "properties": {
264
254
  "action": {
265
255
  "enum": ["navigate"]
266
256
  },
267
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
268
- "url": {"title": "URL", "type": "string"}
269
- },
270
- "additionalProperties": false,
271
- "required": ["action", "url"]
272
- },
273
- "navigate_new_tab": {
274
- "type": "object",
275
- "title": "Navigate - New Tab",
276
- "description": "Navigates to specified URL in a new tab",
277
- "properties": {
278
- "action": {
279
- "enum": ["navigate_new_tab"]
280
- },
281
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
282
- "url": {"title": "URL", "type": "string"}
283
- },
284
- "additionalProperties": false,
285
- "required": ["action", "url"]
286
- },
287
- "navigate_incognito_tab": {
288
- "type": "object",
289
- "title": "Navigate - Incognito Tab",
290
- "description": "Navigates to specified URL in a new incognito tab",
291
- "properties": {
292
- "action": {
293
- "enum": ["navigate_incognito_tab"]
294
- },
295
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
296
- "url": {"title": "URL", "type": "string"}
257
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
258
+ "id": {"title": "Action ID", "type": "integer"},
259
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
260
+ "url": {"title": "URL", "type": "string"},
261
+ "tab": {"title": "Tab", "type": "string", "enum": ["current", "new", "incognito"]}
297
262
  },
298
263
  "additionalProperties": false,
299
- "required": ["action", "url"]
264
+ "required": ["action", "url", "tab"]
300
265
  },
301
266
  "close_tab": {
302
267
  "type": "object",
268
+ "action_type": "action",
303
269
  "title": "Close Tab",
304
270
  "description": "Closes current browser tab",
305
271
  "properties": {
306
272
  "action": {
307
273
  "enum": ["close_tab"]
308
274
  },
309
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"}
275
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
276
+ "id": {"title": "Action ID", "type": "integer"},
277
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"}
310
278
  },
311
279
  "additionalProperties": false,
312
280
  "required": ["action"]
313
281
  },
314
282
  "scroll": {
315
283
  "type": "object",
284
+ "action_type": "action",
316
285
  "title": "Scroll",
317
286
  "description": "Scrolls the page into specified direction until target is reached",
318
287
  "properties": {
319
288
  "action": {
320
289
  "enum": ["scroll"]
321
290
  },
322
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
291
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
292
+ "id": {"title": "Action ID", "type": "integer"},
293
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
323
294
  "direction": {"title": "Direction", "type": "string", "enum": ["up", "down", "left", "right"]},
324
295
  "target": {
325
296
  "title": "Target",
326
- "$ref": "#/definitions/noun"
297
+ "$ref": "#/definitions/noun",
298
+ "type": "ui_element_reference"
327
299
  }
328
300
  },
329
301
  "additionalProperties": false,
330
302
  "required": ["action", "direction", "target"]
331
303
  },
332
- "sleep": {
304
+ "wait": {
333
305
  "type": "object",
334
- "title": "Sleep",
306
+ "action_type": "action",
307
+ "title": "Wait",
335
308
  "description": "Waits for a number of seconds",
336
309
  "properties": {
337
310
  "action": {
338
- "enum": ["sleep"]
311
+ "enum": ["wait"]
339
312
  },
340
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
313
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
314
+ "id": {"title": "Action ID", "type": "integer"},
315
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
341
316
  "seconds": {"title": "seconds", "type": "integer"}
342
317
  },
343
318
  "additionalProperties": false,
@@ -345,50 +320,37 @@
345
320
  },
346
321
  "drag_and_drop": {
347
322
  "type": "object",
323
+ "action_type": "action",
348
324
  "title": "Drag and drop",
349
325
  "description": "Drag and drop",
350
326
  "properties": {
351
327
  "action": {
352
328
  "enum": ["drag_and_drop"]
353
329
  },
354
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
330
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
331
+ "id": {"title": "Action ID", "type": "integer"},
332
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
355
333
  "object": {
356
334
  "title": "Object",
357
335
  "$ref": "#/definitions/noun"
358
336
  },
359
337
  "target": {
360
338
  "title": "Target",
361
- "$ref": "#/definitions/noun"
339
+ "$ref": "#/definitions/noun",
340
+ "type": "ui_element_reference"
362
341
  }
363
342
  },
364
343
  "additionalProperties": false,
365
344
  "required": ["action", "target", "object"]
366
345
  },
367
- "click_and_hold": {
346
+ "embedded_test": {
368
347
  "type": "object",
369
- "title": "Click and Hold",
370
- "description": "Clicks and holds the left mouse button over object for a number of seconds",
348
+ "action_type": "embedded_test",
349
+ "title": "Embedded Test",
350
+ "description": "Embeds a Test",
371
351
  "properties": {
372
352
  "action": {
373
- "enum": ["click_and_hold"]
374
- },
375
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
376
- "target": {
377
- "title": "Target",
378
- "$ref": "#/definitions/noun"
379
- },
380
- "seconds": {"title": "Seconds", "type": "integer"}
381
- },
382
- "additionalProperties": false,
383
- "required": ["action", "target", "seconds"]
384
- },
385
- "custom_action": {
386
- "type": "object",
387
- "title": "Custom Action",
388
- "description": "Reusable custom action",
389
- "properties": {
390
- "action": {
391
- "enum": ["custom_action"]
353
+ "enum": ["embedded_test"]
392
354
  },
393
355
  "test_id": {
394
356
  "title": "Test ID",
@@ -398,81 +360,81 @@
398
360
  "additionalProperties": false,
399
361
  "required": ["action", "test_id"]
400
362
  },
401
- "plain_language": {
363
+ "tester_instruction": {
402
364
  "type": "object",
403
- "title": "Plain Language",
404
- "description": "Allows to fallback to english",
365
+ "action_type": "action",
366
+ "title": "Tester Instruction",
367
+ "description": "An action for a human to complete",
405
368
  "properties": {
406
369
  "action": {
407
- "enum": ["plain_language"]
370
+ "enum": ["tester_instruction"]
408
371
  },
409
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
372
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
373
+ "id": {"title": "Action ID", "type": "integer"},
374
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
410
375
  "instruction": {"title": "Instruction", "type": "string"}
411
376
  },
412
377
  "additionalProperties": false,
413
378
  "required": ["action", "instruction"]
414
379
  },
415
- "see": {
380
+ "observe": {
416
381
  "type": "object",
417
- "title": "See",
418
- "description": "Checks if element of the UI is visible",
382
+ "action_type": "assertion",
383
+ "title": "Observe",
384
+ "description": "Checks if element of the UI is visible or not",
419
385
  "properties": {
420
- "assertion": {
421
- "enum": ["see"]
386
+ "action": {
387
+ "enum": ["observe"]
422
388
  },
423
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
389
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
390
+ "id": {"title": "Action ID", "type": "integer"},
391
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
424
392
  "object": {
425
393
  "title": "Object",
426
394
  "$ref": "#/definitions/noun"
427
- }
428
- },
429
- "additionalProperties": false,
430
- "required": ["assertion", "object"]
431
- },
432
- "disappear": {
433
- "type": "object",
434
- "title": "Disappear",
435
- "description": "Checks if element of the UI is no longer visible",
436
- "properties": {
437
- "assertion": {
438
- "enum": ["disappear"]
439
395
  },
440
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
441
- "object": {
442
- "title": "Object",
443
- "$ref": "#/definitions/noun"
396
+ "visibility": {
397
+ "title": "Is the element visible?",
398
+ "type": "boolean",
399
+ "enum": [true, false]
444
400
  }
445
401
  },
446
402
  "additionalProperties": false,
447
- "required": ["assertion", "object"]
403
+ "required": ["action", "object", "visibility"]
448
404
  },
449
405
  "loaded": {
450
406
  "type": "object",
407
+ "action_type": "assertion",
451
408
  "title": "Loaded",
452
409
  "description": "Checks if specified page has loaded",
453
410
  "properties": {
454
- "assertion": {
411
+ "action": {
455
412
  "enum": ["loaded"]
456
413
  },
457
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
414
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
415
+ "id": {"title": "Action ID", "type": "integer"},
416
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
458
417
  "page": {"title": "Page", "type": "string"}
459
418
  },
460
419
  "additionalProperties": false,
461
- "required": ["assertion", "page"]
420
+ "required": ["action", "page"]
462
421
  },
463
- "plain_language_assertion": {
422
+ "tester_confirmation": {
464
423
  "type": "object",
465
- "title": "Plain Language Assertion",
466
- "description": "Allows to fallback to english",
424
+ "action_type": "assertion",
425
+ "title": "Tester Confirmation",
426
+ "description": "Ask a question to confirm a behavior",
467
427
  "properties": {
468
- "assertion": {
469
- "enum": ["plain_language_assertion"]
428
+ "action": {
429
+ "enum": ["tester_confirmation"]
470
430
  },
471
- "custom_action_id": {"title": "Custom Action ID", "type": "integer"},
472
- "instruction": {"title": "Instruction", "type": "string"}
431
+ "embedded_test_id": {"title": "Embedded Test ID", "type": "integer"},
432
+ "id": {"title": "Action ID", "type": "integer"},
433
+ "delay_after": {"title": "Delay after in seconds", "type": "integer"},
434
+ "confirmation": {"title": "confirmation", "type": "string"}
473
435
  },
474
436
  "additionalProperties": false,
475
- "required": ["assertion", "instruction"]
437
+ "required": ["action", "confirmation"]
476
438
  }
477
439
  },
478
440
  "type": "object",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wisp-schema
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Grodowski
@@ -51,6 +51,24 @@ files:
51
51
  - lib/version.rb
52
52
  - lib/wisp-schema.rb
53
53
  - nouns.json
54
+ - stable/actions/click.json
55
+ - stable/actions/close_tab.json
56
+ - stable/actions/double_click.json
57
+ - stable/actions/drag_and_drop.json
58
+ - stable/actions/fill.json
59
+ - stable/actions/hover.json
60
+ - stable/actions/loaded.json
61
+ - stable/actions/navigate.json
62
+ - stable/actions/observe.json
63
+ - stable/actions/refresh.json
64
+ - stable/actions/scroll.json
65
+ - stable/actions/select.json
66
+ - stable/actions/send_key.json
67
+ - stable/actions/tester_confirmation.json
68
+ - stable/actions/tester_instruction.json
69
+ - stable/actions/type.json
70
+ - stable/actions/ui_element_reference.json
71
+ - stable/actions/wait.json
54
72
  - wisp.json
55
73
  homepage: https://github.com/rainforestapp/wisp
56
74
  licenses: