@vardot/varbase-e2e 2.0.1 → 2.0.2
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/.playwright-mcp/console-2026-08-10T08-51-59-747Z.log +5 -0
- package/.playwright-mcp/console-2026-08-10T09-00-26-735Z.log +7 -0
- package/.playwright-mcp/page-2026-08-10T01-04-54-039Z.yml +410 -0
- package/.playwright-mcp/page-2026-08-10T01-05-06-967Z.png +0 -0
- package/.playwright-mcp/page-2026-08-10T01-05-52-136Z.yml +720 -0
- package/.playwright-mcp/page-2026-08-10T01-06-05-985Z.yml +410 -0
- package/.playwright-mcp/page-2026-08-10T01-06-25-942Z.yml +726 -0
- package/.playwright-mcp/page-2026-08-10T01-25-57-152Z.yml +395 -0
- package/.playwright-mcp/page-2026-08-10T01-26-48-853Z.yml +395 -0
- package/.playwright-mcp/page-2026-08-10T01-27-47-127Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-27-57-349Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-28-07-943Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-28-30-462Z.yml +369 -0
- package/.playwright-mcp/page-2026-08-10T01-29-00-369Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-29-08-988Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-29-19-888Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-29-30-189Z.yml +369 -0
- package/.playwright-mcp/page-2026-08-10T01-30-08-272Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-30-16-955Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-30-27-612Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-30-37-943Z.yml +465 -0
- package/.playwright-mcp/page-2026-08-10T01-31-15-265Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-31-24-328Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-31-36-622Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-31-45-965Z.yml +470 -0
- package/.playwright-mcp/page-2026-08-10T01-32-13-400Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-32-23-469Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-32-33-859Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-32-43-461Z.yml +513 -0
- package/.playwright-mcp/page-2026-08-10T01-33-13-160Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-33-23-937Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-33-35-367Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-33-47-266Z.yml +459 -0
- package/.playwright-mcp/page-2026-08-10T01-34-14-452Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-34-26-042Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-34-40-869Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-34-49-587Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-10T01-35-16-735Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-35-24-882Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-35-36-165Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-35-45-644Z.yml +455 -0
- package/.playwright-mcp/page-2026-08-10T01-36-18-148Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-36-26-751Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-36-37-834Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-36-48-078Z.yml +370 -0
- package/.playwright-mcp/page-2026-08-10T01-37-16-309Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-37-28-723Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-37-39-325Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-37-48-278Z.yml +409 -0
- package/.playwright-mcp/page-2026-08-10T01-38-27-405Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-38-36-994Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-38-49-584Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-38-59-289Z.yml +396 -0
- package/.playwright-mcp/page-2026-08-10T01-39-24-880Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-39-35-551Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-39-47-960Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-39-56-844Z.yml +549 -0
- package/.playwright-mcp/page-2026-08-10T01-40-24-645Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-40-33-806Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-40-46-946Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-40-56-503Z.yml +443 -0
- package/.playwright-mcp/page-2026-08-10T01-41-32-064Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-41-40-666Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-41-51-325Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-41-58-790Z.yml +368 -0
- package/.playwright-mcp/page-2026-08-10T01-42-26-459Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-42-38-306Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-42-49-073Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-42-57-453Z.yml +443 -0
- package/.playwright-mcp/page-2026-08-10T01-43-32-099Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-43-42-882Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-43-54-853Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-44-04-373Z.yml +399 -0
- package/.playwright-mcp/page-2026-08-10T01-44-30-874Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-44-39-830Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-44-51-515Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-44-59-974Z.yml +503 -0
- package/.playwright-mcp/page-2026-08-10T01-45-26-748Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-45-36-685Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-45-47-715Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-45-57-895Z.yml +469 -0
- package/.playwright-mcp/page-2026-08-10T01-46-36-371Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-46-49-906Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-47-01-554Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-47-12-712Z.yml +581 -0
- package/.playwright-mcp/page-2026-08-10T01-47-39-024Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-47-49-714Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-48-00-608Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-48-09-739Z.yml +604 -0
- package/.playwright-mcp/page-2026-08-10T01-48-51-940Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-49-01-562Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-49-13-751Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-49-22-503Z.yml +400 -0
- package/.playwright-mcp/page-2026-08-10T01-49-49-311Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-50-00-769Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-50-12-083Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-50-23-765Z.yml +458 -0
- package/.playwright-mcp/page-2026-08-10T01-51-02-339Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-51-12-711Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-51-25-370Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-51-33-936Z.yml +368 -0
- package/.playwright-mcp/page-2026-08-10T01-52-09-467Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-52-21-616Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-52-32-806Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-52-42-382Z.yml +407 -0
- package/.playwright-mcp/page-2026-08-10T01-53-11-994Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-53-21-669Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-53-33-141Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-53-43-582Z.yml +443 -0
- package/.playwright-mcp/page-2026-08-10T01-54-19-884Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-54-32-359Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-54-43-530Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-54-53-891Z.yml +474 -0
- package/.playwright-mcp/page-2026-08-10T01-55-24-634Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-55-35-283Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-55-46-649Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-55-56-585Z.yml +431 -0
- package/.playwright-mcp/page-2026-08-10T01-56-31-670Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-56-40-782Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-56-52-065Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-57-03-705Z.yml +445 -0
- package/.playwright-mcp/page-2026-08-10T01-57-31-390Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-57-44-756Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-57-56-802Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-58-06-937Z.yml +468 -0
- package/.playwright-mcp/page-2026-08-10T01-58-40-595Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-58-51-715Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T01-59-04-402Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T01-59-15-638Z.yml +472 -0
- package/.playwright-mcp/page-2026-08-10T01-59-58-162Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T02-00-09-962Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T02-00-21-468Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T02-00-33-248Z.yml +451 -0
- package/.playwright-mcp/page-2026-08-10T02-01-15-418Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T02-01-27-182Z.yml +413 -0
- package/.playwright-mcp/page-2026-08-10T02-01-38-250Z.yml +425 -0
- package/.playwright-mcp/page-2026-08-10T04-20-27-979Z.yml +513 -0
- package/.playwright-mcp/page-2026-08-10T04-20-41-431Z.yml +513 -0
- package/.playwright-mcp/page-2026-08-10T04-21-46-133Z.yml +406 -0
- package/.playwright-mcp/page-2026-08-10T04-22-10-938Z.yml +406 -0
- package/.playwright-mcp/page-2026-08-10T04-23-00-626Z.yml +406 -0
- package/.playwright-mcp/page-2026-08-10T04-23-19-844Z.yml +418 -0
- package/.playwright-mcp/page-2026-08-10T04-25-00-732Z.yml +455 -0
- package/.playwright-mcp/page-2026-08-10T04-25-35-125Z.yml +412 -0
- package/.playwright-mcp/page-2026-08-10T04-25-46-640Z.yml +412 -0
- package/.playwright-mcp/page-2026-08-10T04-25-55-092Z.yml +549 -0
- package/.playwright-mcp/page-2026-08-10T04-26-26-403Z.yml +406 -0
- package/.playwright-mcp/page-2026-08-10T04-26-40-673Z.yml +406 -0
- package/.playwright-mcp/page-2026-08-10T04-26-48-427Z.yml +604 -0
- package/.playwright-mcp/page-2026-08-10T04-27-23-584Z.yml +408 -0
- package/.playwright-mcp/page-2026-08-10T04-27-34-294Z.yml +408 -0
- package/.playwright-mcp/page-2026-08-10T04-27-42-299Z.yml +443 -0
- package/.playwright-mcp/page-2026-08-10T04-28-20-032Z.yml +406 -0
- package/.playwright-mcp/page-2026-08-10T04-28-32-275Z.yml +406 -0
- package/.playwright-mcp/page-2026-08-10T04-28-41-592Z.yml +581 -0
- package/.playwright-mcp/page-2026-08-10T04-29-19-972Z.yml +414 -0
- package/.playwright-mcp/page-2026-08-10T04-29-30-961Z.yml +414 -0
- package/.playwright-mcp/page-2026-08-10T04-29-39-044Z.yml +465 -0
- package/.playwright-mcp/page-2026-08-10T04-30-13-196Z.yml +402 -0
- package/.playwright-mcp/page-2026-08-10T04-30-24-867Z.yml +402 -0
- package/.playwright-mcp/page-2026-08-10T04-30-32-372Z.yml +409 -0
- package/.playwright-mcp/page-2026-08-10T04-31-06-199Z.yml +402 -0
- package/.playwright-mcp/page-2026-08-10T04-31-17-733Z.yml +402 -0
- package/.playwright-mcp/page-2026-08-10T04-31-26-296Z.yml +445 -0
- package/.playwright-mcp/page-2026-08-10T04-32-02-456Z.yml +402 -0
- package/.playwright-mcp/page-2026-08-10T04-32-14-091Z.yml +402 -0
- package/.playwright-mcp/page-2026-08-10T04-32-23-437Z.yml +396 -0
- package/.playwright-mcp/page-2026-08-10T04-32-58-401Z.yml +403 -0
- package/.playwright-mcp/page-2026-08-10T04-33-09-818Z.yml +403 -0
- package/.playwright-mcp/page-2026-08-10T04-33-20-858Z.yml +468 -0
- package/.playwright-mcp/page-2026-08-10T04-33-53-074Z.yml +407 -0
- package/.playwright-mcp/page-2026-08-10T04-34-05-806Z.yml +407 -0
- package/.playwright-mcp/page-2026-08-10T08-52-00-165Z.yml +0 -0
- package/.playwright-mcp/page-2026-08-10T08-52-17-430Z.yml +410 -0
- package/package.json +1 -1
- package/tests/step-definitions/action.steps.js +12 -5
- package/tests/step-definitions/drupal-layout-builder.steps.js +36 -2
- package/tests/step-definitions/drupal-media.steps.js +23 -6
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
- generic [active] [ref=f99e1]:
|
|
2
|
+
- generic:
|
|
3
|
+
- link "Skip to main content" [ref=f99e2] [cursor=pointer]:
|
|
4
|
+
- /url: "#content"
|
|
5
|
+
- link "Skip to search" [ref=f99e3] [cursor=pointer]:
|
|
6
|
+
- /url: "#search-block-form"
|
|
7
|
+
- navigation [ref=f99e5]:
|
|
8
|
+
- generic [ref=f99e6]:
|
|
9
|
+
- generic [ref=f99e7]:
|
|
10
|
+
- generic:
|
|
11
|
+
- generic:
|
|
12
|
+
- generic:
|
|
13
|
+
- list:
|
|
14
|
+
- listitem [ref=f99e8]:
|
|
15
|
+
- link "Drupal.org home" [ref=f99e9] [cursor=pointer]:
|
|
16
|
+
- /url: /home
|
|
17
|
+
- listitem [ref=f99e10]:
|
|
18
|
+
- link "Discover Drupal" [ref=f99e11] [cursor=pointer]:
|
|
19
|
+
- /url: https://www.drupal.org/about/overview/technical
|
|
20
|
+
- listitem [ref=f99e12]:
|
|
21
|
+
- link "Build with Drupal" [ref=f99e13] [cursor=pointer]:
|
|
22
|
+
- /url: https://www.drupal.org/docs/official_docs/local-development-guide
|
|
23
|
+
- listitem [ref=f99e14]:
|
|
24
|
+
- link "Partners & Services" [ref=f99e15] [cursor=pointer]:
|
|
25
|
+
- /url: https://www.drupal.org/drupal-services
|
|
26
|
+
- listitem [ref=f99e16]:
|
|
27
|
+
- link "Community" [ref=f99e17] [cursor=pointer]:
|
|
28
|
+
- /url: https://www.drupal.org/community
|
|
29
|
+
- listitem [ref=f99e18]:
|
|
30
|
+
- link "Support Drupal" [ref=f99e19] [cursor=pointer]:
|
|
31
|
+
- /url: /association
|
|
32
|
+
- listitem [ref=f99e20]:
|
|
33
|
+
- link "Get Started" [ref=f99e21] [cursor=pointer]:
|
|
34
|
+
- /url: /try-hosting
|
|
35
|
+
- generic [ref=f99e27]:
|
|
36
|
+
- heading "Search form" [level=2] [ref=f99e28]
|
|
37
|
+
- generic: Search
|
|
38
|
+
- button "Search" [ref=f99e31] [cursor=pointer]
|
|
39
|
+
- generic [ref=f99e32]:
|
|
40
|
+
- generic:
|
|
41
|
+
- generic:
|
|
42
|
+
- generic:
|
|
43
|
+
- list:
|
|
44
|
+
- listitem:
|
|
45
|
+
- link [ref=f99e33] [cursor=pointer]:
|
|
46
|
+
- /url: "#block-system-user-menu"
|
|
47
|
+
- img "Log in, view profile, and more" [ref=f99e34]
|
|
48
|
+
- link [ref=f99e39] [cursor=pointer]:
|
|
49
|
+
- /url: /
|
|
50
|
+
- img "Drupal.org" [ref=f99e40]
|
|
51
|
+
- generic [ref=f99e42]:
|
|
52
|
+
- generic [ref=f99e43]:
|
|
53
|
+
- navigation [ref=f99e45]:
|
|
54
|
+
- link "General projects" [ref=f99e47] [cursor=pointer]:
|
|
55
|
+
- /url: /project/project_general
|
|
56
|
+
- link "Varbase Project Template" [ref=f99e49] [cursor=pointer]:
|
|
57
|
+
- /url: /project/varbase_project
|
|
58
|
+
- link "Issues" [ref=f99e51] [cursor=pointer]:
|
|
59
|
+
- /url: /project/issues/varbase_project
|
|
60
|
+
- 'link "task: Switch the Varbase functional testing suite to Varbase E2E on 9.2.x" [ref=f99e53] [cursor=pointer]':
|
|
61
|
+
- /url: /project/varbase_project/issues/3615713
|
|
62
|
+
- heading [level=1] [ref=f99e54]:
|
|
63
|
+
- text: Edit
|
|
64
|
+
- emphasis [ref=f99e55]: "task: Switch the Varbase functional testing suite to Varbase E2E on 9.2.x"
|
|
65
|
+
- generic [ref=f99e56]:
|
|
66
|
+
- heading "Primary tabs" [level=2] [ref=f99e57]
|
|
67
|
+
- list [ref=f99e58]:
|
|
68
|
+
- listitem [ref=f99e59]:
|
|
69
|
+
- link "View" [ref=f99e60] [cursor=pointer]:
|
|
70
|
+
- /url: /project/varbase_project/issues/3615713
|
|
71
|
+
- listitem [ref=f99e61]:
|
|
72
|
+
- link "Edit (active tab)" [ref=f99e62] [cursor=pointer]:
|
|
73
|
+
- /url: /node/3615713/edit
|
|
74
|
+
- text: Edit
|
|
75
|
+
- generic [ref=f99e63]: (active tab)
|
|
76
|
+
- main [ref=f99e64]:
|
|
77
|
+
- generic [ref=f99e65]:
|
|
78
|
+
- generic [ref=f99e67]:
|
|
79
|
+
- text: "?"
|
|
80
|
+
- paragraph [ref=f99e70]:
|
|
81
|
+
- text: Learn
|
|
82
|
+
- link "how to report an issue" [ref=f99e71] [cursor=pointer]:
|
|
83
|
+
- /url: /community/contributor-guide/reference-information/quick-info/creating-or-updating-an-issue-report
|
|
84
|
+
- text: .
|
|
85
|
+
- generic [ref=f99e79]:
|
|
86
|
+
- group [ref=f99e80]:
|
|
87
|
+
- link "Hide Issue metadata" [ref=f99e83] [cursor=pointer]:
|
|
88
|
+
- /url: "#"
|
|
89
|
+
- generic [ref=f99e84]: Hide
|
|
90
|
+
- text: Issue metadata
|
|
91
|
+
- generic [ref=f99e85]:
|
|
92
|
+
- generic [ref=f99e86]:
|
|
93
|
+
- generic [ref=f99e87]: Title *
|
|
94
|
+
- textbox "Title *" [ref=f99e88]: "task: Switch the Varbase functional testing suite to Varbase E2E on 9.2.x"
|
|
95
|
+
- generic [ref=f99e89]:
|
|
96
|
+
- application [ref=f99e92]:
|
|
97
|
+
- generic [ref=f99e93]: Project *
|
|
98
|
+
- textbox "Project *" [ref=f99e94]: Varbase Project Template (3401545)
|
|
99
|
+
- generic [ref=f99e97]:
|
|
100
|
+
- generic [ref=f99e98]: Version *
|
|
101
|
+
- combobox "Version *" [ref=f99e99]:
|
|
102
|
+
- option "11.0.x-dev"
|
|
103
|
+
- option "11.0.5"
|
|
104
|
+
- option "11.0.4"
|
|
105
|
+
- option "11.0.3"
|
|
106
|
+
- option "11.0.2"
|
|
107
|
+
- option "11.0.1"
|
|
108
|
+
- option "11.0.0"
|
|
109
|
+
- option "11.0.0-alpha1"
|
|
110
|
+
- option "10.1.x-dev"
|
|
111
|
+
- option "10.1.3"
|
|
112
|
+
- option "10.1.2"
|
|
113
|
+
- option "10.1.1"
|
|
114
|
+
- option "9.2.x-dev" [selected]
|
|
115
|
+
- option "9.2.1"
|
|
116
|
+
- option "9.2.0"
|
|
117
|
+
- generic [ref=f99e101]:
|
|
118
|
+
- generic [ref=f99e102]: Component *
|
|
119
|
+
- combobox "Component *" [ref=f99e103]:
|
|
120
|
+
- option "Code" [selected]
|
|
121
|
+
- option "Documentation"
|
|
122
|
+
- option "Miscellaneous"
|
|
123
|
+
- option "User interface"
|
|
124
|
+
- generic [ref=f99e105]:
|
|
125
|
+
- generic [ref=f99e106]: Assigned *
|
|
126
|
+
- combobox "Assigned *" [ref=f99e107]:
|
|
127
|
+
- option "Unassigned" [selected]
|
|
128
|
+
- option "josebc"
|
|
129
|
+
- option "mohammed j. razem"
|
|
130
|
+
- option "omar alahmed"
|
|
131
|
+
- option "rajab natshah"
|
|
132
|
+
- generic [ref=f99e108]:
|
|
133
|
+
- generic [ref=f99e110]:
|
|
134
|
+
- generic [ref=f99e111]: Category *
|
|
135
|
+
- combobox "Category *" [ref=f99e112]:
|
|
136
|
+
- option "Bug report"
|
|
137
|
+
- option "Task" [selected]
|
|
138
|
+
- option "Feature request"
|
|
139
|
+
- option "Support request"
|
|
140
|
+
- option "Plan"
|
|
141
|
+
- generic [ref=f99e114]:
|
|
142
|
+
- generic [ref=f99e115]: Priority *
|
|
143
|
+
- combobox "Priority *" [ref=f99e116]:
|
|
144
|
+
- option "Critical"
|
|
145
|
+
- option "Major"
|
|
146
|
+
- option "Normal" [selected]
|
|
147
|
+
- option "Minor"
|
|
148
|
+
- generic [ref=f99e118]:
|
|
149
|
+
- generic [ref=f99e119]: Status *
|
|
150
|
+
- combobox "Status *" [ref=f99e120]:
|
|
151
|
+
- option "Active" [selected]
|
|
152
|
+
- option "Needs work"
|
|
153
|
+
- option "Needs review"
|
|
154
|
+
- option "Reviewed & tested by the community"
|
|
155
|
+
- option "Patch (to be ported)"
|
|
156
|
+
- option "Fixed"
|
|
157
|
+
- option "Postponed"
|
|
158
|
+
- option "Postponed (maintainer needs more info)"
|
|
159
|
+
- option "Closed (duplicate)"
|
|
160
|
+
- option "Closed (won't fix)"
|
|
161
|
+
- option "Closed (works as designed)"
|
|
162
|
+
- option "Closed (cannot reproduce)"
|
|
163
|
+
- option "Closed (outdated)"
|
|
164
|
+
- generic [ref=f99e121]:
|
|
165
|
+
- text: Descriptions of the
|
|
166
|
+
- link "Priority" [ref=f99e122] [cursor=pointer]:
|
|
167
|
+
- /url: /docs/develop/issues/fields-and-other-parts-of-an-issue/issue-priority-field
|
|
168
|
+
- text: and
|
|
169
|
+
- link "Status" [ref=f99e123] [cursor=pointer]:
|
|
170
|
+
- /url: /docs/develop/issues/fields-and-other-parts-of-an-issue/issue-status-field
|
|
171
|
+
- text: values can be found in the
|
|
172
|
+
- link "Drupal project issues" [ref=f99e124] [cursor=pointer]:
|
|
173
|
+
- /url: /docs/develop/issues
|
|
174
|
+
- text: documentation.
|
|
175
|
+
- application [ref=f99e127]:
|
|
176
|
+
- generic [ref=f99e128]: Issue tags
|
|
177
|
+
- textbox "Issue tags" [ref=f99e129]
|
|
178
|
+
- generic [ref=f99e130]:
|
|
179
|
+
- text: Before adding tags
|
|
180
|
+
- link "read the issue tag guidelines" [ref=f99e131] [cursor=pointer]:
|
|
181
|
+
- /url: /node/3156530
|
|
182
|
+
- text: . Do
|
|
183
|
+
- strong [ref=f99e132]: NOT
|
|
184
|
+
- text: use tags for adding random keywords or duplicating any other fields. Separate terms with a comma, not a space.
|
|
185
|
+
- generic [ref=f99e137]:
|
|
186
|
+
- generic [ref=f99e138]:
|
|
187
|
+
- generic [ref=f99e139]: Comment
|
|
188
|
+
- generic [ref=f99e140]:
|
|
189
|
+
- toolbar [ref=f99e141]:
|
|
190
|
+
- button "Bold(B)" [ref=f99e142] [cursor=pointer]
|
|
191
|
+
- button "Italic(I)" [ref=f99e143] [cursor=pointer]
|
|
192
|
+
- button "Strike-through" [ref=f99e144] [cursor=pointer]
|
|
193
|
+
- button "Heading 2" [ref=f99e145] [cursor=pointer]
|
|
194
|
+
- button "Heading 3" [ref=f99e146] [cursor=pointer]
|
|
195
|
+
- button "Heading 4" [ref=f99e147] [cursor=pointer]
|
|
196
|
+
- button "Quote" [ref=f99e148] [cursor=pointer]
|
|
197
|
+
- button "code" [ref=f99e149] [cursor=pointer]
|
|
198
|
+
- button "PHP" [ref=f99e150] [cursor=pointer]
|
|
199
|
+
- button "Insert/edit image(M)" [ref=f99e151] [cursor=pointer]
|
|
200
|
+
- button "Insert/edit link(L)" [ref=f99e152] [cursor=pointer]
|
|
201
|
+
- button "Ordered list. Converts selected lines to a numbered list.(O)" [ref=f99e153] [cursor=pointer]
|
|
202
|
+
- button "Unordered list. Converts selected lines to a bulleted list.(U)" [ref=f99e154] [cursor=pointer]
|
|
203
|
+
- button "Get help on button functionality.(H)" [ref=f99e155] [cursor=pointer]
|
|
204
|
+
- textbox "Comment" [ref=f99e156]
|
|
205
|
+
- group "Show Text format" [ref=f99e158]:
|
|
206
|
+
- paragraph [ref=f99e160]:
|
|
207
|
+
- link "More information about text formats" [ref=f99e161] [cursor=pointer]:
|
|
208
|
+
- /url: /filter/tips
|
|
209
|
+
- group [ref=f99e162]:
|
|
210
|
+
- link "Hide Issue summary & relationships" [ref=f99e165] [cursor=pointer]:
|
|
211
|
+
- /url: "#"
|
|
212
|
+
- generic [ref=f99e166]: Hide
|
|
213
|
+
- text: Issue summary & relationships
|
|
214
|
+
- generic [ref=f99e167]:
|
|
215
|
+
- generic [ref=f99e170]:
|
|
216
|
+
- generic [ref=f99e171]:
|
|
217
|
+
- generic [ref=f99e172]: Issue summary
|
|
218
|
+
- generic [ref=f99e173]:
|
|
219
|
+
- toolbar [ref=f99e174]:
|
|
220
|
+
- button "Bold(B)" [ref=f99e175] [cursor=pointer]
|
|
221
|
+
- button "Italic(I)" [ref=f99e176] [cursor=pointer]
|
|
222
|
+
- button "Strike-through" [ref=f99e177] [cursor=pointer]
|
|
223
|
+
- button "Heading 2" [ref=f99e178] [cursor=pointer]
|
|
224
|
+
- button "Heading 3" [ref=f99e179] [cursor=pointer]
|
|
225
|
+
- button "Heading 4" [ref=f99e180] [cursor=pointer]
|
|
226
|
+
- button "Quote" [ref=f99e181] [cursor=pointer]
|
|
227
|
+
- button "code" [ref=f99e182] [cursor=pointer]
|
|
228
|
+
- button "PHP" [ref=f99e183] [cursor=pointer]
|
|
229
|
+
- button "Insert/edit image(M)" [ref=f99e184] [cursor=pointer]
|
|
230
|
+
- button "Insert/edit link(L)" [ref=f99e185] [cursor=pointer]
|
|
231
|
+
- button "Ordered list. Converts selected lines to a numbered list.(O)" [ref=f99e186] [cursor=pointer]
|
|
232
|
+
- button "Unordered list. Converts selected lines to a bulleted list.(U)" [ref=f99e187] [cursor=pointer]
|
|
233
|
+
- button "Get help on button functionality.(H)" [ref=f99e188] [cursor=pointer]
|
|
234
|
+
- textbox "Issue summary" [ref=f99e189]: "<h3 id=\"summary-problem-motivation\">Problem/Motivation</h3> <p>The Varbase functional testing suite on this branch still depends on the previous testing package. The harness now ships as Varbase E2E (<code>@vardot/varbase-e2e</code> 2.0.0), which includes the Drupal and Varbase step packs as built-ins. Keeping local copies makes scenarios ambiguous and cuts this project off from upstream fixes.</p> <h4 id=\"summary-steps-reproduce\">Steps to reproduce</h4> <p>Run <code>grep -rn \"VARBASE_E2E\\|varbase-e2e\" package.json cucumber.js</code> on 9.2.x — it still points at the previous package.</p> <h3 id=\"summary-proposed-resolution\">Proposed resolution</h3> <ul> <li>Depend on <code>@vardot/varbase-e2e ^2.0.0</code>; update <code>cucumber.js</code> require globs and the report script path.</li> <li>Re-point custom step helper imports at the new package.</li> <li>Remove custom steps now shipped as built-ins; keep only project-specific ones.</li> <li>Rename env vars to the <code>VARBASE_E2E_*</code> family across config/CI/DDEV.</li> <li>Verify with <code>npx cucumber-js --dry-run</code> (zero ambiguous/undefined), then CI.</li> </ul> <p><em>AI-Generated: Yes</em></p> <h3 id=\"summary-remaining-tasks\">Remaining tasks</h3> <ul> <li>✅ File an issue</li> <li>❌ Addition/Change/Update/Fix</li> <li>❌ Testing to ensure no regression</li> <li>➖ Automated unit testing coverage</li> <li>❌ Automated functional testing coverage</li> <li>➖ UX/UI designer responsibilities</li> <li>❌ Readability</li> <li>➖ Accessibility</li> <li>➖ Performance</li> <li>➖ Security</li> <li>❌ Developer Documentation</li> <li>➖ User Guide Documentation</li> <li>➖ Reviewed by human</li> <li>➖ Code review by maintainers</li> <li>➖ Full testing and approval</li> <li>➖ Credit contributors</li> <li>➖ Review with the product owner</li> <li>➖ Release notes snippet</li> <li>❌ Release</li> </ul> <h3 id=\"summary-ui-changes\">User interface changes</h3> <ul> <li>N/A</li> </ul> <h3 id=\"summary-api-changes\">API changes</h3> <ul> <li>N/A</li> </ul> <h3 id=\"summary-data-model-changes\">Data model changes</h3> <ul> <li>N/A</li> </ul> <h3 id=\"summary-release-notes\">Release notes snippet</h3> <ul> <li>The Varbase functional testing suite now runs on Varbase E2E (<code>@vardot/varbase-e2e</code> 2.0.0).</li> </ul>"
|
|
235
|
+
- group "Show Text format" [ref=f99e191]:
|
|
236
|
+
- paragraph [ref=f99e193]:
|
|
237
|
+
- link "More information about text formats" [ref=f99e194] [cursor=pointer]:
|
|
238
|
+
- /url: /filter/tips
|
|
239
|
+
- generic [ref=f99e195]:
|
|
240
|
+
- text: A
|
|
241
|
+
- link "description of the issue summary field" [ref=f99e196] [cursor=pointer]:
|
|
242
|
+
- /url: /community/contributor-guide/reference-information/drupal-project-issues/fields-and-other-parts-of-9
|
|
243
|
+
- text: and
|
|
244
|
+
- link "alternative issue summary templates" [ref=f99e197] [cursor=pointer]:
|
|
245
|
+
- /url: /community/contributor-guide/reference-information/drupal-project-issues/fields-and-other-parts-of-11
|
|
246
|
+
- text: can be found in the
|
|
247
|
+
- link "Drupal project issues" [ref=f99e198] [cursor=pointer]:
|
|
248
|
+
- /url: /community/contributor-guide/reference-information/drupal-project-issues
|
|
249
|
+
- text: documentation.
|
|
250
|
+
- generic [ref=f99e201]:
|
|
251
|
+
- generic [ref=f99e202]: Parent issue link
|
|
252
|
+
- generic [ref=f99e205]:
|
|
253
|
+
- generic [ref=f99e206]: URL
|
|
254
|
+
- textbox "URL" [ref=f99e207]
|
|
255
|
+
- generic [ref=f99e208]: URL of the parent issue. It can be https://www.drupal.org issue or https://git.drupalcode.org issue.
|
|
256
|
+
- generic [ref=f99e211]:
|
|
257
|
+
- link "Show row weights" [ref=f99e213] [cursor=pointer]:
|
|
258
|
+
- /url: "#"
|
|
259
|
+
- table [ref=f99e214]:
|
|
260
|
+
- rowgroup [ref=f99e215]:
|
|
261
|
+
- row [ref=f99e216]:
|
|
262
|
+
- columnheader "Related issues links" [ref=f99e217]
|
|
263
|
+
- rowgroup [ref=f99e219]:
|
|
264
|
+
- row "Related issues links URL" [ref=f99e220]:
|
|
265
|
+
- cell [ref=f99e221]:
|
|
266
|
+
- link "Drag to re-order" [ref=f99e222]:
|
|
267
|
+
- /url: "#"
|
|
268
|
+
- cell "Related issues links URL" [ref=f99e224]:
|
|
269
|
+
- generic [ref=f99e225]:
|
|
270
|
+
- generic [ref=f99e226]: Related issues links
|
|
271
|
+
- generic [ref=f99e229]:
|
|
272
|
+
- generic [ref=f99e230]: URL
|
|
273
|
+
- textbox "URL" [ref=f99e231]
|
|
274
|
+
- generic [ref=f99e232]: URLs of related issues. They can be https://www.drupal.org issues or https://git.drupalcode.org issues.
|
|
275
|
+
- button "Add another item" [ref=f99e234]
|
|
276
|
+
- group [ref=f99e237]:
|
|
277
|
+
- link "Show Files" [ref=f99e240] [cursor=pointer]:
|
|
278
|
+
- /url: "#"
|
|
279
|
+
- generic [ref=f99e241]: Show
|
|
280
|
+
- text: Files
|
|
281
|
+
- heading "Vertical Tabs" [level=2] [ref=f99e242]
|
|
282
|
+
- paragraph [ref=f99e243]:
|
|
283
|
+
- text: Be sure to
|
|
284
|
+
- link "update the contribution record" [ref=f99e244] [cursor=pointer]:
|
|
285
|
+
- /url: https://new.drupal.org/contribution-record?source_link=https%3A//www.drupal.org/node/3615713
|
|
286
|
+
- generic [ref=f99e245]:
|
|
287
|
+
- button "Save" [ref=f99e246]
|
|
288
|
+
- button "Preview" [ref=f99e247]
|
|
289
|
+
- button "View changes" [ref=f99e248]
|
|
290
|
+
- contentinfo [ref=f99e249]:
|
|
291
|
+
- generic [ref=f99e250]:
|
|
292
|
+
- generic [ref=f99e253]:
|
|
293
|
+
- link [ref=f99e254] [cursor=pointer]:
|
|
294
|
+
- /url: https://www.tag1.com/?utm_source=DA&utm_medium=referral&utm_campaign=drupal-org-footer
|
|
295
|
+
- text: Infrastructure management for Drupal.org provided by
|
|
296
|
+
- img "Tag1 logo" [ref=f99e255]
|
|
297
|
+
- link "Need a Drupal 7 extended support partner? Consider Tag1." [ref=f99e257] [cursor=pointer]:
|
|
298
|
+
- /url: https://d7es.tag1.com/plans?utm_source=DA&utm_medium=footer&utm_campaign=EOL&utm_id=d7es&utm_term=plans&utm_content=Dec
|
|
299
|
+
- generic [ref=f99e258]:
|
|
300
|
+
- generic:
|
|
301
|
+
- generic:
|
|
302
|
+
- heading "News items" [level=4] [ref=f99e259]
|
|
303
|
+
- list [ref=f99e260]:
|
|
304
|
+
- listitem [ref=f99e261]:
|
|
305
|
+
- link "News" [ref=f99e262] [cursor=pointer]:
|
|
306
|
+
- /url: https://www.drupal.org/news
|
|
307
|
+
- listitem [ref=f99e263]:
|
|
308
|
+
- link "Planet Drupal" [ref=f99e264] [cursor=pointer]:
|
|
309
|
+
- /url: https://www.drupal.org/planet
|
|
310
|
+
- listitem [ref=f99e265]:
|
|
311
|
+
- link "Social media" [ref=f99e266] [cursor=pointer]:
|
|
312
|
+
- /url: https://www.drupal.org/about/media-kit/social-media
|
|
313
|
+
- listitem [ref=f99e267]:
|
|
314
|
+
- link "Sign up for Drupal news" [ref=f99e268] [cursor=pointer]:
|
|
315
|
+
- /url: https://www.drupal.org/subscribe
|
|
316
|
+
- listitem [ref=f99e269]:
|
|
317
|
+
- link "Security advisories" [ref=f99e270] [cursor=pointer]:
|
|
318
|
+
- /url: https://www.drupal.org/security
|
|
319
|
+
- listitem [ref=f99e271]:
|
|
320
|
+
- link "Jobs" [ref=f99e272] [cursor=pointer]:
|
|
321
|
+
- /url: https://jobs.drupal.org/
|
|
322
|
+
- heading "Our community" [level=4] [ref=f99e273]
|
|
323
|
+
- list [ref=f99e274]:
|
|
324
|
+
- listitem [ref=f99e275]:
|
|
325
|
+
- link "Community" [ref=f99e276] [cursor=pointer]:
|
|
326
|
+
- /url: https://www.drupal.org/community
|
|
327
|
+
- listitem [ref=f99e277]:
|
|
328
|
+
- generic [ref=f99e278]:
|
|
329
|
+
- link "Services" [ref=f99e279] [cursor=pointer]:
|
|
330
|
+
- /url: https://www.drupal.org/drupal-services
|
|
331
|
+
- text: ","
|
|
332
|
+
- link "Training" [ref=f99e280] [cursor=pointer]:
|
|
333
|
+
- /url: https://www.drupal.org/training
|
|
334
|
+
- text: "&"
|
|
335
|
+
- link "Hosting" [ref=f99e281] [cursor=pointer]:
|
|
336
|
+
- /url: https://www.drupal.org/hosting
|
|
337
|
+
- listitem [ref=f99e282]:
|
|
338
|
+
- link "Contributor guide" [ref=f99e283] [cursor=pointer]:
|
|
339
|
+
- /url: https://www.drupal.org/community/contributor-guide
|
|
340
|
+
- listitem [ref=f99e284]:
|
|
341
|
+
- link "Groups & meetups" [ref=f99e285] [cursor=pointer]:
|
|
342
|
+
- /url: https://groups.drupal.org/groups
|
|
343
|
+
- listitem [ref=f99e286]:
|
|
344
|
+
- link "DrupalCon" [ref=f99e287] [cursor=pointer]:
|
|
345
|
+
- /url: https://events.drupal.org
|
|
346
|
+
- listitem [ref=f99e288]:
|
|
347
|
+
- link "Code of conduct" [ref=f99e289] [cursor=pointer]:
|
|
348
|
+
- /url: https://www.drupal.org/dcoc
|
|
349
|
+
- heading "Documentation" [level=4] [ref=f99e290]
|
|
350
|
+
- list [ref=f99e291]:
|
|
351
|
+
- listitem [ref=f99e292]:
|
|
352
|
+
- link "Documentation" [ref=f99e293] [cursor=pointer]:
|
|
353
|
+
- /url: https://www.drupal.org/documentation
|
|
354
|
+
- listitem [ref=f99e294]:
|
|
355
|
+
- link "Drupal Guide" [ref=f99e295] [cursor=pointer]:
|
|
356
|
+
- /url: https://www.drupal.org/docs
|
|
357
|
+
- listitem [ref=f99e296]:
|
|
358
|
+
- link "Drupal User Guide" [ref=f99e297] [cursor=pointer]:
|
|
359
|
+
- /url: https://www.drupal.org/docs/user_guide/en/index.html
|
|
360
|
+
- listitem [ref=f99e298]:
|
|
361
|
+
- link "Developer docs" [ref=f99e299] [cursor=pointer]:
|
|
362
|
+
- /url: https://www.drupal.org/documentation/develop
|
|
363
|
+
- listitem [ref=f99e300]:
|
|
364
|
+
- link "API.Drupal.org" [ref=f99e301] [cursor=pointer]:
|
|
365
|
+
- /url: https://api.drupal.org/
|
|
366
|
+
- heading "Drupal code base" [level=4] [ref=f99e302]
|
|
367
|
+
- list [ref=f99e303]:
|
|
368
|
+
- listitem [ref=f99e304]:
|
|
369
|
+
- link "Download & Extend" [ref=f99e305] [cursor=pointer]:
|
|
370
|
+
- /url: https://www.drupal.org/download
|
|
371
|
+
- listitem [ref=f99e306]:
|
|
372
|
+
- link "Drupal core" [ref=f99e307] [cursor=pointer]:
|
|
373
|
+
- /url: https://www.drupal.org/project/drupal
|
|
374
|
+
- listitem [ref=f99e308]:
|
|
375
|
+
- link "Modules" [ref=f99e309] [cursor=pointer]:
|
|
376
|
+
- /url: https://www.drupal.org/project/project_module
|
|
377
|
+
- listitem [ref=f99e310]:
|
|
378
|
+
- link "Themes" [ref=f99e311] [cursor=pointer]:
|
|
379
|
+
- /url: https://www.drupal.org/project/project_theme
|
|
380
|
+
- listitem [ref=f99e312]:
|
|
381
|
+
- link "Distributions" [ref=f99e313] [cursor=pointer]:
|
|
382
|
+
- /url: https://www.drupal.org/project/project_distribution
|
|
383
|
+
- heading "Governance of community" [level=4] [ref=f99e314]
|
|
384
|
+
- list [ref=f99e315]:
|
|
385
|
+
- listitem [ref=f99e316]:
|
|
386
|
+
- link "About" [ref=f99e317] [cursor=pointer]:
|
|
387
|
+
- /url: https://www.drupal.org/about
|
|
388
|
+
- listitem [ref=f99e318]:
|
|
389
|
+
- link "Web accessibility" [ref=f99e319] [cursor=pointer]:
|
|
390
|
+
- /url: https://www.drupal.org/about/features/accessibility
|
|
391
|
+
- listitem [ref=f99e320]:
|
|
392
|
+
- link "Drupal Association" [ref=f99e321] [cursor=pointer]:
|
|
393
|
+
- /url: https://www.drupal.org/association
|
|
394
|
+
- listitem [ref=f99e322]:
|
|
395
|
+
- link "About Drupal.org" [ref=f99e323] [cursor=pointer]:
|
|
396
|
+
- /url: https://www.drupal.org/drupalorg
|
|
397
|
+
- listitem [ref=f99e324]:
|
|
398
|
+
- link "Terms of service" [ref=f99e325] [cursor=pointer]:
|
|
399
|
+
- /url: https://www.drupal.org/terms
|
|
400
|
+
- listitem [ref=f99e326]:
|
|
401
|
+
- link "Privacy policy" [ref=f99e327] [cursor=pointer]:
|
|
402
|
+
- /url: https://www.drupal.org/privacy
|
|
403
|
+
- paragraph [ref=f99e331]:
|
|
404
|
+
- text: Drupal is a
|
|
405
|
+
- link "registered trademark" [ref=f99e332] [cursor=pointer]:
|
|
406
|
+
- /url: /about/trademark
|
|
407
|
+
- text: of
|
|
408
|
+
- link "Dries Buytaert" [ref=f99e333] [cursor=pointer]:
|
|
409
|
+
- /url: https://dri.es
|
|
410
|
+
- text: .
|
package/package.json
CHANGED
|
@@ -44,17 +44,24 @@ When(/^(I |we )*press( the)* "([^"]*)?"( button)*$/, async function (pronounCase
|
|
|
44
44
|
const esc = element.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
45
45
|
const page = this.page;
|
|
46
46
|
await actOrExplain('press button', element, async () => {
|
|
47
|
-
const
|
|
48
|
-
.filter({ hasText: new RegExp('^' + esc + '$') })
|
|
49
|
-
|
|
47
|
+
const all = page.locator('button, input[type="button"], input[type="submit"], [role="button"], a')
|
|
48
|
+
.filter({ hasText: new RegExp('^' + esc + '$') });
|
|
49
|
+
// Sticky action bars (Gin) clone buttons: the original stays hidden while
|
|
50
|
+
// the visible clone carries the same text. Prefer the visible candidate —
|
|
51
|
+
// clicking the hidden original starves actionability for the full timeout.
|
|
52
|
+
let btn = all.first();
|
|
53
|
+
const count = await all.count();
|
|
54
|
+
for (let i = 0; i < count; i++) {
|
|
55
|
+
if (await all.nth(i).isVisible()) { btn = all.nth(i); break; }
|
|
56
|
+
}
|
|
50
57
|
try {
|
|
51
|
-
await btn.click({ timeout:
|
|
58
|
+
await btn.click({ timeout: 10000 });
|
|
52
59
|
} catch (e) {
|
|
53
60
|
// A fixed-position overlay (chat widgets, sticky action bars) can sit on
|
|
54
61
|
// top of a correctly-resolved button and starve the pointer click's
|
|
55
62
|
// actionability checks. The button itself is right — dispatch the click
|
|
56
63
|
// in-page so its handlers (including form submit) still fire.
|
|
57
|
-
await btn.evaluate((el) => el.click());
|
|
64
|
+
await btn.evaluate((el) => el.click(), { timeout: 5000 });
|
|
58
65
|
}
|
|
59
66
|
});
|
|
60
67
|
});
|
|
@@ -51,6 +51,28 @@ When(/^(?:I |we )*add a basic(?: "([^"]*)")? section at the end of layout$/, asy
|
|
|
51
51
|
if (!(await layoutLink.count())) throw friendly(`The "${layout}" layout option was not found in the Add section list.`);
|
|
52
52
|
await layoutLink.click();
|
|
53
53
|
await smartSettle(this.page, budget(this));
|
|
54
|
+
// On newer Bootstrap Layout Builder the layout option adds the section
|
|
55
|
+
// directly instead of opening its settings in the off-canvas. When the
|
|
56
|
+
// section settings form (container type, breakpoints, background) did not
|
|
57
|
+
// open, click the newly added (highest-delta) section's "Configure" link -
|
|
58
|
+
// a use-ajax link that opens the settings in the #drupal-off-canvas dialog,
|
|
59
|
+
// where the following section-settings steps run.
|
|
60
|
+
const hasSettingsForm = await this.page.locator('[id*="layout-container-type"]').count();
|
|
61
|
+
if (!hasSettingsForm) {
|
|
62
|
+
const links = this.page.locator('a.layout-builder__link--configure[href*="/layout_builder/configure-form/section/"]');
|
|
63
|
+
const count = await links.count();
|
|
64
|
+
let bestLink = null;
|
|
65
|
+
let bestDelta = -1;
|
|
66
|
+
for (let i = 0; i < count; i++) {
|
|
67
|
+
const href = await links.nth(i).getAttribute('href');
|
|
68
|
+
const delta = parseInt(href.split('/').pop(), 10);
|
|
69
|
+
if (delta > bestDelta) { bestDelta = delta; bestLink = links.nth(i); }
|
|
70
|
+
}
|
|
71
|
+
if (bestLink) {
|
|
72
|
+
await bestLink.click();
|
|
73
|
+
await smartSettle(this.page, budget(this));
|
|
74
|
+
}
|
|
75
|
+
}
|
|
54
76
|
});
|
|
55
77
|
|
|
56
78
|
/**
|
|
@@ -69,8 +91,20 @@ When(/^(?:I |we )*save the section$/, async function () {
|
|
|
69
91
|
// Drupal's jQuery-bound AJAX submit handler for this button - it can leave
|
|
70
92
|
// the section silently un-added. Use a real Playwright mouse click instead,
|
|
71
93
|
// which dispatches the full native event sequence.
|
|
72
|
-
|
|
73
|
-
|
|
94
|
+
// The submit reads "Add section" on a fresh section and "Update" when the
|
|
95
|
+
// settings were opened through the section's Configure link. Match the
|
|
96
|
+
// value attribute exactly (the control is usually an <input>) or a
|
|
97
|
+
// button's exact text, preferring the off-canvas dialog - a loose /Update/
|
|
98
|
+
// match grabs invisible widget buttons ("Update widget") elsewhere.
|
|
99
|
+
const label = /^(Add section|Update)$/;
|
|
100
|
+
const pick = (scope) => this.page
|
|
101
|
+
.locator(`${scope} input[type="submit"][value="Add section"], ${scope} input[type="submit"][value="Update"]`)
|
|
102
|
+
.or(this.page.locator(`${scope} button`).filter({ hasText: label }));
|
|
103
|
+
let btn = pick('#drupal-off-canvas').first();
|
|
104
|
+
if (!(await btn.count())) {
|
|
105
|
+
btn = pick('body').first();
|
|
106
|
+
}
|
|
107
|
+
if (!(await btn.count())) throw friendly('The "Add section" / "Update" button was not found.');
|
|
74
108
|
await btn.click();
|
|
75
109
|
await smartSettle(this.page, budget(this));
|
|
76
110
|
});
|
|
@@ -55,15 +55,32 @@ When(/^(?:I |we )*open the "([^"]*)" media library$/, async function (field) {
|
|
|
55
55
|
if (!(await btn.count())) {
|
|
56
56
|
throw friendly(`No media library open button for the "${field}" field was found.`);
|
|
57
57
|
}
|
|
58
|
+
const dialog = this.page.locator('.ui-dialog .media-library-view, .media-library-widget-modal').first();
|
|
59
|
+
const open = async () => {
|
|
60
|
+
try {
|
|
61
|
+
await btn.click({ timeout: 8000 });
|
|
62
|
+
} catch (e) {
|
|
63
|
+
// A stale jQuery UI overlay (ui-widget-overlay) from a previous dialog can
|
|
64
|
+
// intercept pointer events over a correctly-resolved button. The button is
|
|
65
|
+
// right - dispatch the click in-page so Drupal's AJAX handler still fires.
|
|
66
|
+
await btn.evaluate((el) => el.click());
|
|
67
|
+
}
|
|
68
|
+
await smartSettle(this.page, budget(this));
|
|
69
|
+
};
|
|
70
|
+
await open();
|
|
71
|
+
// The dialog can be torn down by a previous dialog's late close animation
|
|
72
|
+
// (two stacked jQuery UI dialogs) - verify it is really there, and re-open
|
|
73
|
+
// once when it is not, before letting the next step run against nothing.
|
|
58
74
|
try {
|
|
59
|
-
await
|
|
75
|
+
await dialog.waitFor({ state: 'visible', timeout: 10000 });
|
|
60
76
|
} catch (e) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
77
|
+
await open();
|
|
78
|
+
try {
|
|
79
|
+
await dialog.waitFor({ state: 'visible', timeout: 10000 });
|
|
80
|
+
} catch (e2) {
|
|
81
|
+
throw friendly(`The media library dialog for "${field}" did not open.`);
|
|
82
|
+
}
|
|
65
83
|
}
|
|
66
|
-
await smartSettle(this.page, budget(this));
|
|
67
84
|
});
|
|
68
85
|
|
|
69
86
|
/**
|