diff --git a/plugins/catalog-react/src/components/UserListPicker/UserListPicker.test.tsx b/plugins/catalog-react/src/components/UserListPicker/UserListPicker.test.tsx
index ed6c43d12e..f0b82b550e 100644
--- a/plugins/catalog-react/src/components/UserListPicker/UserListPicker.test.tsx
+++ b/plugins/catalog-react/src/components/UserListPicker/UserListPicker.test.tsx
@@ -19,7 +19,12 @@ import { fireEvent, render, waitFor, screen } from '@testing-library/react';
import { UserEntity } from '@backstage/catalog-model';
import { UserListPicker, UserListPickerProps } from './UserListPicker';
import { MockEntityListContextProvider } from '../../testUtils/providers';
-import { EntityTagFilter, EntityUserListFilter } from '../../filters';
+import {
+ EntityKindFilter,
+ EntityNamespaceFilter,
+ EntityTagFilter,
+ EntityUserListFilter,
+} from '../../filters';
import {
CatalogApi,
QueryEntitiesInitialRequest,
@@ -159,12 +164,19 @@ describe('', () => {
it('renders filters', async () => {
render(
-
+
,
);
+ await waitFor(() =>
+ expect(mockIdentityApi.getBackstageIdentity).toHaveBeenCalled(),
+ );
await waitFor(() =>
expect(
screen.getAllByRole('menuitem').map(({ textContent }) => textContent),
@@ -172,17 +184,25 @@ describe('', () => {
);
expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith({
- filter: {},
+ filter: {
+ 'metadata.namespace': ['default'],
+ },
limit: 0,
});
expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith({
- filter: { 'metadata.name': ['e-1', 'e-2'] },
+ filter: {
+ 'metadata.namespace': ['default'],
+ 'relations.ownedBy': ['user:default/testuser'],
+ },
+ limit: 0,
+ });
+ expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith({
+ filter: {
+ 'metadata.namespace': ['default'],
+ 'metadata.name': ['e-1', 'e-2'],
+ },
limit: 1000,
});
- expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith({
- filter: { 'relations.ownedBy': ['user:default/testuser'] },
- limit: 0,
- });
});
it('respects other frontend filters in counts', async () => {
@@ -223,16 +243,23 @@ describe('', () => {
it('respects the query parameter filter value', async () => {
const updateFilters = jest.fn();
- const queryParameters = { user: 'owned' };
+ const queryParameters = { user: 'owned', kind: 'component' };
render(
,
);
+ await waitFor(() =>
+ expect(mockIdentityApi.getBackstageIdentity).toHaveBeenCalled(),
+ );
await waitFor(() =>
expect(updateFilters).toHaveBeenLastCalledWith({
@@ -241,15 +268,16 @@ describe('', () => {
);
expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith({
- filter: {},
+ filter: { kind: 'component' },
limit: 0,
});
expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith({
- filter: { 'metadata.name': ['e-1', 'e-2'] },
+ filter: { kind: 'component', 'metadata.name': ['e-1', 'e-2'] },
limit: 1000,
});
expect(mockCatalogApi.queryEntities).toHaveBeenCalledWith({
filter: {
+ kind: 'component',
'relations.ownedBy': ['user:default/testuser'],
},
limit: 0,
@@ -285,7 +313,11 @@ describe('', () => {
@@ -293,6 +325,10 @@ describe('', () => {
,
);
+ await waitFor(() =>
+ expect(mockIdentityApi.getBackstageIdentity).toHaveBeenCalled(),
+ );
+
await waitFor(() =>
expect(updateFilters).toHaveBeenLastCalledWith({
user: EntityUserListFilter.all(),
@@ -304,7 +340,11 @@ describe('', () => {
@@ -319,9 +359,14 @@ describe('', () => {
describe('filter resetting', () => {
let updateFilters: jest.Mock;
- const Picker = (props: UserListPickerProps) => (
+ const Picker = ({ ...props }: UserListPickerProps) => (
-
+
@@ -331,7 +376,7 @@ describe('', () => {
updateFilters = jest.fn();
});
- describe(`when there are no owned entities match the filter`, () => {
+ describe(`when there are no owned entities matching the filter`, () => {
it('does not reset the filter while entities are loading', async () => {
mockCatalogApi.queryEntities?.mockImplementation(
() => new Promise(() => {}),
@@ -342,7 +387,10 @@ describe('', () => {
await waitFor(() =>
expect(mockCatalogApi.queryEntities).toHaveBeenCalled(),
);
- expect(updateFilters).not.toHaveBeenCalled();
+
+ await expect(
+ waitFor(() => expect(updateFilters).toHaveBeenCalled()),
+ ).rejects.toThrow();
});
it('does not reset the filter while owned entities are loading', async () => {