Reapply "Remove spell check languages that are only available on the server (#21056)" (#21257)

* Reapply "Remove spell check languages that are only available on the server (#21056)"

This reverts commit a2273a5ff2eeb5660ae992c41e67b7b936dc4e26.

GitOrigin-RevId: 2dfdf87acdf17db894e921fe754c1520df6f01c1
This commit is contained in:
Alf Eaton
2024-10-23 08:05:14 +00:00
committed by Copybot
parent 4589a192f6
commit baed6cc291
6 changed files with 181 additions and 50 deletions
@@ -7,13 +7,87 @@ import forEach from 'mocha-each'
import PackageVersions from '../../../../../app/src/infrastructure/PackageVersions'
const languages = [
{ code: 'af', dic: 'af_ZA', name: 'Afrikaans' },
{ code: 'an', dic: 'an_ES', name: 'Aragonese' },
{ code: 'ar', dic: 'ar', name: 'Arabic' },
{ code: 'be_BY', dic: 'be_BY', name: 'Belarusian' },
{ code: 'bg', dic: 'bg_BG', name: 'Bulgarian' },
{ code: 'bn_BD', dic: 'bn_BD', name: 'Bengali' },
{ code: 'bo', dic: 'bo', name: 'Tibetan' },
{ code: 'br', dic: 'br_FR', name: 'Breton' },
{ code: 'bs_BA', dic: 'bs_BA', name: 'Bosnian' },
{ code: 'ca', dic: 'ca', name: 'Catalan' },
{ code: 'cs', dic: 'cs_CZ', name: 'Czech' },
{ code: 'de', dic: 'de_DE', name: 'German' },
{ code: 'de_AT', dic: 'de_AT', name: 'German (Austria)' },
{ code: 'de_CH', dic: 'de_CH', name: 'German (Switzerland)' },
{ code: 'dz', dic: 'dz', name: 'Dzongkha' },
{ code: 'el', dic: 'el_GR', name: 'Greek' },
{ code: 'en_AU', dic: 'en_AU', name: 'English (Australian)' },
{ code: 'en_CA', dic: 'en_CA', name: 'English (Canadian)' },
{ code: 'en_GB', dic: 'en_GB', name: 'English (British)' },
{ code: 'en_US', dic: 'en_US', name: 'English (American)' },
{ code: 'en_ZA', dic: 'en_ZA', name: 'English (South African)' },
{ code: 'eo', dic: 'eo', name: 'Esperanto' },
{ code: 'es', dic: 'es_ES', name: 'Spanish' },
{ code: 'et', dic: 'et_EE', name: 'Estonian' },
{ code: 'eu', dic: 'eu', name: 'Basque' },
{ code: 'fa', dic: 'fa_IR', name: 'Persian' },
{ code: 'fo', dic: 'fo', name: 'Faroese' },
{ code: 'fr', dic: 'fr', name: 'French' },
{ code: 'ga', dic: 'ga_IE', name: 'Irish' },
{ code: 'gd_GB', dic: 'gd_GB', name: 'Scottish Gaelic' },
{ code: 'gl', dic: 'gl_ES', name: 'Galician' },
{ code: 'gu_IN', dic: 'gu_IN', name: 'Gujarati' },
{ code: 'gug_PY', dic: 'gug_PY', name: 'Guarani' },
{ code: 'he_IL', dic: 'he_IL', name: 'Hebrew' },
{ code: 'hi_IN', dic: 'hi_IN', name: 'Hindi' },
{ code: 'hr', dic: 'hr_HR', name: 'Croatian' },
{ code: 'hu_HU', dic: 'hu_HU', name: 'Hungarian' },
{ code: 'id', dic: 'id_ID', name: 'Indonesian' },
{ code: 'is_IS', dic: 'is_IS', name: 'Icelandic' },
{ code: 'it', dic: 'it_IT', name: 'Italian' },
{ code: 'kk', dic: 'kk_KZ', name: 'Kazakh' },
{ code: 'kmr', dic: 'kmr_Latn', name: 'Kurmanji' },
{ code: 'ko', dic: 'ko', name: 'Korean' },
{ code: 'lo_LA', dic: 'lo_LA', name: 'Laotian' },
{ code: 'lt', dic: 'lt_LT', name: 'Lithuanian' },
{ code: 'lv', dic: 'lv_LV', name: 'Latvian' },
{ code: 'ml_IN', dic: 'ml_IN', name: 'Malayalam' },
{ code: 'mn_MN', dic: 'mn_MN', name: 'Mongolian' },
{ code: 'nb_NO', dic: 'nb_NO', name: 'Norwegian (Bokmål)' },
{ code: 'ne_NP', dic: 'ne_NP', name: 'Nepali' },
{ code: 'nl', dic: 'nl', name: 'Dutch' },
{ code: 'nn_NO', dic: 'nn_NO', name: 'Norwegian (Nynorsk)' },
{ code: 'oc_FR', dic: 'oc_FR', name: 'Occitan' },
{ code: 'pl', dic: 'pl_PL', name: 'Polish' },
{ code: 'pt_BR', dic: 'pt_BR', name: 'Portuguese (Brazilian)' },
{ code: 'pt_PT', dic: 'pt_PT', name: 'Portuguese (European)' },
{ code: 'ro', dic: 'ro_RO', name: 'Romanian' },
{ code: 'ru', dic: 'ru_RU', name: 'Russian' },
{ code: 'si_LK', dic: 'si_LK', name: 'Sinhala' },
{ code: 'sk', dic: 'sk_SK', name: 'Slovak' },
{ code: 'sl', dic: 'sl_SI', name: 'Slovenian' },
{ code: 'sr_RS', dic: 'sr_RS', name: 'Serbian' },
{ code: 'sv', dic: 'sv_SE', name: 'Swedish' },
{ code: 'sw_TZ', dic: 'sw_TZ', name: 'Swahili' },
{ code: 'te_IN', dic: 'te_IN', name: 'Telugu' },
{ code: 'th_TH', dic: 'th_TH', name: 'Thai' },
{ code: 'tl', dic: 'tl', name: 'Tagalog' },
{ code: 'tr_TR', dic: 'tr_TR', name: 'Turkish' },
{ code: 'uz_UZ', dic: 'uz_UZ', name: 'Uzbek' },
{ code: 'vi_VN', dic: 'vi_VN', name: 'Vietnamese' },
]
const suggestions = {
af: ['medicyne', 'medisyne'],
be_BY: ['лекi', 'лекі'],
bg: ['лекарствo', 'лекарство'],
de: ['Medicin', 'Medizin'],
en_CA: ['theatr', 'theatre'],
en_GB: ['medecine', 'medicine'],
en_US: ['theatr', 'theater'],
es: ['medicaminto', 'medicamento'],
fr: ['medecin', 'médecin'],
sv: ['medecin', 'medicin'],
}
@@ -42,11 +116,11 @@ forEach(Object.keys(suggestions)).describe(
win.metaAttributesCache.set('ol-preventCompileOnLoad', true)
win.metaAttributesCache.set('ol-splitTestVariants', {
'spell-check-client': 'enabled',
'spell-check-no-server': 'enabled',
})
win.metaAttributesCache.set('ol-splitTestInfo', {
'spell-check-client': {
phase: 'release',
},
'spell-check-client': { phase: 'release' },
'spell-check-no-server': { phase: 'release' },
})
win.metaAttributesCache.set('ol-learnedWords', ['baz'])
win.metaAttributesCache.set(
@@ -77,12 +151,13 @@ forEach(Object.keys(suggestions)).describe(
it('shows suggestions for misspelled word', function () {
const [from, to] = suggestions[spellCheckLanguage]
cy.get('@line').type(from)
cy.get('@line').get('.ol-cm-spelling-error').contains(from)
cy.get('@line').type(`${from} ${to}`)
cy.get('@line').get('.ol-cm-spelling-error').should('have.length', 1)
cy.get('@line').get('.ol-cm-spelling-error').should('have.text', from)
cy.get('@line').get('.ol-cm-spelling-error').rightclick()
cy.findByText(to).click()
cy.get('@line').contains(to)
cy.findByRole('menuitem', { name: to }).click()
cy.get('@line').contains(`${to} ${to}`)
cy.get('@line').find('.ol-cm-spelling-error').should('not.exist')
})
}
@@ -131,6 +131,7 @@ describe('EditorHttpController', function () {
}
this.SplitTestHandler = {
promises: {
getAssignmentForUser: sinon.stub().resolves({ variant: 'default' }),
getAssignmentForMongoUser: sinon
.stub()
.resolves({ variant: 'default' }),