@vardot/varbase-e2e 2.0.0 → 2.0.1
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-09T19-48-04-420Z.log +6 -0
- package/.playwright-mcp/console-2026-08-09T19-48-21-910Z.log +4 -0
- package/.playwright-mcp/console-2026-08-09T19-48-37-544Z.log +5 -0
- package/.playwright-mcp/console-2026-08-09T20-02-58-240Z.log +5 -0
- package/.playwright-mcp/console-2026-08-09T20-15-05-487Z.log +71 -0
- package/.playwright-mcp/console-2026-08-09T20-31-11-228Z.log +14 -0
- package/.playwright-mcp/console-2026-08-09T20-34-03-115Z.log +7 -0
- package/.playwright-mcp/console-2026-08-09T20-34-34-018Z.log +85 -0
- package/.playwright-mcp/console-2026-08-09T20-34-34-740Z.log +46 -0
- package/.playwright-mcp/console-2026-08-09T20-34-35-618Z.log +92 -0
- package/.playwright-mcp/console-2026-08-09T22-57-59-606Z.log +14 -0
- package/.playwright-mcp/console-2026-08-09T23-09-53-902Z.log +28 -0
- package/.playwright-mcp/console-2026-08-09T23-09-55-918Z.log +49 -0
- package/.playwright-mcp/console-2026-08-09T23-09-57-522Z.log +42 -0
- package/.playwright-mcp/console-2026-08-09T23-40-26-847Z.log +28 -0
- package/.playwright-mcp/console-2026-08-10T00-05-53-423Z.log +8 -0
- package/.playwright-mcp/page-2026-08-09T19-48-23-422Z.yml +288 -0
- package/.playwright-mcp/page-2026-08-09T19-48-32-827Z.yml +39 -0
- package/.playwright-mcp/page-2026-08-09T19-48-39-150Z.yml +39 -0
- package/.playwright-mcp/page-2026-08-09T19-50-55-594Z.yml +787 -0
- package/.playwright-mcp/page-2026-08-09T19-51-28-160Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-51-45-546Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-51-46-085Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-51-46-355Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-51-49-918Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-52-30-248Z.yml +415 -0
- package/.playwright-mcp/page-2026-08-09T19-52-42-510Z.yml +415 -0
- package/.playwright-mcp/page-2026-08-09T19-52-45-588Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-52-54-615Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-52-55-424Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-52-55-553Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-52-58-991Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-53-29-261Z.yml +415 -0
- package/.playwright-mcp/page-2026-08-09T19-53-40-322Z.yml +415 -0
- package/.playwright-mcp/page-2026-08-09T19-53-44-146Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-53-51-021Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-53-51-565Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-53-51-979Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-53-54-883Z.yml +391 -0
- package/.playwright-mcp/page-2026-08-09T19-54-24-537Z.yml +415 -0
- package/.playwright-mcp/page-2026-08-09T20-01-07-921Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-01-35-366Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-01-54-083Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-02-07-954Z.yml +416 -0
- package/.playwright-mcp/page-2026-08-09T20-02-24-800Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-02-29-695Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-02-33-819Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-02-41-437Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-02-53-232Z.yml +416 -0
- package/.playwright-mcp/page-2026-08-09T20-03-00-246Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-03-03-297Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-03-11-014Z.yml +404 -0
- package/.playwright-mcp/page-2026-08-09T20-03-21-049Z.yml +416 -0
- package/AGENTS.md +4 -2
- package/CLAUDE.md +22 -8
- package/docs/README.md +4 -3
- package/package.json +1 -1
- package/tests/step-definitions/action.steps.js +11 -3
- package/tests/step-definitions/drupal-layout-builder.steps.js +12 -5
- package/tests/step-definitions/drupal-media.steps.js +8 -1
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
- generic [active] [ref=f3e1]:
|
|
2
|
+
- generic:
|
|
3
|
+
- link "Skip to main content" [ref=f3e2] [cursor=pointer]:
|
|
4
|
+
- /url: "#content"
|
|
5
|
+
- link "Skip to search" [ref=f3e3] [cursor=pointer]:
|
|
6
|
+
- /url: "#search-block-form"
|
|
7
|
+
- navigation [ref=f3e5]:
|
|
8
|
+
- generic [ref=f3e6]:
|
|
9
|
+
- generic [ref=f3e7]:
|
|
10
|
+
- generic:
|
|
11
|
+
- generic:
|
|
12
|
+
- generic:
|
|
13
|
+
- list:
|
|
14
|
+
- listitem [ref=f3e8]:
|
|
15
|
+
- link "Drupal.org home" [ref=f3e9] [cursor=pointer]:
|
|
16
|
+
- /url: /home
|
|
17
|
+
- listitem [ref=f3e10]:
|
|
18
|
+
- link "Discover Drupal" [ref=f3e11] [cursor=pointer]:
|
|
19
|
+
- /url: https://www.drupal.org/about/overview/technical
|
|
20
|
+
- listitem [ref=f3e12]:
|
|
21
|
+
- link "Build with Drupal" [ref=f3e13] [cursor=pointer]:
|
|
22
|
+
- /url: https://www.drupal.org/docs/official_docs/local-development-guide
|
|
23
|
+
- listitem [ref=f3e14]:
|
|
24
|
+
- link "Partners & Services" [ref=f3e15] [cursor=pointer]:
|
|
25
|
+
- /url: https://www.drupal.org/drupal-services
|
|
26
|
+
- listitem [ref=f3e16]:
|
|
27
|
+
- link "Community" [ref=f3e17] [cursor=pointer]:
|
|
28
|
+
- /url: https://www.drupal.org/community
|
|
29
|
+
- listitem [ref=f3e18]:
|
|
30
|
+
- link "Support Drupal" [ref=f3e19] [cursor=pointer]:
|
|
31
|
+
- /url: /association
|
|
32
|
+
- listitem [ref=f3e20]:
|
|
33
|
+
- link "Get Started" [ref=f3e21] [cursor=pointer]:
|
|
34
|
+
- /url: /try-hosting
|
|
35
|
+
- generic [ref=f3e27]:
|
|
36
|
+
- heading "Search form" [level=2] [ref=f3e28]
|
|
37
|
+
- generic: Search
|
|
38
|
+
- button "Search" [ref=f3e31] [cursor=pointer]
|
|
39
|
+
- generic [ref=f3e32]:
|
|
40
|
+
- generic:
|
|
41
|
+
- generic:
|
|
42
|
+
- generic:
|
|
43
|
+
- list:
|
|
44
|
+
- listitem:
|
|
45
|
+
- link [ref=f3e33] [cursor=pointer]:
|
|
46
|
+
- /url: "#block-system-user-menu"
|
|
47
|
+
- img "Log in, view profile, and more" [ref=f3e34]
|
|
48
|
+
- link [ref=f3e39] [cursor=pointer]:
|
|
49
|
+
- /url: /
|
|
50
|
+
- img "Drupal.org" [ref=f3e40]
|
|
51
|
+
- generic [ref=f3e42]:
|
|
52
|
+
- generic [ref=f3e43]:
|
|
53
|
+
- navigation [ref=f3e45]:
|
|
54
|
+
- link "General projects" [ref=f3e47] [cursor=pointer]:
|
|
55
|
+
- /url: /project/project_general
|
|
56
|
+
- link "Varbase Project Template" [ref=f3e49] [cursor=pointer]:
|
|
57
|
+
- /url: /project/varbase_project
|
|
58
|
+
- link "Issues" [ref=f3e51] [cursor=pointer]:
|
|
59
|
+
- /url: /project/issues/varbase_project
|
|
60
|
+
- 'heading "task: Switch the Varbase functional testing suite to Varbase E2E on 9.2.x" [level=1] [ref=f3e52]'
|
|
61
|
+
- generic [ref=f3e53]:
|
|
62
|
+
- heading "Primary tabs" [level=2] [ref=f3e54]
|
|
63
|
+
- list [ref=f3e55]:
|
|
64
|
+
- listitem [ref=f3e56]:
|
|
65
|
+
- link "View (active tab)" [ref=f3e57] [cursor=pointer]:
|
|
66
|
+
- /url: /project/varbase_project/issues/3615713
|
|
67
|
+
- text: View
|
|
68
|
+
- generic [ref=f3e58]: (active tab)
|
|
69
|
+
- listitem [ref=f3e59]:
|
|
70
|
+
- link "Edit" [ref=f3e60] [cursor=pointer]:
|
|
71
|
+
- /url: /node/3615713/edit
|
|
72
|
+
- generic [ref=f3e61]:
|
|
73
|
+
- complementary [ref=f3e62]:
|
|
74
|
+
- generic [ref=f3e67]:
|
|
75
|
+
- generic [ref=f3e68]: Active
|
|
76
|
+
- generic [ref=f3e71]:
|
|
77
|
+
- generic [ref=f3e72]: "Project:"
|
|
78
|
+
- generic [ref=f3e73]: Varbase Project Template
|
|
79
|
+
- generic [ref=f3e75]:
|
|
80
|
+
- generic [ref=f3e76]: "Version:"
|
|
81
|
+
- generic [ref=f3e77]: 9.2.x-dev
|
|
82
|
+
- generic [ref=f3e79]:
|
|
83
|
+
- generic [ref=f3e80]: "Component:"
|
|
84
|
+
- generic [ref=f3e81]: Code
|
|
85
|
+
- generic [ref=f3e83]:
|
|
86
|
+
- generic [ref=f3e84]: "Priority:"
|
|
87
|
+
- generic [ref=f3e85]: Normal
|
|
88
|
+
- generic [ref=f3e87]:
|
|
89
|
+
- generic [ref=f3e88]: "Category:"
|
|
90
|
+
- generic [ref=f3e89]: Task
|
|
91
|
+
- generic [ref=f3e91]:
|
|
92
|
+
- generic [ref=f3e92]: "Assigned:"
|
|
93
|
+
- generic [ref=f3e93]: Unassigned
|
|
94
|
+
- generic [ref=f3e95]:
|
|
95
|
+
- generic [ref=f3e96]: "Reporter:"
|
|
96
|
+
- link "rajab natshah" [ref=f3e99] [cursor=pointer]:
|
|
97
|
+
- /url: /u/rajab-natshah
|
|
98
|
+
- generic [ref=f3e100]:
|
|
99
|
+
- generic [ref=f3e101]: "Created:"
|
|
100
|
+
- generic [ref=f3e102]: 9 Aug 2026 at 22:54 +03
|
|
101
|
+
- generic [ref=f3e104]:
|
|
102
|
+
- generic [ref=f3e105]: "Updated:"
|
|
103
|
+
- generic [ref=f3e106]: 9 Aug 2026 at 22:54 +03
|
|
104
|
+
- generic [ref=f3e108]:
|
|
105
|
+
- link "Following" [ref=f3e109] [cursor=pointer]:
|
|
106
|
+
- /url: /flag/unflag/project_issue_follow/3615713?destination=node/3615713&token=Si8owP4UUqm59BxlPtzMAGr0hNyjv8tfHNFl-OXzOAg
|
|
107
|
+
- text: 1 follower
|
|
108
|
+
- generic [ref=f3e111]:
|
|
109
|
+
- text: "Jump to comment:"
|
|
110
|
+
- link "Most recent" [ref=f3e112] [cursor=pointer]:
|
|
111
|
+
- /url: /project/varbase_project/issues/3615713#comment-16724237
|
|
112
|
+
- text: ","
|
|
113
|
+
- link "Add new" [ref=f3e113] [cursor=pointer]:
|
|
114
|
+
- /url: /project/varbase_project/issues/3615713#project-issue-ajax-form
|
|
115
|
+
- main [ref=f3e114]:
|
|
116
|
+
- generic [ref=f3e120]:
|
|
117
|
+
- generic [ref=f3e122]:
|
|
118
|
+
- generic [ref=f3e125]:
|
|
119
|
+
- heading "Problem/Motivation" [level=3] [ref=f3e126]
|
|
120
|
+
- paragraph [ref=f3e127]:
|
|
121
|
+
- text: The Varbase functional testing suite on this branch still depends on the previous testing package. The harness now ships as Varbase E2E (
|
|
122
|
+
- code [ref=f3e128]: "@vardot/varbase-e2e"
|
|
123
|
+
- text: 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.
|
|
124
|
+
- heading "Steps to reproduce" [level=4] [ref=f3e129]
|
|
125
|
+
- paragraph [ref=f3e130]:
|
|
126
|
+
- text: Run
|
|
127
|
+
- code [ref=f3e131]: grep -rn "VARBASE_E2E\|varbase-e2e" package.json cucumber.js
|
|
128
|
+
- text: on 9.2.x — it still points at the previous package.
|
|
129
|
+
- heading "Proposed resolution" [level=3] [ref=f3e132]
|
|
130
|
+
- list [ref=f3e133]:
|
|
131
|
+
- listitem [ref=f3e134]:
|
|
132
|
+
- text: Depend on
|
|
133
|
+
- code [ref=f3e135]: "@vardot/varbase-e2e ^2.0.0"
|
|
134
|
+
- text: ; update
|
|
135
|
+
- code [ref=f3e136]: cucumber.js
|
|
136
|
+
- text: require globs and the report script path.
|
|
137
|
+
- listitem [ref=f3e137]: Re-point custom step helper imports at the new package.
|
|
138
|
+
- listitem [ref=f3e138]: Remove custom steps now shipped as built-ins; keep only project-specific ones.
|
|
139
|
+
- listitem [ref=f3e139]:
|
|
140
|
+
- text: Rename env vars to the
|
|
141
|
+
- code [ref=f3e140]: VARBASE_E2E_*
|
|
142
|
+
- text: family across config/CI/DDEV.
|
|
143
|
+
- listitem [ref=f3e141]:
|
|
144
|
+
- text: Verify with
|
|
145
|
+
- code [ref=f3e142]: npx cucumber-js --dry-run
|
|
146
|
+
- text: (zero ambiguous/undefined), then CI.
|
|
147
|
+
- paragraph [ref=f3e143]:
|
|
148
|
+
- emphasis [ref=f3e144]: "AI-Generated: Yes"
|
|
149
|
+
- heading "Remaining tasks" [level=3] [ref=f3e145]
|
|
150
|
+
- list [ref=f3e146]:
|
|
151
|
+
- listitem [ref=f3e147]: ✅ File an issue
|
|
152
|
+
- listitem [ref=f3e148]: ❌ Addition/Change/Update/Fix
|
|
153
|
+
- listitem [ref=f3e149]: ❌ Testing to ensure no regression
|
|
154
|
+
- listitem [ref=f3e150]: ➖ Automated unit testing coverage
|
|
155
|
+
- listitem [ref=f3e151]: ❌ Automated functional testing coverage
|
|
156
|
+
- listitem [ref=f3e152]: ➖ UX/UI designer responsibilities
|
|
157
|
+
- listitem [ref=f3e153]: ❌ Readability
|
|
158
|
+
- listitem [ref=f3e154]: ➖ Accessibility
|
|
159
|
+
- listitem [ref=f3e155]: ➖ Performance
|
|
160
|
+
- listitem [ref=f3e156]: ➖ Security
|
|
161
|
+
- listitem [ref=f3e157]: ❌ Developer Documentation
|
|
162
|
+
- listitem [ref=f3e158]: ➖ User Guide Documentation
|
|
163
|
+
- listitem [ref=f3e159]: ➖ Reviewed by human
|
|
164
|
+
- listitem [ref=f3e160]: ➖ Code review by maintainers
|
|
165
|
+
- listitem [ref=f3e161]: ➖ Full testing and approval
|
|
166
|
+
- listitem [ref=f3e162]: ➖ Credit contributors
|
|
167
|
+
- listitem [ref=f3e163]: ➖ Review with the product owner
|
|
168
|
+
- listitem [ref=f3e164]: ➖ Release notes snippet
|
|
169
|
+
- listitem [ref=f3e165]: ❌ Release
|
|
170
|
+
- heading "User interface changes" [level=3] [ref=f3e166]
|
|
171
|
+
- list [ref=f3e167]:
|
|
172
|
+
- listitem [ref=f3e168]: N/A
|
|
173
|
+
- heading "API changes" [level=3] [ref=f3e169]
|
|
174
|
+
- list [ref=f3e170]:
|
|
175
|
+
- listitem [ref=f3e171]: N/A
|
|
176
|
+
- heading "Data model changes" [level=3] [ref=f3e172]
|
|
177
|
+
- list [ref=f3e173]:
|
|
178
|
+
- listitem [ref=f3e174]: N/A
|
|
179
|
+
- heading "Release notes snippet" [level=3] [ref=f3e175]
|
|
180
|
+
- list [ref=f3e176]:
|
|
181
|
+
- listitem [ref=f3e177]:
|
|
182
|
+
- text: The Varbase functional testing suite now runs on Varbase E2E (
|
|
183
|
+
- code [ref=f3e178]: "@vardot/varbase-e2e"
|
|
184
|
+
- text: 2.0.0).
|
|
185
|
+
- generic [ref=f3e179]:
|
|
186
|
+
- generic [ref=f3e375]:
|
|
187
|
+
- generic [ref=f3e376]:
|
|
188
|
+
- heading [level=3] [ref=f3e377]:
|
|
189
|
+
- text: Issue fork
|
|
190
|
+
- link "varbase_project-3615713" [ref=f3e378] [cursor=pointer]:
|
|
191
|
+
- /url: https://git.drupalcode.org/issue/varbase_project-3615713
|
|
192
|
+
- generic [ref=f3e379]: ✓ You have push access
|
|
193
|
+
- group:
|
|
194
|
+
- generic [ref=f3e383]:
|
|
195
|
+
- img "Command icon" [ref=f3e384]
|
|
196
|
+
- text: Show commands
|
|
197
|
+
- list [ref=f3e386]:
|
|
198
|
+
- listitem [ref=f3e387]:
|
|
199
|
+
- strong [ref=f3e388]:
|
|
200
|
+
- link "3615713-varbase-e2e" [ref=f3e389] [cursor=pointer]:
|
|
201
|
+
- /url: https://git.drupalcode.org/issue/varbase_project-3615713/-/tree/3615713-varbase-e2e
|
|
202
|
+
- link [ref=f3e390] [cursor=pointer]:
|
|
203
|
+
- /url: https://git.drupalcode.org/issue/varbase_project-3615713/-/compare/9.2.x...3615713-varbase-e2e
|
|
204
|
+
- img "Compare" [ref=f3e391]
|
|
205
|
+
- text: compare
|
|
206
|
+
- link "Hide branch" [ref=f3e392] [cursor=pointer]:
|
|
207
|
+
- /url: /drupalorg_toggle_branch_visibility/239030/3615713-varbase-e2e/hidden?token=lZ0AugERRWHJ0Qi-yKhQC5al9sjLpDhFk1aK-vx-sZ8&destination=system/ajax
|
|
208
|
+
- link "Create new branch" [ref=f3e394] [cursor=pointer]:
|
|
209
|
+
- /url: https://git.drupalcode.org/issue/varbase_project-3615713/-/branches/new?branch_name=3615713-&ref=9.2.x
|
|
210
|
+
- link "About issue forks" [ref=f3e193] [cursor=pointer]:
|
|
211
|
+
- /url: /docs/develop/git/using-gitlab-to-contribute-to-drupal/creating-issue-forks
|
|
212
|
+
- generic [ref=f3e194]:
|
|
213
|
+
- heading "Comments" [level=2] [ref=f3e195]
|
|
214
|
+
- generic [ref=f3e196]:
|
|
215
|
+
- heading [level=3]
|
|
216
|
+
- heading [level=3] [ref=f3e198]:
|
|
217
|
+
- 'link "Comment #1" [ref=f3e199] [cursor=pointer]':
|
|
218
|
+
- /url: /project/varbase_project/issues/3615713#comment-16724237
|
|
219
|
+
- generic [ref=f3e200]: Comment
|
|
220
|
+
- text: "#1"
|
|
221
|
+
- paragraph [ref=f3e205]:
|
|
222
|
+
- link "rajab natshah" [ref=f3e206] [cursor=pointer]:
|
|
223
|
+
- /url: /u/rajab-natshah
|
|
224
|
+
- text: created an issue.
|
|
225
|
+
- list [ref=f3e207]:
|
|
226
|
+
- listitem [ref=f3e208]:
|
|
227
|
+
- link "edit" [ref=f3e209] [cursor=pointer]:
|
|
228
|
+
- /url: /comment/16724237/edit
|
|
229
|
+
- listitem [ref=f3e210]:
|
|
230
|
+
- link "report as spam" [ref=f3e213] [cursor=pointer]:
|
|
231
|
+
- /url: /flag/flag/drupalorg_comment_spam/16724237?destination=node/3615713&token=HNJ6tT2n_8QrBDZwXf0hwXi-pyU_S7Wky6mir7xpJ-0
|
|
232
|
+
- complementary [ref=f3e214]:
|
|
233
|
+
- generic [ref=f3e216]:
|
|
234
|
+
- link "Contribution record" [ref=f3e220] [cursor=pointer]:
|
|
235
|
+
- /url: https://new.drupal.org/contribution-record?source_link=https%3A//www.drupal.org/node/3615713
|
|
236
|
+
- generic [ref=f3e225]:
|
|
237
|
+
- link "Add child issue" [ref=f3e226] [cursor=pointer]:
|
|
238
|
+
- /url: /node/add/project-issue/varbase_project?field_issue_parent_link=https%3A//www.drupal.org/node/3615713
|
|
239
|
+
- text: ","
|
|
240
|
+
- link "clone issue" [ref=f3e227] [cursor=pointer]:
|
|
241
|
+
- /url: /node/add/project-issue/varbase_project?title=task%3A%20Switch%20the%20Varbase%20functional%20testing%20suite%20to%20Varbase%20E2E%20on%209.2.x&field_issue_parent_link=https%3A//www.drupal.org/node/3615713&clone_body=1&categories=2&priorities=200&status=1&version=9.2.x-dev&component=Code&assigned=0&tags=
|
|
242
|
+
- text: ","
|
|
243
|
+
- link "add change notice" [ref=f3e228] [cursor=pointer]:
|
|
244
|
+
- /url: /node/add/changenotice?field_project=3401545&field_issue_links=https%3A//www.drupal.org/node/3615713
|
|
245
|
+
- complementary [ref=f3e229]:
|
|
246
|
+
- generic [ref=f3e233]:
|
|
247
|
+
- heading "Add new comment" [level=2] [ref=f3e234]
|
|
248
|
+
- generic [ref=f3e237]:
|
|
249
|
+
- group [ref=f3e238]:
|
|
250
|
+
- link "Show Issue metadata" [ref=f3e241] [cursor=pointer]:
|
|
251
|
+
- /url: "#"
|
|
252
|
+
- generic [ref=f3e242]: Show
|
|
253
|
+
- text: Issue metadata
|
|
254
|
+
- generic [ref=f3e246]:
|
|
255
|
+
- generic [ref=f3e247]:
|
|
256
|
+
- generic [ref=f3e248]: Comment
|
|
257
|
+
- generic [ref=f3e249]:
|
|
258
|
+
- toolbar [ref=f3e250]:
|
|
259
|
+
- button "Bold(B)" [ref=f3e251] [cursor=pointer]
|
|
260
|
+
- button "Italic(I)" [ref=f3e252] [cursor=pointer]
|
|
261
|
+
- button "Strike-through" [ref=f3e253] [cursor=pointer]
|
|
262
|
+
- button "Heading 2" [ref=f3e254] [cursor=pointer]
|
|
263
|
+
- button "Heading 3" [ref=f3e255] [cursor=pointer]
|
|
264
|
+
- button "Heading 4" [ref=f3e256] [cursor=pointer]
|
|
265
|
+
- button "Quote" [ref=f3e257] [cursor=pointer]
|
|
266
|
+
- button "code" [ref=f3e258] [cursor=pointer]
|
|
267
|
+
- button "PHP" [ref=f3e259] [cursor=pointer]
|
|
268
|
+
- button "Insert/edit image(M)" [ref=f3e260] [cursor=pointer]
|
|
269
|
+
- button "Insert/edit link(L)" [ref=f3e261] [cursor=pointer]
|
|
270
|
+
- button "Ordered list. Converts selected lines to a numbered list.(O)" [ref=f3e262] [cursor=pointer]
|
|
271
|
+
- button "Unordered list. Converts selected lines to a bulleted list.(U)" [ref=f3e263] [cursor=pointer]
|
|
272
|
+
- button "Get help on button functionality.(H)" [ref=f3e264] [cursor=pointer]
|
|
273
|
+
- textbox "Comment" [ref=f3e265]
|
|
274
|
+
- group "Show Text format" [ref=f3e267]:
|
|
275
|
+
- paragraph [ref=f3e269]:
|
|
276
|
+
- link "More information about text formats" [ref=f3e270] [cursor=pointer]:
|
|
277
|
+
- /url: /filter/tips
|
|
278
|
+
- group [ref=f3e271]:
|
|
279
|
+
- link "Show Issue summary & relationships" [ref=f3e274] [cursor=pointer]:
|
|
280
|
+
- /url: "#"
|
|
281
|
+
- generic [ref=f3e275]: Show
|
|
282
|
+
- text: Issue summary & relationships
|
|
283
|
+
- group [ref=f3e278]:
|
|
284
|
+
- link "Show Files" [ref=f3e281] [cursor=pointer]:
|
|
285
|
+
- /url: "#"
|
|
286
|
+
- generic [ref=f3e282]: Show
|
|
287
|
+
- text: Files
|
|
288
|
+
- paragraph [ref=f3e283]:
|
|
289
|
+
- text: Be sure to
|
|
290
|
+
- link "update the contribution record" [ref=f3e284] [cursor=pointer]:
|
|
291
|
+
- /url: https://new.drupal.org/contribution-record?source_link=https%3A//www.drupal.org/node/3615713
|
|
292
|
+
- generic [ref=f3e285]:
|
|
293
|
+
- button "Save" [ref=f3e286]
|
|
294
|
+
- button "Preview" [ref=f3e287]
|
|
295
|
+
- button "View changes" [ref=f3e288]
|
|
296
|
+
- contentinfo [ref=f3e289]:
|
|
297
|
+
- generic [ref=f3e290]:
|
|
298
|
+
- generic [ref=f3e293]:
|
|
299
|
+
- link [ref=f3e294] [cursor=pointer]:
|
|
300
|
+
- /url: https://www.tag1.com/?utm_source=DA&utm_medium=referral&utm_campaign=drupal-org-footer
|
|
301
|
+
- text: Infrastructure management for Drupal.org provided by
|
|
302
|
+
- img "Tag1 logo" [ref=f3e295]
|
|
303
|
+
- link "Need a Drupal 7 extended support partner? Consider Tag1." [ref=f3e297] [cursor=pointer]:
|
|
304
|
+
- /url: https://d7es.tag1.com/plans?utm_source=DA&utm_medium=footer&utm_campaign=EOL&utm_id=d7es&utm_term=plans&utm_content=Dec
|
|
305
|
+
- generic [ref=f3e298]:
|
|
306
|
+
- generic:
|
|
307
|
+
- generic:
|
|
308
|
+
- heading "News items" [level=4] [ref=f3e299]
|
|
309
|
+
- list [ref=f3e300]:
|
|
310
|
+
- listitem [ref=f3e301]:
|
|
311
|
+
- link "News" [ref=f3e302] [cursor=pointer]:
|
|
312
|
+
- /url: https://www.drupal.org/news
|
|
313
|
+
- listitem [ref=f3e303]:
|
|
314
|
+
- link "Planet Drupal" [ref=f3e304] [cursor=pointer]:
|
|
315
|
+
- /url: https://www.drupal.org/planet
|
|
316
|
+
- listitem [ref=f3e305]:
|
|
317
|
+
- link "Social media" [ref=f3e306] [cursor=pointer]:
|
|
318
|
+
- /url: https://www.drupal.org/about/media-kit/social-media
|
|
319
|
+
- listitem [ref=f3e307]:
|
|
320
|
+
- link "Sign up for Drupal news" [ref=f3e308] [cursor=pointer]:
|
|
321
|
+
- /url: https://www.drupal.org/subscribe
|
|
322
|
+
- listitem [ref=f3e309]:
|
|
323
|
+
- link "Security advisories" [ref=f3e310] [cursor=pointer]:
|
|
324
|
+
- /url: https://www.drupal.org/security
|
|
325
|
+
- listitem [ref=f3e311]:
|
|
326
|
+
- link "Jobs" [ref=f3e312] [cursor=pointer]:
|
|
327
|
+
- /url: https://jobs.drupal.org/
|
|
328
|
+
- heading "Our community" [level=4] [ref=f3e313]
|
|
329
|
+
- list [ref=f3e314]:
|
|
330
|
+
- listitem [ref=f3e315]:
|
|
331
|
+
- link "Community" [ref=f3e316] [cursor=pointer]:
|
|
332
|
+
- /url: https://www.drupal.org/community
|
|
333
|
+
- listitem [ref=f3e317]:
|
|
334
|
+
- generic [ref=f3e318]:
|
|
335
|
+
- link "Services" [ref=f3e319] [cursor=pointer]:
|
|
336
|
+
- /url: https://www.drupal.org/drupal-services
|
|
337
|
+
- text: ","
|
|
338
|
+
- link "Training" [ref=f3e320] [cursor=pointer]:
|
|
339
|
+
- /url: https://www.drupal.org/training
|
|
340
|
+
- text: "&"
|
|
341
|
+
- link "Hosting" [ref=f3e321] [cursor=pointer]:
|
|
342
|
+
- /url: https://www.drupal.org/hosting
|
|
343
|
+
- listitem [ref=f3e322]:
|
|
344
|
+
- link "Contributor guide" [ref=f3e323] [cursor=pointer]:
|
|
345
|
+
- /url: https://www.drupal.org/community/contributor-guide
|
|
346
|
+
- listitem [ref=f3e324]:
|
|
347
|
+
- link "Groups & meetups" [ref=f3e325] [cursor=pointer]:
|
|
348
|
+
- /url: https://groups.drupal.org/groups
|
|
349
|
+
- listitem [ref=f3e326]:
|
|
350
|
+
- link "DrupalCon" [ref=f3e327] [cursor=pointer]:
|
|
351
|
+
- /url: https://events.drupal.org
|
|
352
|
+
- listitem [ref=f3e328]:
|
|
353
|
+
- link "Code of conduct" [ref=f3e329] [cursor=pointer]:
|
|
354
|
+
- /url: https://www.drupal.org/dcoc
|
|
355
|
+
- heading "Documentation" [level=4] [ref=f3e330]
|
|
356
|
+
- list [ref=f3e331]:
|
|
357
|
+
- listitem [ref=f3e332]:
|
|
358
|
+
- link "Documentation" [ref=f3e333] [cursor=pointer]:
|
|
359
|
+
- /url: https://www.drupal.org/documentation
|
|
360
|
+
- listitem [ref=f3e334]:
|
|
361
|
+
- link "Drupal Guide" [ref=f3e335] [cursor=pointer]:
|
|
362
|
+
- /url: https://www.drupal.org/docs
|
|
363
|
+
- listitem [ref=f3e336]:
|
|
364
|
+
- link "Drupal User Guide" [ref=f3e337] [cursor=pointer]:
|
|
365
|
+
- /url: https://www.drupal.org/docs/user_guide/en/index.html
|
|
366
|
+
- listitem [ref=f3e338]:
|
|
367
|
+
- link "Developer docs" [ref=f3e339] [cursor=pointer]:
|
|
368
|
+
- /url: https://www.drupal.org/documentation/develop
|
|
369
|
+
- listitem [ref=f3e340]:
|
|
370
|
+
- link "API.Drupal.org" [ref=f3e341] [cursor=pointer]:
|
|
371
|
+
- /url: https://api.drupal.org/
|
|
372
|
+
- heading "Drupal code base" [level=4] [ref=f3e342]
|
|
373
|
+
- list [ref=f3e343]:
|
|
374
|
+
- listitem [ref=f3e344]:
|
|
375
|
+
- link "Download & Extend" [ref=f3e345] [cursor=pointer]:
|
|
376
|
+
- /url: https://www.drupal.org/download
|
|
377
|
+
- listitem [ref=f3e346]:
|
|
378
|
+
- link "Drupal core" [ref=f3e347] [cursor=pointer]:
|
|
379
|
+
- /url: https://www.drupal.org/project/drupal
|
|
380
|
+
- listitem [ref=f3e348]:
|
|
381
|
+
- link "Modules" [ref=f3e349] [cursor=pointer]:
|
|
382
|
+
- /url: https://www.drupal.org/project/project_module
|
|
383
|
+
- listitem [ref=f3e350]:
|
|
384
|
+
- link "Themes" [ref=f3e351] [cursor=pointer]:
|
|
385
|
+
- /url: https://www.drupal.org/project/project_theme
|
|
386
|
+
- listitem [ref=f3e352]:
|
|
387
|
+
- link "Distributions" [ref=f3e353] [cursor=pointer]:
|
|
388
|
+
- /url: https://www.drupal.org/project/project_distribution
|
|
389
|
+
- heading "Governance of community" [level=4] [ref=f3e354]
|
|
390
|
+
- list [ref=f3e355]:
|
|
391
|
+
- listitem [ref=f3e356]:
|
|
392
|
+
- link "About" [ref=f3e357] [cursor=pointer]:
|
|
393
|
+
- /url: https://www.drupal.org/about
|
|
394
|
+
- listitem [ref=f3e358]:
|
|
395
|
+
- link "Web accessibility" [ref=f3e359] [cursor=pointer]:
|
|
396
|
+
- /url: https://www.drupal.org/about/features/accessibility
|
|
397
|
+
- listitem [ref=f3e360]:
|
|
398
|
+
- link "Drupal Association" [ref=f3e361] [cursor=pointer]:
|
|
399
|
+
- /url: https://www.drupal.org/association
|
|
400
|
+
- listitem [ref=f3e362]:
|
|
401
|
+
- link "About Drupal.org" [ref=f3e363] [cursor=pointer]:
|
|
402
|
+
- /url: https://www.drupal.org/drupalorg
|
|
403
|
+
- listitem [ref=f3e364]:
|
|
404
|
+
- link "Terms of service" [ref=f3e365] [cursor=pointer]:
|
|
405
|
+
- /url: https://www.drupal.org/terms
|
|
406
|
+
- listitem [ref=f3e366]:
|
|
407
|
+
- link "Privacy policy" [ref=f3e367] [cursor=pointer]:
|
|
408
|
+
- /url: https://www.drupal.org/privacy
|
|
409
|
+
- paragraph [ref=f3e371]:
|
|
410
|
+
- text: Drupal is a
|
|
411
|
+
- link "registered trademark" [ref=f3e372] [cursor=pointer]:
|
|
412
|
+
- /url: /about/trademark
|
|
413
|
+
- text: of
|
|
414
|
+
- link "Dries Buytaert" [ref=f3e373] [cursor=pointer]:
|
|
415
|
+
- /url: https://dri.es
|
|
416
|
+
- text: .
|
package/AGENTS.md
CHANGED
|
@@ -133,8 +133,10 @@ Config: `cucumber.js` (`worldParameters`, annotated) and
|
|
|
133
133
|
`playwright.config.ts` (browser launch + context), plus the scaffold
|
|
134
134
|
template in `bin/init-varbase-e2e.js` that must mirror them.
|
|
135
135
|
|
|
136
|
-
Visual regression:
|
|
137
|
-
plugin
|
|
136
|
+
Visual regression: not in this repository — consumers install a step-pack
|
|
137
|
+
plugin such as [`@webship-js/diffy-steps`](https://github.com/webship/diffy-steps).
|
|
138
|
+
Third-party `*-steps` packs built for the harness this grew from work with
|
|
139
|
+
varbase-e2e unchanged.
|
|
138
140
|
|
|
139
141
|
## This repo is the package
|
|
140
142
|
|
package/CLAUDE.md
CHANGED
|
@@ -56,7 +56,7 @@ Env vars: `LAUNCH_URL`, `BROWSER`, `HEADLESS`, `SLOW_MO`, `FORCE_COLOR`,
|
|
|
56
56
|
`VARBASE_E2E_AUTO_SETTLE`, `VARBASE_E2E_REPORT_DISABLE`, `VARBASE_E2E_REPORT_ARGS`,
|
|
57
57
|
`VARBASE_E2E_FILTER_HOOK_LINES`, `VARBASE_E2E_SCREENSHOT_*`, `VARBASE_E2E_VIDEO*`,
|
|
58
58
|
`VARBASE_E2E_JS_ERROR_*`, `VARBASE_E2E_SELECTORS_OFFSET`,
|
|
59
|
-
`VARBASE_E2E_SELECTORS_BREAKPOINTS
|
|
59
|
+
`VARBASE_E2E_SELECTORS_BREAKPOINTS`. Every one of them mirrors a
|
|
60
60
|
`worldParameters` key in `cucumber.js` — that file is the annotated
|
|
61
61
|
reference; read it before inventing a new knob.
|
|
62
62
|
|
|
@@ -150,13 +150,27 @@ names matter more than they look.
|
|
|
150
150
|
|
|
151
151
|
### 2.6 Visual regression lives outside this repo
|
|
152
152
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
153
|
+
varbase-e2e ships no visual-regression steps: no
|
|
154
|
+
`tests/step-definitions-diffy/`, no `diffy` `worldParameters` block, no
|
|
155
|
+
mock Diffy API. Consumers who want visual regression install a
|
|
156
|
+
step-pack plugin and add its step-definition path to their own
|
|
157
|
+
`require:` list — the Diffy pack,
|
|
158
|
+
[`@webship-js/diffy-steps`](https://github.com/webship/diffy-steps), is
|
|
159
|
+
the reference example. Third-party `*-steps` packs built for the
|
|
160
|
+
harness this grew from work with varbase-e2e unchanged: they only ever
|
|
161
|
+
used `@cucumber/cucumber`, `axios`, and Node built-ins, none of which
|
|
162
|
+
this rename touched. Its `DIFFY_*` env vars belong to that plugin, not
|
|
163
|
+
to this package's `cucumber.js`.
|
|
164
|
+
|
|
165
|
+
```js
|
|
166
|
+
// consumer cucumber.js
|
|
167
|
+
require: [
|
|
168
|
+
'node_modules/@vardot/varbase-e2e/tests/step-definitions/**/*.js',
|
|
169
|
+
'node_modules/@webship-js/diffy-steps/tests/step-definitions/**/*.js',
|
|
170
|
+
'tests/step-definitions/**/*.js',
|
|
171
|
+
],
|
|
172
|
+
```
|
|
173
|
+
|
|
160
174
|
Treat any `diffy` question as a `diffy-steps` question.
|
|
161
175
|
|
|
162
176
|
### 2.7 CI
|
package/docs/README.md
CHANGED
|
@@ -44,9 +44,10 @@ The full step catalogue — one page per category, generated from the step defin
|
|
|
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 |
|
|
46
46
|
|
|
47
|
-
> **Visual regression moved out.**
|
|
48
|
-
>
|
|
49
|
-
> alongside varbase-e2e and add its step-definition path to `cucumber.js`.
|
|
47
|
+
> **Visual regression moved out.** It ships as a separate step-pack plugin —
|
|
48
|
+
> [`@webship-js/diffy-steps`](https://github.com/webship/diffy-steps) — install
|
|
49
|
+
> it alongside varbase-e2e and add its step-definition path to `cucumber.js`.
|
|
50
|
+
> `*-steps` packs built for the harness this grew from work unchanged.
|
|
50
51
|
|
|
51
52
|
## At a glance
|
|
52
53
|
|
package/package.json
CHANGED
|
@@ -44,10 +44,18 @@ 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
|
-
|
|
47
|
+
const btn = page.locator('button, input[type="button"], input[type="submit"], [role="button"], a')
|
|
48
48
|
.filter({ hasText: new RegExp('^' + esc + '$') })
|
|
49
|
-
.first()
|
|
50
|
-
|
|
49
|
+
.first();
|
|
50
|
+
try {
|
|
51
|
+
await btn.click({ timeout: 15000 });
|
|
52
|
+
} catch (e) {
|
|
53
|
+
// A fixed-position overlay (chat widgets, sticky action bars) can sit on
|
|
54
|
+
// top of a correctly-resolved button and starve the pointer click's
|
|
55
|
+
// actionability checks. The button itself is right — dispatch the click
|
|
56
|
+
// in-page so its handlers (including form submit) still fire.
|
|
57
|
+
await btn.evaluate((el) => el.click());
|
|
58
|
+
}
|
|
51
59
|
});
|
|
52
60
|
});
|
|
53
61
|
|
|
@@ -105,14 +105,21 @@ When(/^(?:I |we )*add section gutters$/, async function () {
|
|
|
105
105
|
* Example #5: When we select the "Edge to Edge" container type
|
|
106
106
|
*/
|
|
107
107
|
When(/^(?:I |we )*select the "([^"]*)" container type(?: with a "([^"]*)" width)?$/, async function (type, width) {
|
|
108
|
-
//
|
|
109
|
-
//
|
|
110
|
-
//
|
|
111
|
-
//
|
|
108
|
+
// A real Playwright click first: the LB config sidebar's radio labels are
|
|
109
|
+
// wired through Drupal AJAX behaviors, which a synthetic click can silently
|
|
110
|
+
// fail to trigger (see the identical issue fixed for "save the section").
|
|
111
|
+
// But on some Bootstrap Styles versions these labels are visually-hidden
|
|
112
|
+
// colour/type swatches, so the actionability checks time out even though the
|
|
113
|
+
// label is the right target — fall back to an in-page native click then
|
|
114
|
+
// (the label's own click handler still fires Drupal's behaviors).
|
|
112
115
|
const clickLabel = async (text, forPrefix) => {
|
|
113
116
|
const lbl = this.page.locator('label').filter({ hasText: text }).and(this.page.locator(`label[for*="${forPrefix}"]`)).first();
|
|
114
117
|
if (!(await lbl.count())) return false;
|
|
115
|
-
|
|
118
|
+
try {
|
|
119
|
+
await lbl.click({ timeout: 10000 });
|
|
120
|
+
} catch (e) {
|
|
121
|
+
await lbl.evaluate((el) => el.click());
|
|
122
|
+
}
|
|
116
123
|
return true;
|
|
117
124
|
};
|
|
118
125
|
if (!(await clickLabel(type, 'edit-layout-settings-ui-tab-content-layout-container-type'))) {
|
|
@@ -55,7 +55,14 @@ 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
|
-
|
|
58
|
+
try {
|
|
59
|
+
await btn.click({ timeout: 8000 });
|
|
60
|
+
} catch (e) {
|
|
61
|
+
// A stale jQuery UI overlay (ui-widget-overlay) from a previous dialog can
|
|
62
|
+
// intercept pointer events over a correctly-resolved button. The button is
|
|
63
|
+
// right - dispatch the click in-page so Drupal's AJAX handler still fires.
|
|
64
|
+
await btn.evaluate((el) => el.click());
|
|
65
|
+
}
|
|
59
66
|
await smartSettle(this.page, budget(this));
|
|
60
67
|
});
|
|
61
68
|
|