Commit graph

27 commits

Author SHA1 Message Date
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
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
8597929ff3 test: test: Remove act() warnings
This removes `Warning: An update to <component> inside a test was not wrapped inact(...)` warnings.
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
regexowl
f2f64945c1 test: Migrate remaining files to TypeScript
This migrates remaining JavaScript file to TypeScript.
2024-05-03 16:36:26 +02: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
regexowl
d3eaccc636 test: Fix "Unnecessary escape character" error
This fixes an error triggered by the no-useless-escape rule.
2023-11-08 14:15:17 +01:00
regexowl
7b0b9a8ddc test: Fix await-async-events error
After cleaning up the ESLint plugins a new error for eslint-plugin-testing-library popped up. This PR solves all of the occurences of `Promise returned from async event method `user` must be handled` and removes the `"testing-library/await-async-events": "off"` switch which was temporary put in place.
2023-11-08 14:15:17 +01:00
jkozol
cf1d477544 ShareImageModal: update the typeahead selector to pf5
This dropdown needed to be update as part of the overall pf5 upgrade.
Each of the components in the select now need to be declared and
handled. Also, some of the Select and SelectOption props come from the
Menu props since Select inherits Menu.
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
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
ecb33431c4 test: Update ShareImageModal tests
This updates ShareImageModal.test.js after bumping react and testing-library.
2023-08-30 16:01:02 +02:00
Thomas Lavocat
2b051823bf test/ShareImageModal: use act when accessing the UI
Errors were fired upon while testing the ShareImageModal because some
clicks on the UI were not encapsulated in an act block. This is now
patched up.
2023-08-09 16:03:00 +02:00
Thomas Lavocat
8144aaa76d test/ShareImageModal: only render the modal
Before, the LandingPage was not properly rendering because
EdgeImagesTable has a dependency to Scalprum. Scalprum is a service that
is provided by Insight that enables up to access shared components.
However scalprum wasn't getting initialized properly during the
execution of the unit tests making the entire LandingPage not rendering.

There are ways to mock scalprum but this commit takes another decision
to fix the issue. Instead of having a test environment rendering the
LandingPage and the Wizard to test the ShareImageModal, the rendering is
tailored to ShareImageModal needs, which only contains the rendering of
that said module + static routes to avoid 404 on final redirections.

This makes the scalprum errors go without hurting the coverage of the
tests.
2023-08-09 16:03:00 +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
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
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
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
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
Martin Maroši
aa0a21301c Do not append extra / in resolveRelPath 2023-01-12 15:41:26 +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
regexowl
ab1a7f4aab ESLint: Use --fix with updated rules to order imports
This applies the updated sorting rules to the files by running `npm run lint:js:fix`
2022-12-02 16:29:58 +01:00
Sanne Raymaekers
c982fe7038 test: fix console warnings
- fix proptype of RegionsSelect
- wrap state-changing events in act
2022-11-09 15:29:50 +01:00
lucasgarfield
c49d96871a Tests: Add tests for ImagesTable, ClonesTable, and new ShareImageModal 2022-11-08 11:29:31 +01:00