Merge pull request #32734 from backstage/rugvip/test-utils

frontend-test-utils: more mockApis and utilities
This commit is contained in:
Patrik Oldsberg
2026-02-10 13:21:16 +01:00
committed by GitHub
77 changed files with 3920 additions and 419 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/frontend-test-utils': minor
---
**BREAKING**: Removed the `TestApiRegistry` class, use `TestApiProvider` directly instead, storing reused APIs in a variable, e.g. `const apis = [...] as const`.
@@ -0,0 +1,5 @@
---
'@backstage/plugin-catalog-react': patch
---
The `catalogApiMock` test utility now returns a `MockWithApiFactory`, allowing it to be passed directly to test utilities like `renderTestApp` and `TestApiProvider` without needing the `[catalogApiRef, catalogApiMock()]` tuple.
@@ -0,0 +1,5 @@
---
'@backstage/frontend-test-utils': minor
---
Added `MockAlertApi` and `MockFeatureFlagsApi` implementations to the `mockApis` namespace. The mock implementations include useful testing methods like `clearAlerts()`, `waitForAlert()`, `getState()`, `setState()`, and `clearState()` for better test ergonomics.
@@ -0,0 +1,21 @@
---
'@backstage/frontend-test-utils': minor
---
**BREAKING**: The `mockApis` namespace is no longer a re-export from `@backstage/test-utils`. It's now a standalone namespace with mock implementations of most core APIs. Mock API instances can be passed directly to `TestApiProvider`, `renderInTestApp`, and `renderTestApp` without needing `[apiRef, impl]` tuples. As part of this change, the `.factory()` method on some mocks has been removed, since it's now redundant.
```tsx
// Before
import { mockApis } from '@backstage/frontend-test-utils';
renderInTestApp(<MyComponent />, {
apis: [[identityApiRef, mockApis.identity()]],
});
// After - mock APIs can be passed directly
renderInTestApp(<MyComponent />, {
apis: [mockApis.identity()],
});
```
This change also adds `createApiMock`, a public utility for creating mock API factories, intended for plugin authors to create their own `.mock()` variants.
@@ -0,0 +1,5 @@
---
'@backstage/repo-tools': patch
---
The `type-deps` command now detects ambient global types from the `jest` namespace in declaration files, rather than only looking for explicit imports and reference directives.
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder-react': patch
---
Added `@backstage/frontend-test-utils` as a dev dependency for mock API usage in tests.
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-scaffolder': patch
---
Added `@backstage/frontend-test-utils` as a dev dependency for mock API usage in tests.
+6
View File
@@ -0,0 +1,6 @@
---
'@backstage/test-utils': patch
'@backstage/backend-test-utils': patch
---
Added `@types/jest` as an optional peer dependency, since jest types are exposed in the public API surface.