aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--resources/src/mediawiki.special.block/components/ExpiryField.vue7
-rw-r--r--tests/jest/mediawiki.special.block/ExpiryField.test.js15
2 files changed, 19 insertions, 3 deletions
diff --git a/resources/src/mediawiki.special.block/components/ExpiryField.vue b/resources/src/mediawiki.special.block/components/ExpiryField.vue
index f0d804c88e9e..7ed51c0cfc4a 100644
--- a/resources/src/mediawiki.special.block/components/ExpiryField.vue
+++ b/resources/src/mediawiki.special.block/components/ExpiryField.vue
@@ -156,9 +156,10 @@ module.exports = exports = defineComponent( {
const optionsContainsValue = ( opts, v ) => opts.some( ( option ) => option.value === v );
if ( mw.util.isInfinity( given ) ) {
expiryType.value = 'preset-duration';
- // FIXME: Assumes that the "infinite" option exists.
- // (It has to be for this form as there's no other way to specify infinite)
- presetDuration.value = 'infinite';
+ // Set the "infinite" option that exists.
+ presetDuration.value = presetDurationOptions.find(
+ ( option ) => mw.util.isInfinity( option.value )
+ ).value;
} else if ( optionsContainsValue( presetDurationOptions, given ) ) {
expiryType.value = 'preset-duration';
presetDuration.value = given;
diff --git a/tests/jest/mediawiki.special.block/ExpiryField.test.js b/tests/jest/mediawiki.special.block/ExpiryField.test.js
index 3b74bdc1e547..d2b2997708af 100644
--- a/tests/jest/mediawiki.special.block/ExpiryField.test.js
+++ b/tests/jest/mediawiki.special.block/ExpiryField.test.js
@@ -19,6 +19,21 @@ const presetTestCases = [
}
},
{
+ title: 'no default, wpExpiry=indefinite [preset] custom "indefinite" expiry option',
+ config: {
+ isInfinity: true,
+ blockExpiryPreset: 'indefinite',
+ blockExpiryOptions: {
+ infinite: 'indefinite',
+ '31 horas': '31 hours'
+ }
+ },
+ expected: {
+ expiryType: 'preset-duration',
+ presetDuration: 'indefinite'
+ }
+ },
+ {
title: 'default 9 weeks, wpExpiry=1 week [custom]',
config: {
blockExpiryDefault: '9 weeks',