CreateImageWizard: Show empty available state on failed search

Resolves issue #588. 'No packages found' is now correctly displayed
after a failed search that follows a successful search.
This commit is contained in:
lucasgarfield 2022-02-23 10:45:41 +01:00 committed by Lucas Garfield
parent 1630f30448
commit 5e0ce52742
2 changed files with 24 additions and 0 deletions

View file

@ -114,6 +114,7 @@ const Packages = ({ defaultArch, ...props }) => {
sortPackages(packagesAvailableFiltered);
setPackagesAvailableFound(true);
} else {
setPackagesAvailable([]);
setPackagesAvailableFound(false);
}
};

View file

@ -705,6 +705,29 @@ describe('Step Packages', () => {
screen.getByText('No packages found');
});
test('should display empty available state on failed search after a successful search', async () => {
await setUp();
const searchbox = screen.getAllByRole('textbox')[0]; // searching by id doesn't update the input ref
searchbox.click();
let getPackages = jest
.spyOn(api, 'getPackages')
.mockImplementation(() => Promise.resolve(mockPkgResult));
await searchForAvailablePackages(searchbox, 'test');
getPackages = jest
.spyOn(api, 'getPackages')
.mockImplementation(() => Promise.resolve(mockPkgResultEmpty));
await searchForAvailablePackages(searchbox, 'asdf');
expect(getPackages).toHaveBeenCalledTimes(2);
screen.getByText('No packages found');
});
test('should display empty chosen state on failed search', async () => {
await setUp();