From 2e059d852bf14aae783b2cdb9df6e06576eee4e0 Mon Sep 17 00:00:00 2001
From: Conduction Release Bot
Date: Thu, 3 Sep 2026 06:57:40 +0200
Subject: [PATCH] fix(store): label the store save, which reddened
development's e2e
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
MY REGRESSION, from #1677. StoreSettingsTab shipped a bare "Save" button, so
`pages.spec.ts` hit a strict-mode violation:
getByRole('button', { name: 'Save', exact: true }) resolved to 2 elements
The convention was already written down, in that spec's own comment: the admin
surface renders every section, four of them carry a LABELLED save ("Save
mandate matrix settings", "Save consultation settings", …), and the bare "Save"
belongs to the Configuration section alone. Mine took a name that was spoken
for.
Labelled rather than the test scoped, because the duplicate is a real defect in
its own right: two buttons with the identical accessible name on one page give
a screen-reader user no way to tell them apart. Fixing the label fixes both.
WHY THIS REACHED DEVELOPMENT AT ALL, and it is the useful part: the e2e leg is
SKIPPED on pull requests into development and runs only on the push. #1677 was
green on 49 checks with `E2E Tests (Playwright): skipping`, so the PR could not
have caught this. The 19 local Playwright tests I ran did not include
pages.spec.ts.
Verified against a live instance: the exact assertion that failed now passes.
---
l10n/en.js | 3 ++-
l10n/en.json | 3 ++-
l10n/nl.js | 3 ++-
l10n/nl.json | 3 ++-
src/views/settings/tabs/StoreSettingsTab.vue | 4 +++-
5 files changed, 11 insertions(+), 5 deletions(-)
diff --git a/l10n/en.js b/l10n/en.js
index 1c4824c55..ae1ea3012 100644
--- a/l10n/en.js
+++ b/l10n/en.js
@@ -3484,7 +3484,8 @@ OC.L10N.register(
"Yes or no": "Yes or no",
"Maximum length": "Maximum length",
"Longest value this property accepts.": "Longest value this property accepts.",
- "The status from which this property must be answered.": "The status from which this property must be answered."
+ "The status from which this property must be answered.": "The status from which this property must be answered.",
+ "Save store settings": "Save store settings"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/en.json b/l10n/en.json
index 1aee44cd9..3bafdea8b 100644
--- a/l10n/en.json
+++ b/l10n/en.json
@@ -3483,7 +3483,8 @@
"Yes or no": "Yes or no",
"Maximum length": "Maximum length",
"Longest value this property accepts.": "Longest value this property accepts.",
- "The status from which this property must be answered.": "The status from which this property must be answered."
+ "The status from which this property must be answered.": "The status from which this property must be answered.",
+ "Save store settings": "Save store settings"
},
"plurals": ""
}
diff --git a/l10n/nl.js b/l10n/nl.js
index 30caca221..5de2cb80e 100644
--- a/l10n/nl.js
+++ b/l10n/nl.js
@@ -3484,7 +3484,8 @@ OC.L10N.register(
"Yes or no": "Ja of nee",
"Maximum length": "Maximale lengte",
"Longest value this property accepts.": "De langste waarde die deze eigenschap accepteert.",
- "The status from which this property must be answered.": "De status vanaf wanneer deze eigenschap ingevuld moet zijn."
+ "The status from which this property must be answered.": "De status vanaf wanneer deze eigenschap ingevuld moet zijn.",
+ "Save store settings": "Store-instellingen opslaan"
},
"nplurals=2; plural=(n != 1);"
)
diff --git a/l10n/nl.json b/l10n/nl.json
index f2bd12c5c..acaf53d60 100644
--- a/l10n/nl.json
+++ b/l10n/nl.json
@@ -3483,6 +3483,7 @@
"Yes or no": "Ja of nee",
"Maximum length": "Maximale lengte",
"Longest value this property accepts.": "De langste waarde die deze eigenschap accepteert.",
- "The status from which this property must be answered.": "De status vanaf wanneer deze eigenschap ingevuld moet zijn."
+ "The status from which this property must be answered.": "De status vanaf wanneer deze eigenschap ingevuld moet zijn.",
+ "Save store settings": "Store-instellingen opslaan"
}
}
diff --git a/src/views/settings/tabs/StoreSettingsTab.vue b/src/views/settings/tabs/StoreSettingsTab.vue
index 658d40e6f..e166eee83 100644
--- a/src/views/settings/tabs/StoreSettingsTab.vue
+++ b/src/views/settings/tabs/StoreSettingsTab.vue
@@ -48,7 +48,9 @@
- {{ saving ? t('dossiq', 'Saving…') : t('dossiq', 'Save') }}
+ {{
+ saving ? t('dossiq', 'Saving…') : t('dossiq', 'Save store settings')
+ }}