diff options
-rw-r--r-- | resources/src/mediawiki.special.block/components/ExpiryField.vue | 7 | ||||
-rw-r--r-- | tests/jest/mediawiki.special.block/ExpiryField.test.js | 15 |
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', |