Drop the tests that scan source files instead of exercising code, and retranslate two French strings

Closes [#3624520].

The tests

Ten classes deleted, about 59 tests and 3,429 lines. Every one of them read project files and asserted something about the words in them, or tested a script in scripts/:

tests what it asserted
DocumentedSurfaceTest 21 documentation prose rules
TranslationCheckTest 17 the behaviour of scripts/check-translations.inc
MetricsTestCountingTest 6 the behaviour of scripts/generate-metrics.inc
CatalogTerminologyTest 6 French wording
HouseVocabularyTest 3 the word "memo", and @count placement
MetricsWriteTest 2 scripts/generate-metrics.inc again
DocblockReferenceTest 2 docblocks naming methods that exist
ParameterNamingTest 1 a naming convention
DocblockNullabilityTest 1 docblock wording against a signature
TemplateTranslationsTest 1 that no template ships a French HTML body

With them go ShippedFilesTrait's translation half, TranslationCheckTrait, and one README-scanning test in OrchestraAuditTrailSubscriberTest. The translations CI job already covers missing translations, which is what most of these were circling.

Unit suite: 143 tests / 12,306 assertions / 3.21s, down to 93 / 2,513 / 0.78s.

What is kept, and why

Ten classes that read files were kept, because each states a rule about the code or about something a person hits, not about prose: the WCAG contrast check, table captions, the initiator lookup cost (an N+1 guard), guarded row updates invalidating their caches, no upgrade hooks, resolver priorities, shipped config enforced on its module, plugin families covered by the dependency walk, menu links rooting into admin, and no prebuilt logger channel injected.

Three tests inside those were dropped as well, for asserting nothing reachable: testTheTablesNameStylesheetsThatExist (the completeness guard beside it fails on the same rename - verified by renaming cards.css), testNoPostUpdateFileIsShipped (an empty post_update.php is a case nobody ships), and testTheInstallHooksAreStillThere (a positive control; ShippedFilesTrait::collect() already refuses a collection that read nothing).

The two kept guards that matter most were verified by mutation rather than by reading:

A column heading reads #9a9a9a on #ffffff, which is 2.81:1. WCAG 2.1 AA asks 4.5:1 of text.
modules/orchestra_inbox/src/Controller/InboxController.php:230 renders a table with no caption.

The two French strings

The capability-link doorway's status report line is titled Orchestra request limits; its French still read Limites de requetes de l'interaction Orchestra, the title that line used to have.

orchestra_views rendered the workflow's read access as la portee de consultation du workflow. Portee is scope, the word the ReadScope to ReadAccess rename retired; the other catalogs had settled on acces en lecture.

Rebased onto 1.x after [#3624518] and [#3624519] merged.

On the red test-only changes lane

It runs the test files an MR touches. This MR deletes ten of them, so the lane reports File not found once per deleted class and exits 1:

ERROR: File not found: .../tests/src/Unit/DocumentedSurfaceTest.php
ERROR: File not found: .../tests/src/Unit/CatalogTerminologyTest.php

There is nothing for it to run. It is allow_failure: true, and every other lane is green.

Edited by Frank Mably

Merge request reports

Loading
Loading