@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.
Files changed (195) hide show
  1. package/.playwright-mcp/console-2026-08-10T08-51-59-747Z.log +5 -0
  2. package/.playwright-mcp/console-2026-08-10T09-00-26-735Z.log +7 -0
  3. package/.playwright-mcp/console-2026-08-10T23-16-14-142Z.log +5 -0
  4. package/.playwright-mcp/console-2026-08-10T23-28-18-329Z.log +54 -0
  5. package/.playwright-mcp/console-2026-08-11T00-25-10-092Z.log +7 -0
  6. package/.playwright-mcp/page-2026-08-10T01-04-54-039Z.yml +410 -0
  7. package/.playwright-mcp/page-2026-08-10T01-05-06-967Z.png +0 -0
  8. package/.playwright-mcp/page-2026-08-10T01-05-52-136Z.yml +720 -0
  9. package/.playwright-mcp/page-2026-08-10T01-06-05-985Z.yml +410 -0
  10. package/.playwright-mcp/page-2026-08-10T01-06-25-942Z.yml +726 -0
  11. package/.playwright-mcp/page-2026-08-10T01-25-57-152Z.yml +395 -0
  12. package/.playwright-mcp/page-2026-08-10T01-26-48-853Z.yml +395 -0
  13. package/.playwright-mcp/page-2026-08-10T01-27-47-127Z.yml +413 -0
  14. package/.playwright-mcp/page-2026-08-10T01-27-57-349Z.yml +413 -0
  15. package/.playwright-mcp/page-2026-08-10T01-28-07-943Z.yml +425 -0
  16. package/.playwright-mcp/page-2026-08-10T01-28-30-462Z.yml +369 -0
  17. package/.playwright-mcp/page-2026-08-10T01-29-00-369Z.yml +413 -0
  18. package/.playwright-mcp/page-2026-08-10T01-29-08-988Z.yml +413 -0
  19. package/.playwright-mcp/page-2026-08-10T01-29-19-888Z.yml +425 -0
  20. package/.playwright-mcp/page-2026-08-10T01-29-30-189Z.yml +369 -0
  21. package/.playwright-mcp/page-2026-08-10T01-30-08-272Z.yml +413 -0
  22. package/.playwright-mcp/page-2026-08-10T01-30-16-955Z.yml +413 -0
  23. package/.playwright-mcp/page-2026-08-10T01-30-27-612Z.yml +425 -0
  24. package/.playwright-mcp/page-2026-08-10T01-30-37-943Z.yml +465 -0
  25. package/.playwright-mcp/page-2026-08-10T01-31-15-265Z.yml +413 -0
  26. package/.playwright-mcp/page-2026-08-10T01-31-24-328Z.yml +413 -0
  27. package/.playwright-mcp/page-2026-08-10T01-31-36-622Z.yml +425 -0
  28. package/.playwright-mcp/page-2026-08-10T01-31-45-965Z.yml +470 -0
  29. package/.playwright-mcp/page-2026-08-10T01-32-13-400Z.yml +413 -0
  30. package/.playwright-mcp/page-2026-08-10T01-32-23-469Z.yml +413 -0
  31. package/.playwright-mcp/page-2026-08-10T01-32-33-859Z.yml +425 -0
  32. package/.playwright-mcp/page-2026-08-10T01-32-43-461Z.yml +513 -0
  33. package/.playwright-mcp/page-2026-08-10T01-33-13-160Z.yml +413 -0
  34. package/.playwright-mcp/page-2026-08-10T01-33-23-937Z.yml +413 -0
  35. package/.playwright-mcp/page-2026-08-10T01-33-35-367Z.yml +425 -0
  36. package/.playwright-mcp/page-2026-08-10T01-33-47-266Z.yml +459 -0
  37. package/.playwright-mcp/page-2026-08-10T01-34-14-452Z.yml +413 -0
  38. package/.playwright-mcp/page-2026-08-10T01-34-26-042Z.yml +413 -0
  39. package/.playwright-mcp/page-2026-08-10T01-34-40-869Z.yml +425 -0
  40. package/.playwright-mcp/page-2026-08-10T01-34-49-587Z.yml +391 -0
  41. package/.playwright-mcp/page-2026-08-10T01-35-16-735Z.yml +413 -0
  42. package/.playwright-mcp/page-2026-08-10T01-35-24-882Z.yml +413 -0
  43. package/.playwright-mcp/page-2026-08-10T01-35-36-165Z.yml +425 -0
  44. package/.playwright-mcp/page-2026-08-10T01-35-45-644Z.yml +455 -0
  45. package/.playwright-mcp/page-2026-08-10T01-36-18-148Z.yml +413 -0
  46. package/.playwright-mcp/page-2026-08-10T01-36-26-751Z.yml +413 -0
  47. package/.playwright-mcp/page-2026-08-10T01-36-37-834Z.yml +425 -0
  48. package/.playwright-mcp/page-2026-08-10T01-36-48-078Z.yml +370 -0
  49. package/.playwright-mcp/page-2026-08-10T01-37-16-309Z.yml +413 -0
  50. package/.playwright-mcp/page-2026-08-10T01-37-28-723Z.yml +413 -0
  51. package/.playwright-mcp/page-2026-08-10T01-37-39-325Z.yml +425 -0
  52. package/.playwright-mcp/page-2026-08-10T01-37-48-278Z.yml +409 -0
  53. package/.playwright-mcp/page-2026-08-10T01-38-27-405Z.yml +413 -0
  54. package/.playwright-mcp/page-2026-08-10T01-38-36-994Z.yml +413 -0
  55. package/.playwright-mcp/page-2026-08-10T01-38-49-584Z.yml +425 -0
  56. package/.playwright-mcp/page-2026-08-10T01-38-59-289Z.yml +396 -0
  57. package/.playwright-mcp/page-2026-08-10T01-39-24-880Z.yml +413 -0
  58. package/.playwright-mcp/page-2026-08-10T01-39-35-551Z.yml +413 -0
  59. package/.playwright-mcp/page-2026-08-10T01-39-47-960Z.yml +425 -0
  60. package/.playwright-mcp/page-2026-08-10T01-39-56-844Z.yml +549 -0
  61. package/.playwright-mcp/page-2026-08-10T01-40-24-645Z.yml +413 -0
  62. package/.playwright-mcp/page-2026-08-10T01-40-33-806Z.yml +413 -0
  63. package/.playwright-mcp/page-2026-08-10T01-40-46-946Z.yml +425 -0
  64. package/.playwright-mcp/page-2026-08-10T01-40-56-503Z.yml +443 -0
  65. package/.playwright-mcp/page-2026-08-10T01-41-32-064Z.yml +413 -0
  66. package/.playwright-mcp/page-2026-08-10T01-41-40-666Z.yml +413 -0
  67. package/.playwright-mcp/page-2026-08-10T01-41-51-325Z.yml +425 -0
  68. package/.playwright-mcp/page-2026-08-10T01-41-58-790Z.yml +368 -0
  69. package/.playwright-mcp/page-2026-08-10T01-42-26-459Z.yml +413 -0
  70. package/.playwright-mcp/page-2026-08-10T01-42-38-306Z.yml +413 -0
  71. package/.playwright-mcp/page-2026-08-10T01-42-49-073Z.yml +425 -0
  72. package/.playwright-mcp/page-2026-08-10T01-42-57-453Z.yml +443 -0
  73. package/.playwright-mcp/page-2026-08-10T01-43-32-099Z.yml +413 -0
  74. package/.playwright-mcp/page-2026-08-10T01-43-42-882Z.yml +413 -0
  75. package/.playwright-mcp/page-2026-08-10T01-43-54-853Z.yml +425 -0
  76. package/.playwright-mcp/page-2026-08-10T01-44-04-373Z.yml +399 -0
  77. package/.playwright-mcp/page-2026-08-10T01-44-30-874Z.yml +413 -0
  78. package/.playwright-mcp/page-2026-08-10T01-44-39-830Z.yml +413 -0
  79. package/.playwright-mcp/page-2026-08-10T01-44-51-515Z.yml +425 -0
  80. package/.playwright-mcp/page-2026-08-10T01-44-59-974Z.yml +503 -0
  81. package/.playwright-mcp/page-2026-08-10T01-45-26-748Z.yml +413 -0
  82. package/.playwright-mcp/page-2026-08-10T01-45-36-685Z.yml +413 -0
  83. package/.playwright-mcp/page-2026-08-10T01-45-47-715Z.yml +425 -0
  84. package/.playwright-mcp/page-2026-08-10T01-45-57-895Z.yml +469 -0
  85. package/.playwright-mcp/page-2026-08-10T01-46-36-371Z.yml +413 -0
  86. package/.playwright-mcp/page-2026-08-10T01-46-49-906Z.yml +413 -0
  87. package/.playwright-mcp/page-2026-08-10T01-47-01-554Z.yml +425 -0
  88. package/.playwright-mcp/page-2026-08-10T01-47-12-712Z.yml +581 -0
  89. package/.playwright-mcp/page-2026-08-10T01-47-39-024Z.yml +413 -0
  90. package/.playwright-mcp/page-2026-08-10T01-47-49-714Z.yml +413 -0
  91. package/.playwright-mcp/page-2026-08-10T01-48-00-608Z.yml +425 -0
  92. package/.playwright-mcp/page-2026-08-10T01-48-09-739Z.yml +604 -0
  93. package/.playwright-mcp/page-2026-08-10T01-48-51-940Z.yml +413 -0
  94. package/.playwright-mcp/page-2026-08-10T01-49-01-562Z.yml +413 -0
  95. package/.playwright-mcp/page-2026-08-10T01-49-13-751Z.yml +425 -0
  96. package/.playwright-mcp/page-2026-08-10T01-49-22-503Z.yml +400 -0
  97. package/.playwright-mcp/page-2026-08-10T01-49-49-311Z.yml +413 -0
  98. package/.playwright-mcp/page-2026-08-10T01-50-00-769Z.yml +413 -0
  99. package/.playwright-mcp/page-2026-08-10T01-50-12-083Z.yml +425 -0
  100. package/.playwright-mcp/page-2026-08-10T01-50-23-765Z.yml +458 -0
  101. package/.playwright-mcp/page-2026-08-10T01-51-02-339Z.yml +413 -0
  102. package/.playwright-mcp/page-2026-08-10T01-51-12-711Z.yml +413 -0
  103. package/.playwright-mcp/page-2026-08-10T01-51-25-370Z.yml +425 -0
  104. package/.playwright-mcp/page-2026-08-10T01-51-33-936Z.yml +368 -0
  105. package/.playwright-mcp/page-2026-08-10T01-52-09-467Z.yml +413 -0
  106. package/.playwright-mcp/page-2026-08-10T01-52-21-616Z.yml +413 -0
  107. package/.playwright-mcp/page-2026-08-10T01-52-32-806Z.yml +425 -0
  108. package/.playwright-mcp/page-2026-08-10T01-52-42-382Z.yml +407 -0
  109. package/.playwright-mcp/page-2026-08-10T01-53-11-994Z.yml +413 -0
  110. package/.playwright-mcp/page-2026-08-10T01-53-21-669Z.yml +413 -0
  111. package/.playwright-mcp/page-2026-08-10T01-53-33-141Z.yml +425 -0
  112. package/.playwright-mcp/page-2026-08-10T01-53-43-582Z.yml +443 -0
  113. package/.playwright-mcp/page-2026-08-10T01-54-19-884Z.yml +413 -0
  114. package/.playwright-mcp/page-2026-08-10T01-54-32-359Z.yml +413 -0
  115. package/.playwright-mcp/page-2026-08-10T01-54-43-530Z.yml +425 -0
  116. package/.playwright-mcp/page-2026-08-10T01-54-53-891Z.yml +474 -0
  117. package/.playwright-mcp/page-2026-08-10T01-55-24-634Z.yml +413 -0
  118. package/.playwright-mcp/page-2026-08-10T01-55-35-283Z.yml +413 -0
  119. package/.playwright-mcp/page-2026-08-10T01-55-46-649Z.yml +425 -0
  120. package/.playwright-mcp/page-2026-08-10T01-55-56-585Z.yml +431 -0
  121. package/.playwright-mcp/page-2026-08-10T01-56-31-670Z.yml +413 -0
  122. package/.playwright-mcp/page-2026-08-10T01-56-40-782Z.yml +413 -0
  123. package/.playwright-mcp/page-2026-08-10T01-56-52-065Z.yml +425 -0
  124. package/.playwright-mcp/page-2026-08-10T01-57-03-705Z.yml +445 -0
  125. package/.playwright-mcp/page-2026-08-10T01-57-31-390Z.yml +413 -0
  126. package/.playwright-mcp/page-2026-08-10T01-57-44-756Z.yml +413 -0
  127. package/.playwright-mcp/page-2026-08-10T01-57-56-802Z.yml +425 -0
  128. package/.playwright-mcp/page-2026-08-10T01-58-06-937Z.yml +468 -0
  129. package/.playwright-mcp/page-2026-08-10T01-58-40-595Z.yml +413 -0
  130. package/.playwright-mcp/page-2026-08-10T01-58-51-715Z.yml +413 -0
  131. package/.playwright-mcp/page-2026-08-10T01-59-04-402Z.yml +425 -0
  132. package/.playwright-mcp/page-2026-08-10T01-59-15-638Z.yml +472 -0
  133. package/.playwright-mcp/page-2026-08-10T01-59-58-162Z.yml +413 -0
  134. package/.playwright-mcp/page-2026-08-10T02-00-09-962Z.yml +413 -0
  135. package/.playwright-mcp/page-2026-08-10T02-00-21-468Z.yml +425 -0
  136. package/.playwright-mcp/page-2026-08-10T02-00-33-248Z.yml +451 -0
  137. package/.playwright-mcp/page-2026-08-10T02-01-15-418Z.yml +413 -0
  138. package/.playwright-mcp/page-2026-08-10T02-01-27-182Z.yml +413 -0
  139. package/.playwright-mcp/page-2026-08-10T02-01-38-250Z.yml +425 -0
  140. package/.playwright-mcp/page-2026-08-10T04-20-27-979Z.yml +513 -0
  141. package/.playwright-mcp/page-2026-08-10T04-20-41-431Z.yml +513 -0
  142. package/.playwright-mcp/page-2026-08-10T04-21-46-133Z.yml +406 -0
  143. package/.playwright-mcp/page-2026-08-10T04-22-10-938Z.yml +406 -0
  144. package/.playwright-mcp/page-2026-08-10T04-23-00-626Z.yml +406 -0
  145. package/.playwright-mcp/page-2026-08-10T04-23-19-844Z.yml +418 -0
  146. package/.playwright-mcp/page-2026-08-10T04-25-00-732Z.yml +455 -0
  147. package/.playwright-mcp/page-2026-08-10T04-25-35-125Z.yml +412 -0
  148. package/.playwright-mcp/page-2026-08-10T04-25-46-640Z.yml +412 -0
  149. package/.playwright-mcp/page-2026-08-10T04-25-55-092Z.yml +549 -0
  150. package/.playwright-mcp/page-2026-08-10T04-26-26-403Z.yml +406 -0
  151. package/.playwright-mcp/page-2026-08-10T04-26-40-673Z.yml +406 -0
  152. package/.playwright-mcp/page-2026-08-10T04-26-48-427Z.yml +604 -0
  153. package/.playwright-mcp/page-2026-08-10T04-27-23-584Z.yml +408 -0
  154. package/.playwright-mcp/page-2026-08-10T04-27-34-294Z.yml +408 -0
  155. package/.playwright-mcp/page-2026-08-10T04-27-42-299Z.yml +443 -0
  156. package/.playwright-mcp/page-2026-08-10T04-28-20-032Z.yml +406 -0
  157. package/.playwright-mcp/page-2026-08-10T04-28-32-275Z.yml +406 -0
  158. package/.playwright-mcp/page-2026-08-10T04-28-41-592Z.yml +581 -0
  159. package/.playwright-mcp/page-2026-08-10T04-29-19-972Z.yml +414 -0
  160. package/.playwright-mcp/page-2026-08-10T04-29-30-961Z.yml +414 -0
  161. package/.playwright-mcp/page-2026-08-10T04-29-39-044Z.yml +465 -0
  162. package/.playwright-mcp/page-2026-08-10T04-30-13-196Z.yml +402 -0
  163. package/.playwright-mcp/page-2026-08-10T04-30-24-867Z.yml +402 -0
  164. package/.playwright-mcp/page-2026-08-10T04-30-32-372Z.yml +409 -0
  165. package/.playwright-mcp/page-2026-08-10T04-31-06-199Z.yml +402 -0
  166. package/.playwright-mcp/page-2026-08-10T04-31-17-733Z.yml +402 -0
  167. package/.playwright-mcp/page-2026-08-10T04-31-26-296Z.yml +445 -0
  168. package/.playwright-mcp/page-2026-08-10T04-32-02-456Z.yml +402 -0
  169. package/.playwright-mcp/page-2026-08-10T04-32-14-091Z.yml +402 -0
  170. package/.playwright-mcp/page-2026-08-10T04-32-23-437Z.yml +396 -0
  171. package/.playwright-mcp/page-2026-08-10T04-32-58-401Z.yml +403 -0
  172. package/.playwright-mcp/page-2026-08-10T04-33-09-818Z.yml +403 -0
  173. package/.playwright-mcp/page-2026-08-10T04-33-20-858Z.yml +468 -0
  174. package/.playwright-mcp/page-2026-08-10T04-33-53-074Z.yml +407 -0
  175. package/.playwright-mcp/page-2026-08-10T04-34-05-806Z.yml +407 -0
  176. package/.playwright-mcp/page-2026-08-10T08-52-00-165Z.yml +0 -0
  177. package/.playwright-mcp/page-2026-08-10T08-52-17-430Z.yml +410 -0
  178. package/.playwright-mcp/page-2026-08-10T23-16-15-081Z.yml +0 -0
  179. package/.playwright-mcp/page-2026-08-10T23-20-02-756Z.yml +414 -0
  180. package/.playwright-mcp/page-2026-08-10T23-55-02-223Z.yml +367 -0
  181. package/.playwright-mcp/page-2026-08-10T23-55-35-161Z.yml +402 -0
  182. package/.playwright-mcp/page-2026-08-11T00-31-06-810Z.yml +368 -0
  183. package/.playwright-mcp/page-2026-08-11T00-31-42-579Z.yml +400 -0
  184. package/.playwright-mcp/page-2026-08-11T00-37-22-611Z.yml +367 -0
  185. package/.playwright-mcp/page-2026-08-11T00-38-00-092Z.yml +400 -0
  186. package/AGENTS.md +1 -1
  187. package/CLAUDE.md +2 -2
  188. package/docs/README.md +3 -3
  189. package/docs/steps/README.md +2 -2
  190. package/docs/steps/varbase.md +6 -65
  191. package/package.json +1 -1
  192. package/tests/step-definitions/action.steps.js +12 -5
  193. package/tests/step-definitions/drupal-layout-builder.steps.js +36 -2
  194. package/tests/step-definitions/drupal-media.steps.js +23 -6
  195. 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/` — 495 steps across 44
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
- 495 built-in steps across 44 step files. Cucumber auto-loads every
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 (14) # Varbase: users, tour, theme settings, sticky header, a11y checker, warm-up
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
- **495 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.
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 495 steps, 44 category pages under `steps/`, generated from the source |
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 (14) # Varbase users, tour, theme settings, a11y checker
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
@@ -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
- **495 steps across 44 categories.**
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 | 14 | [`varbase.md`](varbase.md) |
41
+ | Varbase | 12 | [`varbase.md`](varbase.md) |
42
42
 
43
43
  **82 steps.**
44
44
 
@@ -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 | `Then the page should have a working header` |
19
- | 11 | `Then the page should have a working footer` |
20
- | 12 | `When I press the "desktop" responsive preview device button` |
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. Then the page should have a working header
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
- ## 13. Then the "site header" should be sticky
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
- ## 14. Then the "site header" should have the "scrolled" class within 5 seconds
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vardot/varbase-e2e",
3
- "version": "2.0.1",
3
+ "version": "2.0.3",
4
4
  "description": "Varbase E2E automated functional testing.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -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 btn = page.locator('button, input[type="button"], input[type="submit"], [role="button"], a')
48
- .filter({ hasText: new RegExp('^' + esc + '$') })
49
- .first();
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: 15000 });
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
  });