Issue #3618382: Give the booker message edit page its Edit tab, so the Translate tab is on it

Core renders no tab bar for a lone tab, so a derived tab needs a sibling before it appears. Config Translation derives the Translate tab for a booker message, and nothing declared the Edit task beside it, so the whole tab set came to nothing and the tab was absent from the page.

Every other configuration entity type in this module declares that task for the same reason, and the comments in yoyaku_ui.links.task.yml say so. yoyaku_message was added in [#3616523] without one.

It is not only a missing affordance. The field description on the message form tells an operator to translate the text on the Translate tab, and the documentation says the same, so the feature pointed at a tab that was not there.

Why the existing coverage missed it

The route existed, Config Translation discovered the mapper, and a language override on the message config object was read correctly at runtime. All three were asserted and all three passed while the tab was absent, because none of them is the rendered page. So the assertion added here is a browser one: the Translate link is on the edit page, and its Edit sibling is too. That needs Config Translation installed for the tab to be derived at all, so the class installs it and language with it.

Measured before and after on a real site: the tab set on that page goes from zero tabs to four.

Verification

Play the test-only changes job to see the new assertion fail against the unfixed code.

Merge request reports

Loading
Loading