Skip to content

Update EUI to v112.2.0#251227

Merged
weronikaolejniczak merged 6 commits intoelastic:mainfrom
weronikaolejniczak:feat/eui-v112.2.0
Feb 5, 2026
Merged

Update EUI to v112.2.0#251227
weronikaolejniczak merged 6 commits intoelastic:mainfrom
weronikaolejniczak:feat/eui-v112.2.0

Conversation

@weronikaolejniczak
Copy link
Copy Markdown
Contributor

Dependency updates

  • @elastic/eui: v112.1.0v112.2.0

Package updates

@elastic/eui v112.2.0

  • Updated documents timelineWithArrow indexOpen indexClose indexEdit indexRuntime indexSettings folderOpen folderClose kubernetesPod pagesSelect section workflow glyph icons (#9339)

Accessibility

  • Fixed EuiBasicTable and EuiInMemoryTable empty table announcements to include the expected noItemsMessage content (#9341)

@weronikaolejniczak weronikaolejniczak self-assigned this Feb 2, 2026
@weronikaolejniczak weronikaolejniczak added release_note:skip Skip the PR/issue when compiling release notes EUI backport:skip This PR does not require backporting labels Feb 2, 2026
@elasticmachine
Copy link
Copy Markdown
Contributor

elasticmachine commented Feb 2, 2026

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #15 / Uptime app with generated data certificates empty certificates displays empty message
  • [job] [logs] FTR Configs #15 / Uptime app with generated data certificates empty certificates displays empty message

The CI Stats report is too large to be displayed here, check out the CI build annotation for this information.

History

cc @weronikaolejniczak

@weronikaolejniczak
Copy link
Copy Markdown
Contributor Author

@elastic/actionable-obs-team would you have an idea why FTR Configs #15 is failing? Looking at the logs it seems it should be passing. Is it a timing or a selector issue?

Screenshot 2026-02-03 at 10 58 58

@weronikaolejniczak weronikaolejniczak force-pushed the feat/eui-v112.2.0 branch 2 times, most recently from 6496411 to c9b0fd3 Compare February 3, 2026 14:24
@weronikaolejniczak weronikaolejniczak marked this pull request as ready for review February 3, 2026 15:20
@weronikaolejniczak weronikaolejniczak requested review from a team as code owners February 3, 2026 15:20
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/eui-team (EUI)

@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/obs-ux-management-team (Team:obs-ux-management)

direction: sort.direction,
},
}}
noItemsMessage={
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I understand this change was motivated by a ftr test that was failing.

Nonetheless, I think this is not the right file. The test failing tests this page http://localhost:5620/app/uptime/certificates. That certificate table lives in x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/certificates/certificates_list.tsx instead (AFAIK)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦🏻 That explains why I couldn't get the data-test-subj to appear in DOM and why I decided to go with a class name in the first place. I 100% prefer to query a test subject instead 👍🏻

});
},
async displaysEmptyMessage() {
await testSubjects.existOrFail('uptimeCertsEmptyMessage');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like the idea of referencing the table directly to get the visible text. But we're trying not to rely on css selectors in our functional tests and rather use data-test-subj.

You could add a data-test-subj to the EuiBasicTable in x-pack/solutions/observability/plugins/uptime/public/legacy_uptime/components/certificates/certificates_list.tsx and then use it here like this:

    <EuiBasicTable
      data-test-subj='uptimeCertificatesTable'
      loading={certificates.loading}
      columns={columns}
      items={certificates?.certs ?? []}
      pagination={pagination}
      onChange={onTableChange}
      sorting={{
        sort: {
          field: sort.field,
          direction: sort.direction,
        },
      }}
      noItemsMessage={certificates.loading ? LOADING_CERTIFICATES : NO_CERTS_AVAILABLE}
    />
    async displaysEmptyMessage() {
      await testSubjects.existOrFail('uptimeCertificatesTable');      
      expect(await testSubjects.getVisibleText('uptimeCertificatesTable')).to.include.string('No Certificates found.');      
    }

lmkwt!

For context: the ftr test was failing because the new version of EUI introduces some accessibility enhancements that make the noItemsMessage be rendered twice: one for screen readers and another for the actual UI. I suspect this caused the test to look for visible text in the component that is rendered for screen readers only, and that made it fail.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@miguelmartin-elastic I second the idea of not relying on CSS selectors and using data-test-subjs instead. Even if the class is "stable", they are not dedicated to querying elements, that's what the data attribute is for. Hopefully with the Scout tests this will change.

I updated the test and the usage you mentioned on 65abe09

One note though: we should try not to pass anything other to noItemsMessage than a string or <FormattedMessage />. Technically speaking, span is not far off but it can lead to unexpected behaviors in the tests (like here because of duplication).

Let's see if the CI passes and ofc let me know if this change is okay for you 🙏🏻 Thank you for all the support, Miguel! It's highly appreciated.

cc @tkajtoch

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Totally agree. Thanks both for applying the changes !

@weronikaolejniczak weronikaolejniczak enabled auto-merge (squash) February 5, 2026 09:42
@elasticmachine
Copy link
Copy Markdown
Contributor

elasticmachine commented Feb 5, 2026

💔 Build Failed

Failed CI Steps

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
synthetics 1.0MB 1.0MB -63.0B
uptime 490.1KB 490.1KB -20.0B
total -83.0B

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
kbnUiSharedDeps-npmDll 6.5MB 6.5MB +25.0B

History

cc @weronikaolejniczak

@weronikaolejniczak weronikaolejniczak merged commit 828ccd4 into elastic:main Feb 5, 2026
17 checks passed
@weronikaolejniczak weronikaolejniczak deleted the feat/eui-v112.2.0 branch February 10, 2026 10:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting EUI release_note:skip Skip the PR/issue when compiling release notes Team:obs-ux-management v9.4.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants