Skip to content

Using test environment for Mantine provider in preflight tests. - #27415

Open
dennisoelkers wants to merge 1 commit into
masterfrom
fix/use-test-env-in-preflight-mantine
Open

dennisoelkers wants to merge 1 commit into
masterfrom
fix/use-test-env-in-preflight-mantine

Conversation

@dennisoelkers

Copy link
Copy Markdown
Member

Description

Motivation and Context

This PR is a minor fix for preflight frontend tests. It explicitly sets the test environment for the Mantine theme provider, so specific production-only functionality which does not work in JSDom is disabled. This is similar to what we do already in non-preflight tests.

/nocl Internal refactoring.

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Refactoring (non-breaking change)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

  • My code follows the code style of this project.
  • My change requires a change to the documentation.
  • I have requested a documentation update.
  • I have read the CONTRIBUTING document.
  • I have added tests to cover my changes.

jsdom performs no layout, so every `getBoundingClientRect()` is 0x0 and
`documentElement.clientWidth/clientHeight` are 0. Floating UI's `hide()`
middleware - which Mantine always installs - therefore reports the menu
target as fully clipped, and Mantine renders the dropdown with
`display: none`, taking its items out of the accessibility tree.

Mantine guards that behaviour behind `env !== 'test'`. The main test
wrapper already passes `env="test"` via `DefaultProviders`, but the
preflight wrapper reuses the production theme providers, so its
innermost `MantineProvider` ran with the default env. The test only
passed when the assertion happened to observe the dropdown before the
asynchronous position update landed, which is why it failed under load
on CI.

Thread the same `env` prop through `ThemeWrapper` and set it from
`PreflightWrappingContainer`, and cover the previously racy case with a
test that asserts the links after the position update has settled.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@dennisoelkers
dennisoelkers requested a review from a team September 17, 2026 12:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant