Announce the webform handler's blocked-option notice, type the payment_lapsed action, and wait on a real signal in a browser test

Fixes three defects found while auditing the module file by file. See [#3623337] for the full write-up of each.

What changes

  • The webform handler's notice is a real message. OrchestraInteractionHandler::buildConfigurationForm() hand-built a div carrying messages messages--warning into the #suffix of the "Return to the workflow after submit" checkbox. Those classes are Claro's and Olivero's, not core's: core's own status-messages.html.twig emits no classes and carries the region's role, its aria-label and a visually-hidden heading instead. The checkbox is disabled, so the notice is the only way to learn why. It now renders through #theme: status_messages with #status_headings, which is what the template reads both the label and the heading out of.

  • payment_lapsed declares its settings schema type. A timeout's settings key, and a timer rung's, is typed orchestra.timeout_action.[%parent.action], with no wildcard behind it. The kernel types its own settings-less action for exactly that reason (orchestra.timeout_action.unclaim); orchestra_payment now does the same.

  • A browser test waits on a signal the page emits. CompositeConditionTest waited on .messages, a class stark does not emit, so each wait ran to its ten-second default and returned NULL unchecked: the assertion after it was separated from the Save click by a sleep rather than by the page coming back. It waits for the sentence the form posts, and asserts it.

Both strings the change adds are translated in the catalog of the project that writes them; "Warning message" takes core's own French, so the one string table locale keeps cannot hold two answers for it.

Tests

  • ExampleConfigSchemaTest gains an assertion that every timeout action orchestra_payment provides declares a schema type, naming the set so it cannot pass by finding nothing to check. It fails against the unpatched schema.
  • WebformTaskReviewTest asserted messages messages--warning, which passed only because the markup was hand-built. It now asserts the aria-label, the visually-hidden heading and the sentence of one region: never the role, which core 12 changed from contentinfo to alert, and never the theme class, which is absent under the theme the test runs in.
  • The two browser waits become assertions, so a save that never lands fails where it happened.

Not in this MR

An earlier revision also put nineteen #markup values back on the project's '<p>' . $this->t(...) . '</p>' shape, with a standing assertion over every shipped class. Where a rendered value's markup belongs is a question about the templates that print it, so it is answered there rather than by wrapping each value in the class that hands it over. That revision is reverted whole.

Edited by Frank Mably

Merge request reports

Loading
Loading