Issue #3593636 by mably: [3.0.x backport] Do not persist empty domain config overrides

Backport of #3593636 to 3.0.x.

When an override has no overridden values, delete any existing override row instead of writing an empty record. Empty overrides otherwise linger in the domain config collection and are perpetually reported as modified by drush cex/cim, with no diff and no way to remove them through sync.

Note: 3.0.x does not have the 3.x sparse diff-vs-base save logic (#3587744), so the empty-override case is narrower here than on 3.x, but the guard and its coverage are still worth having. Adds a kernel test (the test file is absent on 3.0.x) that fails before this change and passes after. The test installs the language module because the 3.0.x domain_config language_manager decorator inherits the parent (ConfigurableLanguageManager) service definition.

The 3.x MR is !391 (merged).

Merge request reports

Loading