Page MenuHomePhabricator

Add tests for the new ULS rewrite
Closed, ResolvedPublic8 Estimated Story Points

Description

The new Vue 3 implementation of the Universal Language Selector currently has no automated test coverage. MediaWiki core already uses Jest with @vue/test-utils to test equivalent Vue 3 components and composables. We should adopt the same approach here.

Things to add tests for:

Composables

  • Language history persistence (load, save, dedup, ordering, size cap).
  • Suggested languages (ordering, dedup, filtering against valid codes, territory/browser/config inputs).
  • Typeahead suggestion logic (label match, code match, search-hit match, accept behaviour).
  • Progressive rendering (initial limit, growth in chunks, cleanup on unmount).
  • Country code resolution.
  • Entrypoint wiring (correct entrypoints surfaced per mode).
  • Keyboard navigation (initial state, next/previous item, highlight selection, visible change)
  • Preferred languages 1311412
  • Clicking outside should close the language selector

Entrypoint registry

  • Valid registration, type/mode validation, mode restrictions, locking behaviour, retrieval for unknown types.

Components

  • see T431386: Add ULS rewrite top-level component test
  • Empty-list / empty-search / missing-languages / quick-action entrypoint components render and trigger their handlers.
  • The index.js app wrapper: visibility defaults and onSelect/onClose callback wiring.

Others

  • Fix the vue warning if necessary
  • make sure 100% coverage (except the top-level component)
  • For things like floating-ui.js that need not be tested, lets ignore them in Jest. 1310608

Details

Related Changes in Gerrit:
SubjectAuthorRepoBranchLines +/-
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+14 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+70 -23
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+30 -0
Abijeet Patromediawiki/extensions/UniversalLanguageSelectormaster+143 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+9 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+91 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+4 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+78 -1
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+6 -2
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+61 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+122 -1
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+36 -1
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+90 -1
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+63 -1
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+63 -1
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+1 K -2
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+112 -2
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+115 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+153 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+45 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+58 -2
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+114 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+148 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+89 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+189 -0
Huei Tanmediawiki/extensions/UniversalLanguageSelectormaster+4 K -46
Show related patches Customize query in gerrit

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes
hueitan changed the task status from Open to In Progress.Jun 15 2026, 9:31 AM
hueitan moved this task from Ready for dev to In Progress on the LPL Essential (FY2025-26 Q3&4) board.

Change #1302143 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: init Jest unit tests

https://gerrit.wikimedia.org/r/1302143

Change #1302256 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add test spec for useLanguageHistory

https://gerrit.wikimedia.org/r/1302256

Change #1302258 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add test spec for useKeyboardNavigation

https://gerrit.wikimedia.org/r/1302258

Change #1302261 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add test spec for useTypeahead

https://gerrit.wikimedia.org/r/1302261

Change #1302763 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add usePregressiveRender test spec

https://gerrit.wikimedia.org/r/1302763

Change #1302768 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useCountryCode test spec

https://gerrit.wikimedia.org/r/1302768

Change #1302773 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewriet: add EntrypointRegistry test spec

https://gerrit.wikimedia.org/r/1302773

Change #1302813 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useEntrypoints test spec

https://gerrit.wikimedia.org/r/1302813

Change #1303375 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useSuggestedLanguages test spec

https://gerrit.wikimedia.org/r/1303375

Change #1302143 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: init Jest unit tests

https://gerrit.wikimedia.org/r/1302143

Change #1302256 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useLanguageHistory test spec

https://gerrit.wikimedia.org/r/1302256

Change #1302258 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useKeyboardNavigation test spec

https://gerrit.wikimedia.org/r/1302258

Change #1302261 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useTypeahead test spec

https://gerrit.wikimedia.org/r/1302261

Change #1302763 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useProgressiveRender test spec

https://gerrit.wikimedia.org/r/1302763

Change #1306274 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EntrypointActionButton test spec

https://gerrit.wikimedia.org/r/1306274

Change #1306618 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EntrypointActionButton QUnit test

https://gerrit.wikimedia.org/r/1306618

Change #1306618 abandoned by Huei Tan:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EntrypointActionButton QUnit test

Reason:

forget it, use jest with babel supported

https://gerrit.wikimedia.org/r/1306618

Change #1306668 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EmptySearchEntrypoint test spec

https://gerrit.wikimedia.org/r/1306668

Change #1306691 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EmptyListEntrypint test spec

https://gerrit.wikimedia.org/r/1306691

Change #1306696 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add QuickActionsPanel test spec

https://gerrit.wikimedia.org/r/1306696

Change #1306702 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add MissingLanguagesEntrypoint test spec

https://gerrit.wikimedia.org/r/1306702

Change #1302768 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useCountryCode test spec

https://gerrit.wikimedia.org/r/1302768

Change #1302773 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EntrypointRegistry test spec

https://gerrit.wikimedia.org/r/1302773

Change #1302813 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useEntrypoints test spec

https://gerrit.wikimedia.org/r/1302813

Change #1303375 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useSuggestedLanguages test spec

https://gerrit.wikimedia.org/r/1303375

Change #1306879 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useEntrypointActions test spec

https://gerrit.wikimedia.org/r/1306879

Change #1306274 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EntrypointActionButton test spec

https://gerrit.wikimedia.org/r/1306274

Change #1306668 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EmptySearchEntrypoint test spec

https://gerrit.wikimedia.org/r/1306668

Change #1306691 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add EmptyListEntrypint test spec

https://gerrit.wikimedia.org/r/1306691

Change #1306696 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add QuickActionsPanel test spec

https://gerrit.wikimedia.org/r/1306696

Change #1306702 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add MissingLanguagesEntrypoint test spec

https://gerrit.wikimedia.org/r/1306702

Change #1307107 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add QuickActionTrigger test spec

https://gerrit.wikimedia.org/r/1307107

Change #1306879 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add useEntrypointActions test spec

https://gerrit.wikimedia.org/r/1306879

Change #1307719 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: init ULS view test spec

https://gerrit.wikimedia.org/r/1307719

Change #1307847 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: test mode behaviour on ULS component

https://gerrit.wikimedia.org/r/1307847

hueitan updated the task description. (Show Details)
hueitan set Final Story Points to 4.
hueitan moved this task from In progress to Needs QA on the LPL sprints (S1 2026 July) board.

changing story point from 8 -> 4, top-level component test move to T431386

From https://integration.wikimedia.org/ci/job/mediawiki-node24/42798/console / https://gerrit.wikimedia.org/r/c/mediawiki/extensions/UniversalLanguageSelector/+/1306879

> jest
> jest --config jest.config.js

PASS  tests/jest/EntrypointRegistry.test.js
PASS  tests/jest/composables/useSuggestedLanguages.test.js
PASS  tests/jest/composables/useTypeahead.test.js
PASS  tests/jest/index.test.js
PASS  tests/jest/composables/useProgressiveRender.test.js
PASS  tests/jest/composables/useLanguageHistory.test.js
PASS  tests/jest/composables/useEntrypoints.test.js
PASS  tests/jest/composables/useKeyboardNavigation.test.js
PASS  tests/jest/entrypoints/QuickActionTrigger.test.js
PASS  tests/jest/composables/useEntrypointActions.test.js
PASS  tests/jest/entrypoints/MissingLanguagesEntrypoint.test.js
PASS  tests/jest/entrypoints/EmptySearchEntrypoint.test.js
  ● Console

    console.warn
      [Vue warn]: Missing required prop: "suggestions"
        at <EmptyListEntrypoint entrypoints= [
        {
          shouldShow: [Function: shouldShow],
          getConfig: [Function: getConfig]
        }
      ] ref="VTU_COMPONENT" >
        at <VTUROOT>

      15 |
      16 | 	it( 'renders the description paragraph and action buttons', () => {
    > 17 | 		const wrapper = shallowMount( EmptyListEntrypoint, {
         | 		                ^
      18 | 			global: {
      19 | 				mocks: {
      20 | 					$i18n: ( key ) => ( {

    console.warn
      [Vue warn]: Missing required prop: "languages"
        at <EmptyListEntrypoint entrypoints= [
        {
          shouldShow: [Function: shouldShow],
          getConfig: [Function: getConfig]
        }
      ] ref="VTU_COMPONENT" >
        at <VTUROOT>

      15 |
      16 | 	it( 'renders the description paragraph and action buttons', () => {
    > 17 | 		const wrapper = shallowMount( EmptyListEntrypoint, {
         | 		                ^
      18 | 			global: {
      19 | 				mocks: {
      20 | 					$i18n: ( key ) => ( {

    console.warn
      [Vue warn]: Missing required prop: "suggestions"
        at <EmptyListEntrypoint entrypoints= [
        {
          shouldShow: [Function: shouldShow],
          getConfig: [Function: getConfig]
        }
      ] ref="VTU_COMPONENT" >
        at <VTUROOT>

      43 | 			getConfig: () => config
      44 | 		};
    > 45 | 		const wrapper = shallowMount( EmptyListEntrypoint, {
         | 		                ^
      46 | 			global: {
      47 | 				mocks: {
      48 | 					$i18n: ( key ) => ( {

    console.warn
      [Vue warn]: Missing required prop: "languages"
        at <EmptyListEntrypoint entrypoints= [
        {
          shouldShow: [Function: shouldShow],
          getConfig: [Function: getConfig]
        }
      ] ref="VTU_COMPONENT" >
        at <VTUROOT>

      43 | 			getConfig: () => config
      44 | 		};
    > 45 | 		const wrapper = shallowMount( EmptyListEntrypoint, {
         | 		                ^
      46 | 			global: {
      47 | 				mocks: {
      48 | 					$i18n: ( key ) => ( {

PASS  tests/jest/entrypoints/QuickActionsPanel.test.js
PASS  tests/jest/composables/useCountryCode.test.js
PASS  tests/jest/entrypoints/EntrypointActionButton.test.js

----------------------------------|---------|----------|---------|---------|-------------------
File                              | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------------------------|---------|----------|---------|---------|-------------------
All files                         |   26.16 |    90.75 |   76.19 |   26.16 |
 ext.uls.rewrite                  |   15.51 |    89.36 |   61.11 |   15.51 |
  EntrypointRegistry.js           |     100 |      100 |     100 |     100 |
  LanguageList.vue                |       0 |        0 |       0 |       0 | 1-163
  LanguageSelectorPanelHeader.vue |       0 |        0 |       0 |       0 | 1-66
  LanguageSettingsEntrypoint.js   |       0 |        0 |       0 |       0 | 1-67
  PreferredLanguagesTab.vue       |       0 |        0 |       0 |       0 | 1-86
  UniversalLanguageSelector.vue   |       0 |        0 |       0 |       0 | 1-1056
  index.js                        |   95.93 |      100 |   77.77 |   95.93 | 90,93-96
 ext.uls.rewrite/composables      |    85.9 |    93.18 |    92.3 |    85.9 |
  useClickOutside.js              |       0 |        0 |       0 |       0 | 1-34
  useCountryCode.js               |     100 |      100 |     100 |     100 |
  useEntrypointActions.js         |     100 |      100 |     100 |     100 |
  useEntrypoints.js               |     100 |      100 |     100 |     100 |
  useKeyboardNavigation.js        |     100 |      100 |     100 |     100 |
  useLanguageHistory.js           |     100 |      100 |     100 |     100 |
  usePreferredLanguages.js        |       0 |        0 |       0 |       0 | 1-40
  useProgressiveRender.js         |     100 |      100 |     100 |     100 |
  useSuggestedLanguages.js        |   98.71 |    66.66 |     100 |   98.71 | 40
  useTypeahead.js                 |     100 |      100 |     100 |     100 |
 ext.uls.rewrite/dist             |       0 |        0 |       0 |       0 |
  floating-ui.js                  |       0 |        0 |       0 |       0 | 1-1681
 ext.uls.rewrite/entrypoints      |   87.57 |    91.66 |   76.47 |   87.57 |
  EmptyListEntrypoint.vue         |     100 |      100 |     100 |     100 |
  EmptySearchEntrypoint.vue       |     100 |      100 |     100 |     100 |
  EntrypointActionButton.vue      |     100 |      100 |     100 |     100 |
  MissingLanguagesEntrypoint.vue  |   96.15 |    86.66 |      40 |   96.15 | 85-86,91-92
  MissingLanguagesPanel.vue       |       0 |        0 |       0 |       0 | 1-58
  QuickActionTrigger.vue          |     100 |      100 |     100 |     100 |
  QuickActionsPanel.vue           |     100 |      100 |     100 |     100 |
 ext.uls.rewrite/lib              |       0 |        0 |       0 |       0 |
  floating-ui.js                  |       0 |        0 |       0 |       0 | 1-10
----------------------------------|---------|----------|---------|---------|-------------------

Test Suites: 16 passed, 16 total
Tests:       77 passed, 77 total
Snapshots:   0 total
Time:        5.629 s
Ran all test suites.

Notes:

  • The run emits Vue warnings from EmptyListEntrypoint.test.js about missing required props ("suggestions" and "languages"). These do not fail the test run, but the test run output is not clean.
  • Some files have zero coverage, and it is not clear if they are in scope of this task or the top level component.

@abi_ @hueitan your thoughts?

Change #1308043 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: fix Vue warning on test spec

https://gerrit.wikimedia.org/r/1308043

  • The run emits Vue warnings from EmptyListEntrypoint.test.js about missing required props ("suggestions" and "languages"). These do not fail the test run, but the test run output is not clean.
  • Some files have zero coverage, and it is not clear if they are in scope of this task or the top level component.
  • tests for ext.uls.rewrite have been moved to the follow up ticket;
  • floating-ui we don't need the test;
  • usePreferredLanguages useClickoutside MissingLanguagesPanel i feel like these are not really necessary, but if we want to target 100% coverage, i can add that.

Change #1308043 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: fix Vue warning on test spec

https://gerrit.wikimedia.org/r/1308043

Change #1310608 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: ignore the floating-ui in the jest coverage

https://gerrit.wikimedia.org/r/1310608

Change #1310666 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add MissingLanguagesPanel test spec

https://gerrit.wikimedia.org/r/1310666

Change #1310608 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: ignore the floating-ui in the jest coverage

https://gerrit.wikimedia.org/r/1310608

Change #1310666 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add MissingLanguagesPanel test spec

https://gerrit.wikimedia.org/r/1310666

Change #1311412 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add usePreferredLanguages test spec

https://gerrit.wikimedia.org/r/1311412

Change #1311419 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: fix vue warning in useEntrypointActions test spec

https://gerrit.wikimedia.org/r/1311419

Change #1311412 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: add usePreferredLanguages test spec

https://gerrit.wikimedia.org/r/1311412

Latest output from npm run test

----------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
File                              | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
All files                         |   95.19 |    90.84 |   87.03 |   95.19 |
 ext.uls.rewrite                  |   92.38 |    86.28 |      80 |   92.38 |
  EntrypointRegistry.js           |     100 |      100 |     100 |     100 |
  LanguageList.vue                |     100 |    78.57 |   66.66 |     100 | 126,137,145
  LanguageSelectorPanelHeader.vue |     100 |      100 |     100 |     100 |
  LanguageSettingsEntrypoint.js   |       0 |        0 |       0 |       0 | 1-67
  PreferredLanguagesTab.vue       |   97.67 |       80 |   66.66 |   97.67 | 67-68
  UniversalLanguageSelector.vue   |   94.57 |    84.33 |   83.33 |   94.57 | 392,449-450,457-458,467-468,491-492,504-507,547,570-571,788-789,832-833,850,852-856,858-865,869,876-877,903-910,914-916,925-928,942-943,1006-1007,1016-1017,1025-1026
  index.js                        |   95.93 |      100 |   77.77 |   95.93 | 90,93-96
 ext.uls.rewrite/composables      |   99.08 |    95.62 |     100 |   99.08 |
  useClickOutside.js              |     100 |      100 |     100 |     100 |
  useCountryCode.js               |     100 |       75 |     100 |     100 | 16
  useEntrypointActions.js         |     100 |      100 |     100 |     100 |
  useEntrypoints.js               |     100 |      100 |     100 |     100 |
  useFocusTrap.js                 |   93.75 |    88.23 |     100 |   93.75 | 39-40,44-46
  useKeyboardNavigation.js        |     100 |      100 |     100 |     100 |
  useLanguageHistory.js           |     100 |      100 |     100 |     100 |
  usePreferredLanguages.js        |     100 |      100 |     100 |     100 |
  useProgressiveRender.js         |     100 |      100 |     100 |     100 |
  useSuggestedLanguages.js        |   98.71 |    76.92 |     100 |   98.71 | 40
  useTypeahead.js                 |     100 |      100 |     100 |     100 |
 ext.uls.rewrite/entrypoints      |     100 |      100 |   82.35 |     100 |
  EmptyListEntrypoint.vue         |     100 |      100 |     100 |     100 |
  EmptySearchEntrypoint.vue       |     100 |      100 |     100 |     100 |
  EntrypointActionButton.vue      |     100 |      100 |     100 |     100 |
  MissingLanguagesEntrypoint.vue  |     100 |      100 |      40 |     100 |
  MissingLanguagesPanel.vue       |     100 |      100 |     100 |     100 |
  QuickActionTrigger.vue          |     100 |      100 |     100 |     100 |
  QuickActionsPanel.vue           |     100 |      100 |     100 |     100 |
----------------------------------|---------|----------|---------|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------

Test Suites: 33 passed, 33 total
Tests:       167 passed, 167 total
Snapshots:   0 total
Time:        6.267 s
Ran all test suites.

Let's add some tests for LanguageSettingsEntrypoint.js

Accessibility related tests are added as part of https://phabricator.wikimedia.org/T431386

Change #1311419 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] ULS rewrite: fix vue warning in useEntrypointActions test spec

https://gerrit.wikimedia.org/r/1311419

Change #1311620 had a related patch set uploaded (by Abijeet Patro; author: Abijeet Patro):

[mediawiki/extensions/UniversalLanguageSelector@master] LanguageSettingsEntrypoint: Add tests

https://gerrit.wikimedia.org/r/1311620

Change #1311620 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] LanguageSettingsEntrypoint: Add tests

https://gerrit.wikimedia.org/r/1311620

Change #1312333 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] useSuggestedLanguages: add 100% test coverage

https://gerrit.wikimedia.org/r/1312333

Change #1312376 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] MissingLanguagesEntrypoint: add 100% test coverage

https://gerrit.wikimedia.org/r/1312376

Change #1312414 had a related patch set uploaded (by Huei Tan; author: Huei Tan):

[mediawiki/extensions/UniversalLanguageSelector@master] useFocusTrap: add 100% test coverage

https://gerrit.wikimedia.org/r/1312414

Change #1312414 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] useFocusTrap: add 100% test coverage

https://gerrit.wikimedia.org/r/1312414

Change #1312333 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] useSuggestedLanguages: add 100% test coverage

https://gerrit.wikimedia.org/r/1312333

Change #1312376 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] MissingLanguagesEntrypoint: add 100% test coverage

https://gerrit.wikimedia.org/r/1312376

Coverage

----------------------------------|---------|----------|---------|---------|---------------------------------------
File                              | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s                     
----------------------------------|---------|----------|---------|---------|---------------------------------------
All files                         |   98.69 |     95.2 |   93.69 |   98.69 |                                       
 ext.uls.rewrite                  |   97.83 |    91.69 |   87.93 |   97.83 |                                       
  EntrypointRegistry.js           |     100 |      100 |     100 |     100 |                                       
  LanguageList.vue                |     100 |    78.57 |   66.66 |     100 | 126,137,145                           
  LanguageSelectorPanelHeader.vue |     100 |      100 |     100 |     100 |                                       
  LanguageSettingsEntrypoint.js   |     100 |      100 |     100 |     100 |                                       
  PreferredLanguagesTab.vue       |     100 |      100 |     100 |     100 |                                       
  UniversalLanguageSelector.vue   |   96.56 |    89.94 |   83.33 |   96.56 | ...-928,1006-1007,1016-1017,1025-1026 
  index.js                        |     100 |      100 |     100 |     100 |                                       
 ext.uls.rewrite/composables      |     100 |      100 |     100 |     100 |                                       
  useClickOutside.js              |     100 |      100 |     100 |     100 |                                       
  useCountryCode.js               |     100 |      100 |     100 |     100 |                                       
  useEntrypointActions.js         |     100 |      100 |     100 |     100 |                                       
  useEntrypoints.js               |     100 |      100 |     100 |     100 |                                       
  useFocusTrap.js                 |     100 |      100 |     100 |     100 |                                       
  useKeyboardNavigation.js        |     100 |      100 |     100 |     100 |                                       
  useLanguageHistory.js           |     100 |      100 |     100 |     100 |                                       
  usePreferredLanguages.js        |     100 |      100 |     100 |     100 |                                       
  useProgressiveRender.js         |     100 |      100 |     100 |     100 |                                       
  useSuggestedLanguages.js        |     100 |      100 |     100 |     100 |                                       
  useTypeahead.js                 |     100 |      100 |     100 |     100 |                                       
 ext.uls.rewrite/entrypoints      |     100 |      100 |     100 |     100 |                                       
  EmptyListEntrypoint.vue         |     100 |      100 |     100 |     100 |                                       
  EmptySearchEntrypoint.vue       |     100 |      100 |     100 |     100 |                                       
  EntrypointActionButton.vue      |     100 |      100 |     100 |     100 |                                       
  MissingLanguagesEntrypoint.vue  |     100 |      100 |     100 |     100 |                                       
  MissingLanguagesPanel.vue       |     100 |      100 |     100 |     100 |                                       
  QuickActionTrigger.vue          |     100 |      100 |     100 |     100 |                                       
  QuickActionsPanel.vue           |     100 |      100 |     100 |     100 |                                       
----------------------------------|---------|----------|---------|---------|---------------------------------------

ext.uls.rewrite related test in T431386: Add ULS rewrite top-level component test