Draft: GitLab fixes for the @gitlab/ui bootstrap-vue template rewrite (do not merge)
⚠️ Disclaimer: 100% AI-generatedEvery line of this MR was written by Claude (Opus 5.5) in Claude Code, directed and supervised by @xanf. Do not merge. This is the consumer-side companion of the
@gitlab/uidraft gitlab-org/gitlab-services/design.gitlab.com!6550 (replace the vendored bootstrap-vue render-function implementation with Vue-3-portable templates).
What this is
The bot integration MR !264131 points @gitlab/ui at the
draft's package build. This MR is that same integration commit plus the GitLab-side spec/code fixes the draft
needs, so the full suite (pipeline:run-all-jest, pipeline:run-all-rspec) can be green in one place.
Fixes on top of the integration commit
Each passes with the released @gitlab/ui too (except the SLA snapshot line in 4) and can land on master before the bump.
- Check hidden lazy modals by text instead of empty HTML: VTU 2 serializes the hidden modal's
v-ifplaceholder as<!---->; the DOM is unchanged. - Use GlDropdown public methods instead of its internal dropdown ref (blocking for the bump): 4 components used
GlDropdown's private
$refs.dropdown; without this the alert sidebar "Edit" assignee button silently stops opening its menu. Falls back on releases without the publicupdatePopper(). - Find GlTable header cells by element instead of component (AI settings tables).
- Check lazy GlTab stubs independently of the prop declaration (MR dashboard lazy tab, SLA snapshot).
- Mount real tabs in the DevOps adoption app spec.
- Use Vue 2 transition class attribute names in snapshots (serializer, one snapshot for both jest lanes).
- Find GlTable body rows by element instead of component (AI settings tables, alert management table).
Result
Pipeline https://gitlab.com/gitlab-org/gitlab/-/pipelines/2977009348 on the package of the final series of
gitlab-org/gitlab-services/design.gitlab.com!6550: every jest job (Vue 2,
Vue 3, fixtures, integration) and every rspec job (unit, integration, migration, system 27/27, ee system 15/15, …)
passed; e2e child pipelines passed. Red only: untamper-my-lockfile (cannot parse the package tarball URL, as on
every integration MR), the start-as-if-foss bridge, and allow-failure bundle-size-review / pajamas_adoption.