@vardot/varbase-e2e 2.0.1 → 2.0.3
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/console-2026-08-10T23-16-14-142Z.log +5 -0
- package/.playwright-mcp/console-2026-08-10T23-28-18-329Z.log +54 -0
- package/.playwright-mcp/console-2026-08-11T00-25-10-092Z.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/.playwright-mcp/page-2026-08-10T23-16-15-081Z.yml +0 -0
- package/.playwright-mcp/page-2026-08-10T23-20-02-756Z.yml +414 -0
- package/.playwright-mcp/page-2026-08-10T23-55-02-223Z.yml +367 -0
- package/.playwright-mcp/page-2026-08-10T23-55-35-161Z.yml +402 -0
- package/.playwright-mcp/page-2026-08-11T00-31-06-810Z.yml +368 -0
- package/.playwright-mcp/page-2026-08-11T00-31-42-579Z.yml +400 -0
- package/.playwright-mcp/page-2026-08-11T00-37-22-611Z.yml +367 -0
- package/.playwright-mcp/page-2026-08-11T00-38-00-092Z.yml +400 -0
- package/AGENTS.md +1 -1
- package/CLAUDE.md +2 -2
- package/docs/README.md +3 -3
- package/docs/steps/README.md +2 -2
- package/docs/steps/varbase.md +6 -65
- 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
- package/tests/step-definitions/varbase.steps.js +0 -83
|
@@ -0,0 +1,400 @@
|
|
|
1
|
+
- generic [active] [ref=f14e1]:
|
|
2
|
+
- generic:
|
|
3
|
+
- link "Skip to main content" [ref=f14e2] [cursor=pointer]:
|
|
4
|
+
- /url: "#content"
|
|
5
|
+
- link "Skip to search" [ref=f14e3] [cursor=pointer]:
|
|
6
|
+
- /url: "#search-block-form"
|
|
7
|
+
- navigation [ref=f14e5]:
|
|
8
|
+
- generic [ref=f14e6]:
|
|
9
|
+
- generic [ref=f14e7]:
|
|
10
|
+
- generic:
|
|
11
|
+
- generic:
|
|
12
|
+
- generic:
|
|
13
|
+
- list:
|
|
14
|
+
- listitem [ref=f14e8]:
|
|
15
|
+
- link "Drupal.org home" [ref=f14e9] [cursor=pointer]:
|
|
16
|
+
- /url: /home
|
|
17
|
+
- listitem [ref=f14e10]:
|
|
18
|
+
- link "Discover Drupal" [ref=f14e11] [cursor=pointer]:
|
|
19
|
+
- /url: https://www.drupal.org/about/overview/technical
|
|
20
|
+
- listitem [ref=f14e12]:
|
|
21
|
+
- link "Build with Drupal" [ref=f14e13] [cursor=pointer]:
|
|
22
|
+
- /url: https://www.drupal.org/docs/official_docs/local-development-guide
|
|
23
|
+
- listitem [ref=f14e14]:
|
|
24
|
+
- link "Partners & Services" [ref=f14e15] [cursor=pointer]:
|
|
25
|
+
- /url: https://www.drupal.org/drupal-services
|
|
26
|
+
- listitem [ref=f14e16]:
|
|
27
|
+
- link "Community" [ref=f14e17] [cursor=pointer]:
|
|
28
|
+
- /url: https://www.drupal.org/community
|
|
29
|
+
- listitem [ref=f14e18]:
|
|
30
|
+
- link "Support Drupal" [ref=f14e19] [cursor=pointer]:
|
|
31
|
+
- /url: /association
|
|
32
|
+
- listitem [ref=f14e20]:
|
|
33
|
+
- link "Get Started" [ref=f14e21] [cursor=pointer]:
|
|
34
|
+
- /url: /try-hosting
|
|
35
|
+
- generic [ref=f14e27]:
|
|
36
|
+
- heading "Search form" [level=2] [ref=f14e28]
|
|
37
|
+
- generic: Search
|
|
38
|
+
- button "Search" [ref=f14e31] [cursor=pointer]
|
|
39
|
+
- generic [ref=f14e32]:
|
|
40
|
+
- generic:
|
|
41
|
+
- generic:
|
|
42
|
+
- generic:
|
|
43
|
+
- list:
|
|
44
|
+
- listitem:
|
|
45
|
+
- link [ref=f14e33] [cursor=pointer]:
|
|
46
|
+
- /url: "#block-system-user-menu"
|
|
47
|
+
- img "Log in, view profile, and more" [ref=f14e34]
|
|
48
|
+
- link [ref=f14e39] [cursor=pointer]:
|
|
49
|
+
- /url: /
|
|
50
|
+
- img "Drupal.org" [ref=f14e40]
|
|
51
|
+
- generic [ref=f14e42]:
|
|
52
|
+
- generic [ref=f14e43]:
|
|
53
|
+
- navigation [ref=f14e45]:
|
|
54
|
+
- link "Themes" [ref=f14e47] [cursor=pointer]:
|
|
55
|
+
- /url: /project/project_theme
|
|
56
|
+
- link "Horizon Aid theme" [ref=f14e49] [cursor=pointer]:
|
|
57
|
+
- /url: /project/vartheme_bs5_horizonaid
|
|
58
|
+
- link "Issues" [ref=f14e51] [cursor=pointer]:
|
|
59
|
+
- /url: /project/issues/vartheme_bs5_horizonaid
|
|
60
|
+
- heading "Add the Varbase E2E automated functional testing suite (1.0.x)" [level=1] [ref=f14e52]
|
|
61
|
+
- generic [ref=f14e53]:
|
|
62
|
+
- heading "Primary tabs" [level=2] [ref=f14e54]
|
|
63
|
+
- list [ref=f14e55]:
|
|
64
|
+
- listitem [ref=f14e56]:
|
|
65
|
+
- link "View (active tab)" [ref=f14e57] [cursor=pointer]:
|
|
66
|
+
- /url: /project/vartheme_bs5_horizonaid/issues/3615993
|
|
67
|
+
- text: View
|
|
68
|
+
- generic [ref=f14e58]: (active tab)
|
|
69
|
+
- listitem [ref=f14e59]:
|
|
70
|
+
- link "Edit" [ref=f14e60] [cursor=pointer]:
|
|
71
|
+
- /url: /node/3615993/edit
|
|
72
|
+
- generic [ref=f14e61]:
|
|
73
|
+
- complementary [ref=f14e62]:
|
|
74
|
+
- generic [ref=f14e67]:
|
|
75
|
+
- generic [ref=f14e68]: Active
|
|
76
|
+
- generic [ref=f14e71]:
|
|
77
|
+
- generic [ref=f14e72]: "Project:"
|
|
78
|
+
- generic [ref=f14e73]: Horizon Aid theme
|
|
79
|
+
- generic [ref=f14e75]:
|
|
80
|
+
- generic [ref=f14e76]: "Version:"
|
|
81
|
+
- generic [ref=f14e77]: 1.0.x-dev
|
|
82
|
+
- generic [ref=f14e79]:
|
|
83
|
+
- generic [ref=f14e80]: "Component:"
|
|
84
|
+
- generic [ref=f14e81]: Code
|
|
85
|
+
- generic [ref=f14e83]:
|
|
86
|
+
- generic [ref=f14e84]: "Priority:"
|
|
87
|
+
- generic [ref=f14e85]: Normal
|
|
88
|
+
- generic [ref=f14e87]:
|
|
89
|
+
- generic [ref=f14e88]: "Category:"
|
|
90
|
+
- generic [ref=f14e89]: Task
|
|
91
|
+
- generic [ref=f14e91]:
|
|
92
|
+
- generic [ref=f14e92]: "Assigned:"
|
|
93
|
+
- generic [ref=f14e93]: Unassigned
|
|
94
|
+
- generic [ref=f14e95]:
|
|
95
|
+
- generic [ref=f14e96]: "Reporter:"
|
|
96
|
+
- link "rajab natshah" [ref=f14e99] [cursor=pointer]:
|
|
97
|
+
- /url: /u/rajab-natshah
|
|
98
|
+
- generic [ref=f14e100]:
|
|
99
|
+
- generic [ref=f14e101]: "Created:"
|
|
100
|
+
- generic [ref=f14e102]: 11 Aug 2026 at 03:37 +03
|
|
101
|
+
- generic [ref=f14e104]:
|
|
102
|
+
- generic [ref=f14e105]: "Updated:"
|
|
103
|
+
- generic [ref=f14e106]: 11 Aug 2026 at 03:37 +03
|
|
104
|
+
- generic [ref=f14e108]:
|
|
105
|
+
- link "Following" [ref=f14e109] [cursor=pointer]:
|
|
106
|
+
- /url: /flag/unflag/project_issue_follow/3615993?destination=node/3615993&token=6cS_7Q2m1dT64XFi7EdWa66xQCh7V8-8vVIokegbLPM
|
|
107
|
+
- text: 1 follower
|
|
108
|
+
- generic [ref=f14e111]:
|
|
109
|
+
- text: "Jump to comment:"
|
|
110
|
+
- link "First unread" [ref=f14e112] [cursor=pointer]:
|
|
111
|
+
- /url: /project/vartheme_bs5_horizonaid/issues/3615993#comment-16726141
|
|
112
|
+
- text: ","
|
|
113
|
+
- link "Most recent" [ref=f14e113] [cursor=pointer]:
|
|
114
|
+
- /url: /project/vartheme_bs5_horizonaid/issues/3615993#comment-16726141
|
|
115
|
+
- text: ","
|
|
116
|
+
- link "Add new" [ref=f14e114] [cursor=pointer]:
|
|
117
|
+
- /url: /project/vartheme_bs5_horizonaid/issues/3615993#project-issue-ajax-form
|
|
118
|
+
- main [ref=f14e115]:
|
|
119
|
+
- generic [ref=f14e116]:
|
|
120
|
+
- generic [ref=f14e117]:
|
|
121
|
+
- text: ✔
|
|
122
|
+
- heading "Status message" [level=2] [ref=f14e118]
|
|
123
|
+
- text: Issue
|
|
124
|
+
- emphasis [ref=f14e119]: Add the Varbase E2E automated functional testing suite (1.0.x)
|
|
125
|
+
- text: has been created.
|
|
126
|
+
- generic [ref=f14e124]:
|
|
127
|
+
- generic [ref=f14e126]:
|
|
128
|
+
- generic [ref=f14e129]:
|
|
129
|
+
- heading "Problem/Motivation" [level=3] [ref=f14e130]
|
|
130
|
+
- paragraph [ref=f14e131]:
|
|
131
|
+
- text: "The Horizon Aid theme ships no automated functional testing: no browser test proves the theme actually renders a live site — its landmarks, the Bootstrap navbar markup its preprocess hooks produce, or an interior page — so a template or hook regression only surfaces when a human loads a site. The Varbase projects and site templates run their suites on"
|
|
132
|
+
- code [ref=f14e132]: "@vardot/varbase-e2e"
|
|
133
|
+
- text: ", the browser testing harness released from"
|
|
134
|
+
- link "Vardot/varbase-e2e" [ref=f14e133] [cursor=pointer]:
|
|
135
|
+
- /url: https://github.com/Vardot/varbase-e2e
|
|
136
|
+
- text: .
|
|
137
|
+
- heading "Steps to reproduce" [level=4] [ref=f14e134]
|
|
138
|
+
- paragraph [ref=f14e135]:
|
|
139
|
+
- text: "Read the 1.0.x branch: no"
|
|
140
|
+
- code [ref=f14e136]: tests/
|
|
141
|
+
- text: directory, no testing dependency, no test job in the CI configuration (the pipeline builds assets and lints only).
|
|
142
|
+
- heading "Proposed resolution" [level=3] [ref=f14e137]
|
|
143
|
+
- list [ref=f14e138]:
|
|
144
|
+
- listitem [ref=f14e139]: "Add a slim Varbase E2E suite (Playwright + Cucumber-js) proving the theme renders: front page landmarks, Bootstrap navbar markup, an interior page and the login page."
|
|
145
|
+
- listitem [ref=f14e140]: Wire a CI test job that builds a Varbase 11 project, installs the Horizon Aid site template (which sets this theme as default) with the checked-out theme substituted in, and drives the site in the browser.
|
|
146
|
+
- listitem [ref=f14e141]: Use only the harness's built-in steps — no custom step definitions to maintain.
|
|
147
|
+
- heading "Remaining tasks" [level=3] [ref=f14e142]
|
|
148
|
+
- list [ref=f14e143]:
|
|
149
|
+
- listitem [ref=f14e144]: ✅ File an issue
|
|
150
|
+
- listitem [ref=f14e145]: ❌ Addition/Change/Update/Fix
|
|
151
|
+
- listitem [ref=f14e146]: ➖ Testing to ensure no regression
|
|
152
|
+
- listitem [ref=f14e147]: ➖ Automated unit testing coverage
|
|
153
|
+
- listitem [ref=f14e148]: ❌ Automated functional testing coverage
|
|
154
|
+
- listitem [ref=f14e149]: ➖ UX/UI designer responsibilities
|
|
155
|
+
- listitem [ref=f14e150]: ➖ Readability
|
|
156
|
+
- listitem [ref=f14e151]: ➖ Accessibility
|
|
157
|
+
- listitem [ref=f14e152]: ➖ Performance
|
|
158
|
+
- listitem [ref=f14e153]: ➖ Security
|
|
159
|
+
- listitem [ref=f14e154]: ❌ Developer Documentation
|
|
160
|
+
- listitem [ref=f14e155]: ➖ User Guide Documentation
|
|
161
|
+
- listitem [ref=f14e156]: ❌ Reviewed by human
|
|
162
|
+
- listitem [ref=f14e157]: ❌ Code review by maintainers
|
|
163
|
+
- listitem [ref=f14e158]: ➖ Full testing and approval
|
|
164
|
+
- listitem [ref=f14e159]: ➖ Credit contributors
|
|
165
|
+
- listitem [ref=f14e160]: ➖ Review with the product owner
|
|
166
|
+
- listitem [ref=f14e161]: ❌ Release notes snippet
|
|
167
|
+
- listitem [ref=f14e162]: ❌ Release
|
|
168
|
+
- heading "User interface changes" [level=3] [ref=f14e163]
|
|
169
|
+
- list [ref=f14e164]:
|
|
170
|
+
- listitem [ref=f14e165]: N/A
|
|
171
|
+
- heading "API changes" [level=3] [ref=f14e166]
|
|
172
|
+
- list [ref=f14e167]:
|
|
173
|
+
- listitem [ref=f14e168]: N/A
|
|
174
|
+
- heading "Data model changes" [level=3] [ref=f14e169]
|
|
175
|
+
- list [ref=f14e170]:
|
|
176
|
+
- listitem [ref=f14e171]: N/A
|
|
177
|
+
- heading "Release notes snippet" [level=3] [ref=f14e172]
|
|
178
|
+
- list [ref=f14e173]:
|
|
179
|
+
- listitem [ref=f14e174]: Added an automated functional testing suite on @vardot/varbase-e2e.
|
|
180
|
+
- generic [ref=f14e175]:
|
|
181
|
+
- generic [ref=f14e177]:
|
|
182
|
+
- generic [ref=f14e178]:
|
|
183
|
+
- heading [level=3] [ref=f14e179]:
|
|
184
|
+
- text: Issue fork
|
|
185
|
+
- link "vartheme_bs5_horizonaid-3615993" [ref=f14e180]:
|
|
186
|
+
- /url: https://git.drupalcode.org/issue/vartheme_bs5_horizonaid-3615993
|
|
187
|
+
- button "Checking access…" [disabled] [ref=f14e184]
|
|
188
|
+
- group:
|
|
189
|
+
- generic [ref=f14e185]:
|
|
190
|
+
- img "Command icon" [ref=f14e186]
|
|
191
|
+
- text: Show commands
|
|
192
|
+
- emphasis [ref=f14e187]: Completing issue fork…
|
|
193
|
+
- link "About issue forks" [ref=f14e189] [cursor=pointer]:
|
|
194
|
+
- /url: /docs/develop/git/using-gitlab-to-contribute-to-drupal/creating-issue-forks
|
|
195
|
+
- generic [ref=f14e190]:
|
|
196
|
+
- heading "Comments" [level=2] [ref=f14e191]
|
|
197
|
+
- generic [ref=f14e192]:
|
|
198
|
+
- generic [ref=f14e193]: new
|
|
199
|
+
- heading [level=3]
|
|
200
|
+
- heading [level=3] [ref=f14e195]:
|
|
201
|
+
- 'link "Comment #1" [ref=f14e196] [cursor=pointer]':
|
|
202
|
+
- /url: /project/vartheme_bs5_horizonaid/issues/3615993#comment-16726141
|
|
203
|
+
- generic [ref=f14e197]: Comment
|
|
204
|
+
- text: "#1"
|
|
205
|
+
- paragraph [ref=f14e202]:
|
|
206
|
+
- link "rajab natshah" [ref=f14e203] [cursor=pointer]:
|
|
207
|
+
- /url: /u/rajab-natshah
|
|
208
|
+
- text: created an issue.
|
|
209
|
+
- list [ref=f14e204]:
|
|
210
|
+
- listitem [ref=f14e205]:
|
|
211
|
+
- link "edit" [ref=f14e206] [cursor=pointer]:
|
|
212
|
+
- /url: /comment/16726141/edit
|
|
213
|
+
- listitem [ref=f14e207]:
|
|
214
|
+
- link "report as spam" [ref=f14e210] [cursor=pointer]:
|
|
215
|
+
- /url: /flag/flag/drupalorg_comment_spam/16726141?destination=node/3615993&token=T_EmNTwFVy9k-wwvP3xlDWkp_-yi6hUOMq3FcHyIqJM
|
|
216
|
+
- complementary [ref=f14e211]:
|
|
217
|
+
- generic [ref=f14e213]:
|
|
218
|
+
- link "Contribution record" [ref=f14e217] [cursor=pointer]:
|
|
219
|
+
- /url: https://new.drupal.org/contribution-record?source_link=https%3A//www.drupal.org/node/3615993
|
|
220
|
+
- generic [ref=f14e222]:
|
|
221
|
+
- link "Add child issue" [ref=f14e223] [cursor=pointer]:
|
|
222
|
+
- /url: /node/add/project-issue/vartheme_bs5_horizonaid?field_issue_parent_link=https%3A//www.drupal.org/node/3615993
|
|
223
|
+
- text: ","
|
|
224
|
+
- link "clone issue" [ref=f14e224] [cursor=pointer]:
|
|
225
|
+
- /url: /node/add/project-issue/vartheme_bs5_horizonaid?title=Add%20the%20Varbase%20E2E%20automated%20functional%20testing%20suite%20%281.0.x%29&field_issue_parent_link=https%3A//www.drupal.org/node/3615993&clone_body=1&categories=2&priorities=200&status=1&version=1.0.x-dev&component=Code&assigned=0&tags=
|
|
226
|
+
- text: ","
|
|
227
|
+
- link "add change notice" [ref=f14e225] [cursor=pointer]:
|
|
228
|
+
- /url: /node/add/changenotice?field_project=3607122&field_issue_links=https%3A//www.drupal.org/node/3615993
|
|
229
|
+
- complementary [ref=f14e226]:
|
|
230
|
+
- generic [ref=f14e230]:
|
|
231
|
+
- heading "Add new comment" [level=2] [ref=f14e231]
|
|
232
|
+
- generic [ref=f14e234]:
|
|
233
|
+
- group [ref=f14e235]:
|
|
234
|
+
- link "Show Issue metadata" [ref=f14e238] [cursor=pointer]:
|
|
235
|
+
- /url: "#"
|
|
236
|
+
- generic [ref=f14e239]: Show
|
|
237
|
+
- text: Issue metadata
|
|
238
|
+
- generic [ref=f14e243]:
|
|
239
|
+
- generic [ref=f14e244]:
|
|
240
|
+
- generic [ref=f14e245]: Comment
|
|
241
|
+
- generic [ref=f14e246]:
|
|
242
|
+
- toolbar [ref=f14e247]:
|
|
243
|
+
- button "Bold(B)" [ref=f14e248] [cursor=pointer]
|
|
244
|
+
- button "Italic(I)" [ref=f14e249] [cursor=pointer]
|
|
245
|
+
- button "Strike-through" [ref=f14e250] [cursor=pointer]
|
|
246
|
+
- button "Heading 2" [ref=f14e251] [cursor=pointer]
|
|
247
|
+
- button "Heading 3" [ref=f14e252] [cursor=pointer]
|
|
248
|
+
- button "Heading 4" [ref=f14e253] [cursor=pointer]
|
|
249
|
+
- button "Quote" [ref=f14e254] [cursor=pointer]
|
|
250
|
+
- button "code" [ref=f14e255] [cursor=pointer]
|
|
251
|
+
- button "PHP" [ref=f14e256] [cursor=pointer]
|
|
252
|
+
- button "Insert/edit image(M)" [ref=f14e257] [cursor=pointer]
|
|
253
|
+
- button "Insert/edit link(L)" [ref=f14e258] [cursor=pointer]
|
|
254
|
+
- button "Ordered list. Converts selected lines to a numbered list.(O)" [ref=f14e259] [cursor=pointer]
|
|
255
|
+
- button "Unordered list. Converts selected lines to a bulleted list.(U)" [ref=f14e260] [cursor=pointer]
|
|
256
|
+
- button "Get help on button functionality.(H)" [ref=f14e261] [cursor=pointer]
|
|
257
|
+
- textbox "Comment" [ref=f14e262]
|
|
258
|
+
- group "Show Text format" [ref=f14e264]:
|
|
259
|
+
- paragraph [ref=f14e266]:
|
|
260
|
+
- link "More information about text formats" [ref=f14e267] [cursor=pointer]:
|
|
261
|
+
- /url: /filter/tips
|
|
262
|
+
- group [ref=f14e268]:
|
|
263
|
+
- link "Show Issue summary & relationships" [ref=f14e271] [cursor=pointer]:
|
|
264
|
+
- /url: "#"
|
|
265
|
+
- generic [ref=f14e272]: Show
|
|
266
|
+
- text: Issue summary & relationships
|
|
267
|
+
- group [ref=f14e275]:
|
|
268
|
+
- link "Show Files" [ref=f14e278] [cursor=pointer]:
|
|
269
|
+
- /url: "#"
|
|
270
|
+
- generic [ref=f14e279]: Show
|
|
271
|
+
- text: Files
|
|
272
|
+
- paragraph [ref=f14e280]:
|
|
273
|
+
- text: Be sure to
|
|
274
|
+
- link "update the contribution record" [ref=f14e281] [cursor=pointer]:
|
|
275
|
+
- /url: https://new.drupal.org/contribution-record?source_link=https%3A//www.drupal.org/node/3615993
|
|
276
|
+
- generic [ref=f14e282]:
|
|
277
|
+
- button "Save" [ref=f14e283]
|
|
278
|
+
- button "Preview" [ref=f14e284]
|
|
279
|
+
- button "View changes" [ref=f14e285]
|
|
280
|
+
- contentinfo [ref=f14e286]:
|
|
281
|
+
- generic [ref=f14e287]:
|
|
282
|
+
- generic [ref=f14e290]:
|
|
283
|
+
- link [ref=f14e291] [cursor=pointer]:
|
|
284
|
+
- /url: https://www.tag1.com/?utm_source=DA&utm_medium=referral&utm_campaign=drupal-org-footer
|
|
285
|
+
- text: Infrastructure management for Drupal.org provided by
|
|
286
|
+
- img "Tag1 logo" [ref=f14e292]
|
|
287
|
+
- link "Need a Drupal 7 extended support partner? Consider Tag1." [ref=f14e294] [cursor=pointer]:
|
|
288
|
+
- /url: https://d7es.tag1.com/plans?utm_source=DA&utm_medium=footer&utm_campaign=EOL&utm_id=d7es&utm_term=plans&utm_content=Dec
|
|
289
|
+
- generic [ref=f14e295]:
|
|
290
|
+
- generic:
|
|
291
|
+
- generic:
|
|
292
|
+
- heading "News items" [level=4] [ref=f14e296]
|
|
293
|
+
- list [ref=f14e297]:
|
|
294
|
+
- listitem [ref=f14e298]:
|
|
295
|
+
- link "News" [ref=f14e299] [cursor=pointer]:
|
|
296
|
+
- /url: https://www.drupal.org/news
|
|
297
|
+
- listitem [ref=f14e300]:
|
|
298
|
+
- link "Planet Drupal" [ref=f14e301] [cursor=pointer]:
|
|
299
|
+
- /url: https://www.drupal.org/planet
|
|
300
|
+
- listitem [ref=f14e302]:
|
|
301
|
+
- link "Social media" [ref=f14e303] [cursor=pointer]:
|
|
302
|
+
- /url: https://www.drupal.org/about/media-kit/social-media
|
|
303
|
+
- listitem [ref=f14e304]:
|
|
304
|
+
- link "Sign up for Drupal news" [ref=f14e305] [cursor=pointer]:
|
|
305
|
+
- /url: https://www.drupal.org/subscribe
|
|
306
|
+
- listitem [ref=f14e306]:
|
|
307
|
+
- link "Security advisories" [ref=f14e307] [cursor=pointer]:
|
|
308
|
+
- /url: https://www.drupal.org/security
|
|
309
|
+
- listitem [ref=f14e308]:
|
|
310
|
+
- link "Jobs" [ref=f14e309] [cursor=pointer]:
|
|
311
|
+
- /url: https://jobs.drupal.org/
|
|
312
|
+
- heading "Our community" [level=4] [ref=f14e310]
|
|
313
|
+
- list [ref=f14e311]:
|
|
314
|
+
- listitem [ref=f14e312]:
|
|
315
|
+
- link "Community" [ref=f14e313] [cursor=pointer]:
|
|
316
|
+
- /url: https://www.drupal.org/community
|
|
317
|
+
- listitem [ref=f14e314]:
|
|
318
|
+
- generic [ref=f14e315]:
|
|
319
|
+
- link "Services" [ref=f14e316] [cursor=pointer]:
|
|
320
|
+
- /url: https://www.drupal.org/drupal-services
|
|
321
|
+
- text: ","
|
|
322
|
+
- link "Training" [ref=f14e317] [cursor=pointer]:
|
|
323
|
+
- /url: https://www.drupal.org/training
|
|
324
|
+
- text: "&"
|
|
325
|
+
- link "Hosting" [ref=f14e318] [cursor=pointer]:
|
|
326
|
+
- /url: https://www.drupal.org/hosting
|
|
327
|
+
- listitem [ref=f14e319]:
|
|
328
|
+
- link "Contributor guide" [ref=f14e320] [cursor=pointer]:
|
|
329
|
+
- /url: https://www.drupal.org/community/contributor-guide
|
|
330
|
+
- listitem [ref=f14e321]:
|
|
331
|
+
- link "Groups & meetups" [ref=f14e322] [cursor=pointer]:
|
|
332
|
+
- /url: https://groups.drupal.org/groups
|
|
333
|
+
- listitem [ref=f14e323]:
|
|
334
|
+
- link "DrupalCon" [ref=f14e324] [cursor=pointer]:
|
|
335
|
+
- /url: https://events.drupal.org
|
|
336
|
+
- listitem [ref=f14e325]:
|
|
337
|
+
- link "Code of conduct" [ref=f14e326] [cursor=pointer]:
|
|
338
|
+
- /url: https://www.drupal.org/dcoc
|
|
339
|
+
- heading "Documentation" [level=4] [ref=f14e327]
|
|
340
|
+
- list [ref=f14e328]:
|
|
341
|
+
- listitem [ref=f14e329]:
|
|
342
|
+
- link "Documentation" [ref=f14e330] [cursor=pointer]:
|
|
343
|
+
- /url: https://www.drupal.org/documentation
|
|
344
|
+
- listitem [ref=f14e331]:
|
|
345
|
+
- link "Drupal Guide" [ref=f14e332] [cursor=pointer]:
|
|
346
|
+
- /url: https://www.drupal.org/docs
|
|
347
|
+
- listitem [ref=f14e333]:
|
|
348
|
+
- link "Drupal User Guide" [ref=f14e334] [cursor=pointer]:
|
|
349
|
+
- /url: https://www.drupal.org/docs/user_guide/en/index.html
|
|
350
|
+
- listitem [ref=f14e335]:
|
|
351
|
+
- link "Developer docs" [ref=f14e336] [cursor=pointer]:
|
|
352
|
+
- /url: https://www.drupal.org/documentation/develop
|
|
353
|
+
- listitem [ref=f14e337]:
|
|
354
|
+
- link "API.Drupal.org" [ref=f14e338] [cursor=pointer]:
|
|
355
|
+
- /url: https://api.drupal.org/
|
|
356
|
+
- heading "Drupal code base" [level=4] [ref=f14e339]
|
|
357
|
+
- list [ref=f14e340]:
|
|
358
|
+
- listitem [ref=f14e341]:
|
|
359
|
+
- link "Download & Extend" [ref=f14e342] [cursor=pointer]:
|
|
360
|
+
- /url: https://www.drupal.org/download
|
|
361
|
+
- listitem [ref=f14e343]:
|
|
362
|
+
- link "Drupal core" [ref=f14e344] [cursor=pointer]:
|
|
363
|
+
- /url: https://www.drupal.org/project/drupal
|
|
364
|
+
- listitem [ref=f14e345]:
|
|
365
|
+
- link "Modules" [ref=f14e346] [cursor=pointer]:
|
|
366
|
+
- /url: https://www.drupal.org/project/project_module
|
|
367
|
+
- listitem [ref=f14e347]:
|
|
368
|
+
- link "Themes" [ref=f14e348] [cursor=pointer]:
|
|
369
|
+
- /url: https://www.drupal.org/project/project_theme
|
|
370
|
+
- listitem [ref=f14e349]:
|
|
371
|
+
- link "Distributions" [ref=f14e350] [cursor=pointer]:
|
|
372
|
+
- /url: https://www.drupal.org/project/project_distribution
|
|
373
|
+
- heading "Governance of community" [level=4] [ref=f14e351]
|
|
374
|
+
- list [ref=f14e352]:
|
|
375
|
+
- listitem [ref=f14e353]:
|
|
376
|
+
- link "About" [ref=f14e354] [cursor=pointer]:
|
|
377
|
+
- /url: https://www.drupal.org/about
|
|
378
|
+
- listitem [ref=f14e355]:
|
|
379
|
+
- link "Web accessibility" [ref=f14e356] [cursor=pointer]:
|
|
380
|
+
- /url: https://www.drupal.org/about/features/accessibility
|
|
381
|
+
- listitem [ref=f14e357]:
|
|
382
|
+
- link "Drupal Association" [ref=f14e358] [cursor=pointer]:
|
|
383
|
+
- /url: https://www.drupal.org/association
|
|
384
|
+
- listitem [ref=f14e359]:
|
|
385
|
+
- link "About Drupal.org" [ref=f14e360] [cursor=pointer]:
|
|
386
|
+
- /url: https://www.drupal.org/drupalorg
|
|
387
|
+
- listitem [ref=f14e361]:
|
|
388
|
+
- link "Terms of service" [ref=f14e362] [cursor=pointer]:
|
|
389
|
+
- /url: https://www.drupal.org/terms
|
|
390
|
+
- listitem [ref=f14e363]:
|
|
391
|
+
- link "Privacy policy" [ref=f14e364] [cursor=pointer]:
|
|
392
|
+
- /url: https://www.drupal.org/privacy
|
|
393
|
+
- paragraph [ref=f14e368]:
|
|
394
|
+
- text: Drupal is a
|
|
395
|
+
- link "registered trademark" [ref=f14e369] [cursor=pointer]:
|
|
396
|
+
- /url: /about/trademark
|
|
397
|
+
- text: of
|
|
398
|
+
- link "Dries Buytaert" [ref=f14e370] [cursor=pointer]:
|
|
399
|
+
- /url: https://dri.es
|
|
400
|
+
- text: .
|
package/AGENTS.md
CHANGED
|
@@ -109,7 +109,7 @@ step definitions. Critical takeaways:
|
|
|
109
109
|
|
|
110
110
|
## Source map
|
|
111
111
|
|
|
112
|
-
Step definitions: `tests/step-definitions/` —
|
|
112
|
+
Step definitions: `tests/step-definitions/` — 493 steps across 44
|
|
113
113
|
`*.steps.js` files, all auto-loaded, including the Drupal and Varbase packs
|
|
114
114
|
(`drupal-core`, `drupal-ckeditor`, `drupal-media`, `drupal-moderation`,
|
|
115
115
|
`drupal-layout-builder`, `drupal-paragraphs`, `drupal-canvas`, `varbase`)
|
package/CLAUDE.md
CHANGED
|
@@ -266,7 +266,7 @@ Some pairs look similar but cover different domains. NEVER merge:
|
|
|
266
266
|
|
|
267
267
|
## 5. File organisation
|
|
268
268
|
|
|
269
|
-
|
|
269
|
+
493 built-in steps across 44 step files. Cucumber auto-loads every
|
|
270
270
|
`*.steps.js` in `tests/step-definitions/`.
|
|
271
271
|
|
|
272
272
|
```
|
|
@@ -315,7 +315,7 @@ tests/step-definitions/
|
|
|
315
315
|
├── drupal-media.steps.js (4) # media library open / select / insert / submit dialog
|
|
316
316
|
├── drupal-moderation.steps.js (3)# moderation sidebar open + shows / does not show
|
|
317
317
|
├── drupal-paragraphs.steps.js (1)# choose a paragraph component in the add-widget dialog
|
|
318
|
-
├── varbase.steps.js (
|
|
318
|
+
├── varbase.steps.js (12) # Varbase: users, tour, theme settings, sticky header, a11y checker, warm-up
|
|
319
319
|
└── yaml.steps.js (38) # multi-doc, types, numerics, JSON Schema, diff
|
|
320
320
|
|
|
321
321
|
tests/features/ # 71 .feature files
|
package/docs/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Varbase E2E is a BDD-first browser-automation harness built on Playwright + Cucumber-js. Feature files in plain Gherkin; selectors that survive redesigns; smart waits that never sleep.
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**493 built-in steps** across **44 step files**, including the Drupal and Varbase packs. **282 example scenarios / 1,372 step executions** in the bundled suite, all green on chromium.
|
|
6
6
|
|
|
7
7
|
The full step catalogue — one page per category, generated from the step definitions themselves — is in **[`steps/`](steps/README.md)**.
|
|
8
8
|
|
|
@@ -39,7 +39,7 @@ The full step catalogue — one page per category, generated from the step defin
|
|
|
39
39
|
| [Install — DDEV](install-varbase-e2e/ddev-varbase-e2e.md) | DDEV-Varbase-E2E variant |
|
|
40
40
|
| [Global settings](global-settings.md) | `cucumber.js` `worldParameters` reference |
|
|
41
41
|
| [Step definitions](step-definitions.md) | Step-definition hub — what a step is, the rules, where the catalogue lives |
|
|
42
|
-
| [Step catalogue](steps/README.md) | All
|
|
42
|
+
| [Step catalogue](steps/README.md) | All 493 steps, 44 category pages under `steps/`, generated from the source |
|
|
43
43
|
| [API step definitions](api-step-definitions.md) | REST step definitions |
|
|
44
44
|
| [Advanced screenshots](advanced-screenshots.md) | Per-size, full-page, named (3 sub-pages under `advanced-screenshots/`) |
|
|
45
45
|
| [Advanced selectors](advanced-selectors.md) | Named selector registry, position assertions |
|
|
@@ -117,7 +117,7 @@ varbase-e2e/
|
|
|
117
117
|
│ ├── drupal-media.steps.js (4) # media library open / select / insert
|
|
118
118
|
│ ├── drupal-moderation.steps.js (3) # moderation sidebar open + assertions
|
|
119
119
|
│ ├── drupal-paragraphs.steps.js (1) # choose a paragraph component
|
|
120
|
-
│ ├── varbase.steps.js (
|
|
120
|
+
│ ├── varbase.steps.js (12) # Varbase users, tour, theme settings, a11y checker
|
|
121
121
|
│ ├── xml.steps.js (20) # XPath equals / contains / count / attr
|
|
122
122
|
│ └── yaml.steps.js (38) # multi-doc + types + numerics + JSON Schema + diff
|
|
123
123
|
├── examples/ <— Static HTML fixtures
|
package/docs/steps/README.md
CHANGED
|
@@ -4,7 +4,7 @@ Every step Varbase E2E ships, one page per category, generated from the step
|
|
|
4
4
|
definitions themselves — so the phrasing, the pattern and the examples on these
|
|
5
5
|
pages are exactly what the runner matches.
|
|
6
6
|
|
|
7
|
-
**
|
|
7
|
+
**493 steps across 44 categories.**
|
|
8
8
|
|
|
9
9
|
Cucumber-js loads every `*.steps.js` under `tests/step-definitions/`
|
|
10
10
|
automatically. You never `require()` a step file from a feature: write the
|
|
@@ -38,7 +38,7 @@ Steps for the Drupal and Varbase surfaces the team tests every day — the node
|
|
|
38
38
|
| Layout Builder | 17 | [`drupal-layout-builder.md`](drupal-layout-builder.md) |
|
|
39
39
|
| Paragraphs | 1 | [`drupal-paragraphs.md`](drupal-paragraphs.md) |
|
|
40
40
|
| Drupal Canvas | 12 | [`drupal-canvas.md`](drupal-canvas.md) |
|
|
41
|
-
| Varbase |
|
|
41
|
+
| Varbase | 12 | [`varbase.md`](varbase.md) |
|
|
42
42
|
|
|
43
43
|
**82 steps.**
|
|
44
44
|
|
package/docs/steps/varbase.md
CHANGED
|
@@ -15,11 +15,9 @@ Cucumber-js loads every `*.steps.js` in that directory automatically — you nev
|
|
|
15
15
|
| 7 | `When I close the tour` |
|
|
16
16
|
| 8 | `Then I should see the accessibility checker` |
|
|
17
17
|
| 9 | `When I close the accessibility checker` |
|
|
18
|
-
| 10 | `
|
|
19
|
-
| 11 | `Then the
|
|
20
|
-
| 12 | `
|
|
21
|
-
| 13 | `Then the "site header" should be sticky` |
|
|
22
|
-
| 14 | `Then the "site header" should have the "scrolled" class within 5 seconds` |
|
|
18
|
+
| 10 | `When I press the "desktop" responsive preview device button` |
|
|
19
|
+
| 11 | `Then the "site header" should be sticky` |
|
|
20
|
+
| 12 | `Then the "site header" should have the "scrolled" class within 5 seconds` |
|
|
23
21
|
|
|
24
22
|
---
|
|
25
23
|
|
|
@@ -256,64 +254,7 @@ Given I close the a11y checker
|
|
|
256
254
|
And we close the accessibility checker
|
|
257
255
|
```
|
|
258
256
|
|
|
259
|
-
## 10.
|
|
260
|
-
|
|
261
|
-
Verify the page header is "working".
|
|
262
|
-
|
|
263
|
-
On a Varbase site the Main navigation menu is rendered through the Drupal
|
|
264
|
-
Canvas global Header region, so a working header means those primary links
|
|
265
|
-
are present. Alter the links below to match your own site's main menu.
|
|
266
|
-
|
|
267
|
-
Example: Then the page should have a working header
|
|
268
|
-
|
|
269
|
-
**Keyword**: `Then`
|
|
270
|
-
|
|
271
|
-
**Pattern**
|
|
272
|
-
|
|
273
|
-
```js
|
|
274
|
-
/^(?:the page should have|(?:I |we )*should have) a working header$/
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
**Examples**
|
|
278
|
-
|
|
279
|
-
```gherkin
|
|
280
|
-
Then the page should have a working header
|
|
281
|
-
And I should have a working header
|
|
282
|
-
Then I should have a working header
|
|
283
|
-
And we should have a working header
|
|
284
|
-
Then the page should have a working header
|
|
285
|
-
```
|
|
286
|
-
|
|
287
|
-
## 11. Then the page should have a working footer
|
|
288
|
-
|
|
289
|
-
Verify the page footer is "working".
|
|
290
|
-
|
|
291
|
-
On a Varbase site the Secondary, Footer and Social media menus are rendered
|
|
292
|
-
through the Drupal Canvas global Footer region. A working footer means the
|
|
293
|
-
footer link text is present, the social profiles are linked, and the credits
|
|
294
|
-
and logos show. Alter the lines below to match your own site.
|
|
295
|
-
|
|
296
|
-
Example: Then the page should have a working footer
|
|
297
|
-
|
|
298
|
-
**Keyword**: `Then`
|
|
299
|
-
|
|
300
|
-
**Pattern**
|
|
301
|
-
|
|
302
|
-
```js
|
|
303
|
-
/^(?:the page should have|(?:I |we )*should have) a working footer$/
|
|
304
|
-
```
|
|
305
|
-
|
|
306
|
-
**Examples**
|
|
307
|
-
|
|
308
|
-
```gherkin
|
|
309
|
-
Then the page should have a working footer
|
|
310
|
-
And I should have a working footer
|
|
311
|
-
Then I should have a working footer
|
|
312
|
-
And we should have a working footer
|
|
313
|
-
Then the page should have a working footer
|
|
314
|
-
```
|
|
315
|
-
|
|
316
|
-
## 12. When I press the "desktop" responsive preview device button
|
|
257
|
+
## 10. When I press the "desktop" responsive preview device button
|
|
317
258
|
|
|
318
259
|
Press a responsive-preview device button (Drupal core Responsive preview).
|
|
319
260
|
|
|
@@ -338,7 +279,7 @@ And I press the "widescreen" responsive preview device button
|
|
|
338
279
|
When I press the "mobile" responsive preview device button
|
|
339
280
|
```
|
|
340
281
|
|
|
341
|
-
##
|
|
282
|
+
## 11. Then the "site header" should be sticky
|
|
342
283
|
|
|
343
284
|
Assert an element renders as a sticky element (CSS position: sticky).
|
|
344
285
|
|
|
@@ -364,7 +305,7 @@ And the "footer" should not be sticky
|
|
|
364
305
|
Then the "main content" should be sticky
|
|
365
306
|
```
|
|
366
307
|
|
|
367
|
-
##
|
|
308
|
+
## 12. Then the "site header" should have the "scrolled" class within 5 seconds
|
|
368
309
|
|
|
369
310
|
Assert a named element gains (or loses) a CSS class, with auto-retry.
|
|
370
311
|
|
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
|
});
|