Commit graph

83 commits

Author SHA1 Message Date
regexowl
b7ccc2cca0 testUtils: Merge renderCustomRoutesWithReduxRouter and renderWithReduxRouter
`renderCustomRoutesWithReduxRouter` and `renderWithReduxRouter`are functionally the same apart from routes they use to render components.

We could just use `renderCustomRoutesWithReduxRouter` and use the routes from `renderWithReduxRouter` as a default value for an optional parameter `routes`.
2024-08-12 09:46:10 +02:00
regexowl
1554d78cba test: Move mocks to setup file
This moves all the mocks used throughout our test files into the test setup file.
2024-08-08 16:53:49 +02:00
regexowl
cba54c54c6 test: Add retry to the flakiest tests
This adds three possible retries to three of the flakiest tests.
2024-07-25 19:22:05 +02:00
regexowl
16422e96ce test: Improve stability of 'check error details' test
This adds awaiting to a few expects, hopefully improving the stability of the test.
2024-07-23 16:23:04 +02:00
regexowl
eb2cfe9a2f test: Move @testing-library/jest-dom import to test setup file
This removes `@testing-library/jest-dom` from single test files and adds it to the shared setup.ts file.
2024-07-22 15:49:18 +02:00
regexowl
a5f69a2559 test: Move shared imports to setup.ts file 2024-07-16 16:55:31 +02:00
regexowl
98c17e55df test: Move beforeEach blocks inside describe
This moved the `beforeEach` blocks inside the `describe` blocks as per documentation.

Previously the code inside `beforeEach` didn't trigger which lead to problems with asynchrocinity as mocks didn't get cleared.
2024-07-16 16:55:31 +02:00
regexowl
e036f9b892 src: Move .scrollTo mock implementation to setup.ts
This moves the `.scrollTo` mock implementation to a setup file for other test files to use.
2024-07-16 16:55:31 +02:00
regexowl
2a48966bba test: Update test files to work with Vitest
This updates the files to be compatible with Vitest. Changes include:
- adding `@testing-library/jest-dom` import to enable custom jest matchers
- renaming `jest.` to `vi.`
- setting flags to false as default where needed
2024-07-16 16:55:31 +02:00
Ondrej Ezr
5fcc80d2db Wizard: Drop the WizardV1 2024-06-19 09:10:22 +02:00
Sanne Raymaekers
967b603e50 src/constants: Use major rhel distros by default
The tradeoff is not being able to discern between a minor version and a
major version in the 2 weeks post GA if the images were built using the
UI, but I think the tradeoff is worth it. The frontend will never need
updating to switch to a new version.
2024-05-21 11:24:49 +02:00
regexowl
f37bd91a9a test: Update tests after TypeScript migration
This resolves problems caused by TypeScript migration.
2024-05-03 16:36:26 +02:00
regexowl
f2f64945c1 test: Migrate remaining files to TypeScript
This migrates remaining JavaScript file to TypeScript.
2024-05-03 16:36:26 +02:00
Ondrej Ezr
1b35b3f675 experimental: Allow switching experimental on in stable 2024-04-30 16:53:44 +02:00
regexowl
305d4d9768 ImagesTable: Update column headers
This updates the name of column headers as per recent mocks.
2024-04-18 17:54:37 +02:00
Anna Vítová
5813fdaf10 feat(HMS-3686): Update position of blueprint buttons 2024-03-05 13:49:31 +01:00
Amir
97a75e0465 feat(HMS-3392): add blueprint's version in image table 2024-02-08 07:35:18 +01:00
regexowl
f90718815b test: Replace .getBy queries by awaited .findBy
Components sometimes render slower than tests run which causes failures when the test suite expects elements that did not finish their rendering yet.

This should help to prevent most of possible problems with the rendering speed.
2024-01-17 17:19:57 +01:00
regexowl
62673813e2 test: Remove out-of-date comments
This cleans up comments in tests and removes all that are no longer relevant.
2023-11-27 13:52:20 +01:00
Sanne Raymaekers
f1141ec698 src: add RHEL 8.9 2023-11-16 14:44:21 +01:00
mgold1234
303e557f07 fix linting warnings
this commit fix some linting warnings that user get when running npm run lint:js:fix command,
some worning comes after big changes to TypeScript
2023-11-13 16:00:01 +01:00
jkozol
4e3e154f08 test: add awaits to user click in table's error test 2023-10-25 09:02:47 +02:00
jkozol
a5b1b1f775 package.json: upgrade patternfly to version 5
This upgrade requires multiple package updates. There are many style
updates to reflect pf5's syntax and structure changes
2023-10-25 09:02:47 +02:00
Sanne Raymaekers
d706a7e5e2 ImagesTable: show error popover on s3 images
The error popover should be shown in case there's a reason for the
error. This is already the case for the other image types.
2023-10-12 15:24:55 +02:00
regexowl
51ad859747 test: Improve stability of the ImagesTable tests
This should help with tests flaking on the `act()` error.
2023-10-10 15:30:39 +02:00
lucasgarfield
7b9e726151 ImagesTable: Convert ImagesTable to Typescript & RTK Query
This commit converts the Images Table to Typescript and converts all API
calls to image-builder to use RTK Query hooks.

This should increase the performance of the app significantly.
Previously our calls to the image-builder API were made in series. They
are now made in parallel. We may want to investigate the possibility of
hitting rate limiting now that we will be issuing requests in much more
rapid succession.

In the tests, moving to RTK Query hooks has allowed us to remove
virtually all Jest mocking. However, this means that some of our
previous tests which tested against implementation details were broken.
Most notably, we no longer check the Redux store to verify that clones
have been added correctly and we no longer check that compose requests
were issued successfully. Test coverage will be restored in a follow-up
PR where the dev-dependency @msw/data is added. Adding a persistent data
layer to the tests using @msw/data will allow us to verify that our POST
requests (creating composes and cloning them) are working by testing
that the Images Table has been updated.
2023-09-18 10:35:04 +02:00
regexowl
31859822e9 test: Update ImagesTable tests
This updates ImagesTable.test.js after bumping react and testing-library.
2023-08-30 16:01:02 +02:00
regexowl
77ff00d107 lint: Fix the "Expected a default case" warning
This fixes the "Expected a default case" warning
2023-08-23 14:54:23 +02:00
Thomas Lavocat
3b8afeaf7d eslint/excpect: should not be called conditionally
This commit fixes the error but not really the pattern. We should
consider refactoring the tests following these guidelines:
https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-conditional-expect.md
2023-08-17 17:18:55 +02:00
regexowl
5b516a5270 test/fixtures: Update timestamps of mock composes
The format of the timestamps of mock composes was causing an error in msw browser after merging https://github.com/RedHatInsights/image-builder-frontend/pull/1137

This updates the mock timestamps to the format of the actual ones fetched from the API.
2023-08-07 14:36:19 +02:00
regexowl
608ca157eb test/fixtures: Update compose fixture and migrate it to TypeScript
This adds `request` to a reponse from the `composes/{composeId}` endpoint and `meta` to a response from the `/composes/{composeId}/clones` endpoint as per API documentation.

The incomplete responses were causing problems when fetching data from the endpoints mentioned above.

The fixture was also migrated to TypeScript.
2023-08-07 10:20:44 +02:00
regexowl
f7d4ffa2e8 test/ImagesTable: Remove scrollTo is not a function console error
This eliminates the `Error: Uncaught [TypeError: stepBody.scrollTo is not a function]` console error by mocking `scrollTo` as a prototype.

The error was caused by `scrollTo` not being implemented in JSDOM.
2023-07-18 17:12:32 +02:00
regexowl
3c85be25bb test/ImagesTable: Remove should be wrapped into act() error
This wraps clicking on an error popover into `act()` and thus removes the `When testing, code that causes React state updates should be wrapped into act(...)` error.
2023-07-11 15:37:41 +02:00
mgold1234
27c620939a LandingPage: Add edge images table
This commit adds the edge images table as a federated module, gated behind a feature flag.
the configuration is for dev environment to work with federation modules locally
2023-06-26 12:54:10 +02:00
regexowl
5c8a08f45c ImagesTable: Add image details and update ClonesTable
This adds expandable rows details for each image and updates ClonesTable according to the new mocks.
2023-06-14 16:07:27 +02:00
lucasgarfield
c3e86b95fd Mock Service Worker: Add image handlers
This commit adds handlers to MSW for the composes, clones, and their
respective status routes.
2023-06-06 11:48:14 +02:00
Klara Simickova
6af015f0e0 Revert "ImagesTable: Update ClonesTable"
This reverts commit 2f55648310.
2023-06-01 18:12:08 +02:00
regexowl
2f55648310 ImagesTable: Update ClonesTable
This updates ClonesTable according to the new mocks.
2023-06-01 16:38:49 +02:00
regexowl
8f021105b4 test: Move mock json blobs to fixtures
This moves all mock json blobs from the Mock Service Worker handlers and component tests into one central location under `/fixtures`.
2023-05-30 10:41:51 +02:00
regexowl
d54d347d83 ClonesTable: Remove created_at column from the clones table
This removes the `created_at` column from the clones table as per the latest designs.
2023-05-05 12:26:16 +02:00
lucasgarfield
675a676709 ClonesTable: Remove Instance column
The instance column is no longer in the clones table per the latest
designs.
2023-05-05 10:38:20 +02:00
lucasgarfield
b2e6e3cf04 Wizard: Use useChrome hook to set beta feature flag
The use of chrome.isBeta is deprecated, the useChrome hook should be
used instead to obtain an isBeta() function. Using the deprecrated
chrome.isBeta pollutes the browser console with warning messages.

This commit replaces the isBeta() helper function with a new custom
hook, useGetEnvironment().

We still sometimes need to know which environment is running outside of
React components, where we cannot call the useChrome() or
useGetEnvironment() hooks. For instance, in the json used to define a
wizard step. Therefore a new isBeta variable has been added to the
form's initialState for use in these cases.
2023-04-28 17:07:31 +02:00
regexowl
031fd08b91 ImagesTable: Add popovers with error details for failed builds
This removes error details from the image detail and moves them to popovers activated by clicking on "Image build failed" status.

Popovers were also added for clones which didn't include any error details previously.
2023-04-25 11:20:34 +02:00
lucasgarfield
bc1435994d Router: Modify /share and /imagewizard routing
Insights offers 'quickstarts', which can be used to provide
mini-tutorials in a sidebar.

Unfortunately, these quickstarts change our URL... they add an optional
query parameter related to the quickstart. The process of doing so
destroys our router's `location`, setting it to undefined.

We have been using the location state to store the GUID of the image,
needed when opening the wizard via the `Recreate image` action or when
opening the share modal.

As a workaround, we can simply accept that the quickstarts will change
our URL and destroy our router's location. Instead, we now put the image
id (its UUID) in the route itself. We can access it in the components as
necessary via the useParams hook.
2023-04-20 14:59:12 +02:00
Sanne Raymaekers
341b37a567 ImagesTable/RegionsPopover: add "go to beta" under launch 2023-04-14 17:36:31 +02:00
regexowl
f92cae1fc2 DevDeps: Bump @testing-library/user-event from 13.5.0 to 14.4.3
This bumps user-event library by a major release and resolves the breaking changes.

Direct invocation of `userEvent` APIs (such as `userEvent.click()`and `userEvent.type()`) was replaced by calling the methods returned by `userEvent.setup()` as described here:
https://testing-library.com/docs/user-event/intro
2023-03-24 15:09:51 +01:00
lucasgarfield
4000b8d5e5 ESLint: Add prefer-const rule
Require const declarations for variables that are never reassigned after
being declared. If a variable is never reassigned, using the const
declaration is better. const declaration tells readers, “this variable
is never reassigned,” reducing cognitive load and improving
maintainability.
2023-02-10 11:37:06 +01:00
lucasgarfield
772aca36fa build(deps): bump @redhat-cloud-services/frontend-components-utilities from 3.2.16 to 3.3.11
Moving to @redhat-cloud-services/frontend-component utilities broke
several tests, this commit fixes those tests.

Additionally, this commit bumps @patternfly/react-core and
@patternfly/react-table to versions 4.267.6 and 4.112.6, respectively.
2023-01-09 12:40:27 +01:00
lucasgarfield
670f1c106f ImagesTable: Fix status bug
Fixes #899. The status of images (parent images and clones) in the
clones table was displayed incorrectly - the 'highest priority'
(e.g. failure > success) was displayed for all images.

This was due to a bug in a conditional in the ImageBuildStatus
component. In the main images table, rows for AWS images should display
the highest priority status of *all* images. A single failed clone
should cause the status of the row in the main images table to be
failure, even if the parent compose status is successful.

This logic was incorrectly being applied to *all* statuses. This commit
fixes this - from now on, this logic is only used for rows in the main
images table.
2023-01-06 14:20:06 +01:00
Sanne Raymaekers
cb8ab9347e CreateImageWizard: use non-deprecated image type aliases
'ami' was deprecated a while ago, and is kept around as an alias of
'aws'. Same with 'vhd' and 'azure', and 'vhd' and 'gcp'.

This maintains support for the old aliases where necessary.
2022-12-06 15:14:53 +01:00