Commit graph

887 commits

Author SHA1 Message Date
dependabot[bot]
4b4f5adbbc build(deps-dev): bump babel-jest from 29.3.1 to 29.5.0
Bumps [babel-jest](https://github.com/facebook/jest/tree/HEAD/packages/babel-jest) from 29.3.1 to 29.5.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.5.0/packages/babel-jest)

---
updated-dependencies:
- dependency-name: babel-jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-14 08:25:40 +01:00
Sanne Raymaekers
808d8b8452 CreateImageWizard/Registration: remove extra rhc/insights vars
They just complicated the logic, might as well rely on the form api
value.
2023-03-13 13:48:43 +01:00
Sanne Raymaekers
9d0448979d CreateImageWizard: fix plain list styling
The list styling should only apply to unordered lists (present on the
review page).
2023-03-13 13:48:43 +01:00
Sanne Raymaekers
7635bda168 CreateImageWizard/Registration: refine tooltip texts 2023-03-13 13:48:43 +01:00
regexowl
52f1059e1a Dev Deps: Bump @scalprum/react-core and @redhat-cloud-services/frontend-components
This bumps:
- `@scalprum/react-core` from 0.2.8 to 0.4.1
- `@redhat-cloud-services/frontend-components` from 3.9.25 to 3.9.32

The bump was ending with failing tests and an error `SyntaxError: Cannot use import statement outside a module`.

The problem lies in Jest not transforming files inside the `node_modules` by default. To transpile the modules that were triggering the error the `transformIgnorePatterns` was added.
2023-03-13 12:13:48 +01:00
dependabot[bot]
f7a8616592 build(deps-dev): bump sass-loader from 13.0.2 to 13.2.0
Bumps [sass-loader](https://github.com/webpack-contrib/sass-loader) from 13.0.2 to 13.2.0.
- [Release notes](https://github.com/webpack-contrib/sass-loader/releases)
- [Changelog](https://github.com/webpack-contrib/sass-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/sass-loader/compare/v13.0.2...v13.2.0)

---
updated-dependencies:
- dependency-name: sass-loader
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-13 09:06:56 +01:00
dependabot[bot]
a70edefdb7 build(deps-dev): bump @testing-library/dom from 8.18.1 to 9.0.1
Bumps [@testing-library/dom](https://github.com/testing-library/dom-testing-library) from 8.18.1 to 9.0.1.
- [Release notes](https://github.com/testing-library/dom-testing-library/releases)
- [Changelog](https://github.com/testing-library/dom-testing-library/blob/main/CHANGELOG.md)
- [Commits](https://github.com/testing-library/dom-testing-library/compare/v8.18.1...v9.0.1)

---
updated-dependencies:
- dependency-name: "@testing-library/dom"
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-10 09:03:58 +01:00
dependabot[bot]
549678053b build(deps-dev): bump eslint from 8.32.0 to 8.35.0
Bumps [eslint](https://github.com/eslint/eslint) from 8.32.0 to 8.35.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Changelog](https://github.com/eslint/eslint/blob/main/CHANGELOG.md)
- [Commits](https://github.com/eslint/eslint/compare/v8.32.0...v8.35.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-09 13:04:55 +01:00
Alexander Todorov
0b3d6a2b01 Specify ouiaId to use as selector for testing
see release_select for ImageOutputReleaseSelect for example
2023-03-09 12:27:21 +01:00
dependabot[bot]
42162c9350 build(deps-dev): bump @redhat-cloud-services/frontend-components-config
Bumps [@redhat-cloud-services/frontend-components-config](https://github.com/RedHatInsights/frontend-components) from 4.6.36 to 4.7.0.
- [Release notes](https://github.com/RedHatInsights/frontend-components/releases)
- [Commits](https://github.com/RedHatInsights/frontend-components/commits)

---
updated-dependencies:
- dependency-name: "@redhat-cloud-services/frontend-components-config"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-09 12:13:23 +01:00
regexowl
a7d915dad7 Wizard: Ensure only one scrollbar on the Packages step
Fixes #914.

This adds a maximum height limit to the dual list selector on the Packages step.
That way the Wizard doesn't become scrollable when the Packages search returns more results.
2023-03-09 11:13:37 +01:00
Sanne Raymaekers
724668a3a4 CreateImageWizard: add org id in activation key popover 2023-03-08 16:45:31 +01:00
Sanne Raymaekers
62421e3670 CreateImageWizard: update register later text 2023-03-08 16:45:31 +01:00
Sanne Raymaekers
9e6d951641 CreateImageWizard: rhc support 2023-03-08 16:45:31 +01:00
dependabot[bot]
60a6021585 build(deps-dev): bump jest from 29.4.1 to 29.5.0
Bumps [jest](https://github.com/facebook/jest/tree/HEAD/packages/jest) from 29.4.1 to 29.5.0.
- [Release notes](https://github.com/facebook/jest/releases)
- [Changelog](https://github.com/facebook/jest/blob/main/CHANGELOG.md)
- [Commits](https://github.com/facebook/jest/commits/v29.5.0/packages/jest)

---
updated-dependencies:
- dependency-name: jest
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-08 12:08:14 +01:00
dependabot[bot]
31876de8b0 build(deps-dev): bump @babel/plugin-transform-runtime
Bumps [@babel/plugin-transform-runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-runtime) from 7.19.6 to 7.21.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.0/packages/babel-plugin-transform-runtime)

---
updated-dependencies:
- dependency-name: "@babel/plugin-transform-runtime"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-03-08 11:37:38 +01:00
lucasgarfield
f0ae99b31e ClonesTable: Ensure source exists before reading its account_id property
If a clone is created using a source, and the source is then deleted,
the source will be undefined. Attempting to read the account_id from
undefined causes the app to crash. Optional chaining fixes this.
2023-03-08 10:53:39 +01:00
Sanne Raymaekers
b729edf152 CreateImageWizard: handle SearchInput api change 2023-03-07 18:20:00 +01:00
Sanne Raymaekers
d163d32869 package.json: update @patternfly/react-core
Includes the `isPlain` styling for the `TextList` component.
2023-03-07 18:20:00 +01:00
lucasgarfield
39af9bddeb ImagesTable: Only show Launch link for images using sources
The Launch service wizard should only be used to launch AWS images that
were created using share_with_sources (and not share_with_accounts) in
their request.

The Launch service only supports a single source at the moment, as does
the Image Builder Frontend. Therefore, we do not pass the entire
share_with_sources array - only the 0th element, which should be the
`only` source for images created using the front-end. We do not expect
full compatibility between images created using the API (which could
theoretically have multiple sources in share_with_sources) and Image
Builder Frontend.
2023-03-07 16:28:38 +01:00
lucasgarfield
5d4e365ef8 ImagesTable: Display AWS account number when image uses sources
This commit displays the AWS account number in the `Account` column in
the AWS clones table.
2023-03-07 15:07:25 +01:00
lucasgarfield
deae5438a1 ShareImageModal: Add support for sources
This commit allows sharing (cloning) composes that use the sources
service to resolve the AWS account ID.
2023-03-07 15:07:25 +01:00
regexowl
050808b181 Wizard: Fix disabled search input on the Additional custom packages step
The search input on the Packages step is disabled until needed data is fetched. This was causing a problem on the Additional custom packages step which uses the same component.

A check of the current step was added so the search input gets disabled only for the Packages step.
2023-03-07 14:00:28 +01:00
regexowl
753afa197d Wizard: Get distribution repositories from an api endpoint
Previously the base repository links for each distribution were read from `repos.js` file. This gets the needed information
from a call to api endpoint `architectures/{distribution}`. The data is fetched via RTK Query and is then filtered by an
architecture. For now the x86_64 architecture is hardcoded, this will change when multiple architectures get available.
2023-03-07 08:34:03 +01:00
lucasgarfield
b861b3dde8 Wizard: Update activation keys link text and URI
This commit updates the link on the registration step so users are
directed to the exact place where they can manage keys.

Because managing keys through the customer portal will soon become
deprecated (keys will be managed through the keys service on insights)
the text was also changed to be more general.
2023-03-06 15:51:34 +01:00
Simon Steinbeiss
47436e6933 Landingpage: Switch to CodeBranchIcon
Use the CodeBranchIcon instead of just CodeIcon for the Open Source
Services popover button.
COMPOSER-1899
2023-03-01 16:44:31 +01:00
lucasgarfield
5bd9756a45 Tests/Wizard: Add tests for AWS sources
This commit adds tests for the new AWS sources feature.
2023-03-01 11:25:28 +01:00
lucasgarfield
3ff80a7398 Tests/Wizard: Fix tests broken by AWS sources
This commit fixes the tests broken by adding the AWS sources feature. No
new tests have been added in this commit.
2023-03-01 11:25:28 +01:00
lucasgarfield
51bcae3233 Mock Service Worker: Update provisioning/sources handlers
This commit adds mock service worker handlers for the
/provisioning/sources and /provisioning/${ID}/account_identity
endpoints. These API mocks are necessary as requests to these endpoints are
now made by the new aws sources feature.
2023-03-01 11:25:28 +01:00
lucasgarfield
53ce67ab47 Wizard: Add beta flag for AWS sources
This commit makes the new AWS sources feature only available in beta.

Note that the RTKQ hooks related to AWS sources are called in several
places outside of the AWS Target step (a prefetch on the Image Output
step and useQuery hook on the review step) but have not been hidden
behind beta flags - this should not present any problems and will make
exposing this feature in stable much easier when the time comes.
2023-03-01 11:25:28 +01:00
lucasgarfield
a474163343 Wizard: Add ability to specify AWS target using sources
This commit adds the ability to specify AWS targets using the sources
service on insights.

This is the first commit to the codebase that makes use of the new RTK
Query endpoints, so I will provide a bit of additional context here:

The sources are obtained by calling the `useGetAWSSourcesQuery()` hook.
This hook can be called in any component where information about the
sources is needed.

A few tricks are used to make the user experience as responsive as
possible.

The `prefetch()` hook provided by RTK Query is called when the user
clicks on the AWS button on the image output step. This triggers the
initial request for the sources, which will then (hopefully) be ready by the
time the user clicks to the next step (the AWS target environment step)
where they are needed.

Because we anticipate a common user workflow to involve using the Create
image wizard in one browser tab and the sources service in another tab,
sources are also refetched every time the source dropdown is opened.
This means that if a user adds a source while in the middle of using the
wizard, they will be able to see it in the wizard's sources dropdown
without refreshing their browser.

Finally, because of the `Recreate image` feature, the
`useGetAWSSourcesQuery` hook also needs to be called on the review step.
2023-03-01 11:25:28 +01:00
lucasgarfield
7768c44630 RTK Query: Update provisioning/sources endpoint
This commit replaces the `getSources` endpoint with an AWS specific
endpoint, `getAWSSources`.

This is necessary because the provisioning/sources endpoint was recently
updated and now has an optional query parameter, ?provider, that allows
requesting sources from a specific provider (aws, azure, etc...).

Unfortunately, the response from /provisioning/sources?provider=aws does
not include the associated aws account id, which has to be requested
from a different endpoint.

The new `getAWSSources` endpoint combines these two requests - first it
requests the list of aws sources, then it requests the associated aws
account id for each source.

Combining these two requests into a single RTK Query endpoint is
advantageous because all relevant information can be retreived with a
single call to the `useGetAWSSourcesQuery` hook.
2023-03-01 11:25:28 +01:00
dependabot[bot]
1ebcfd7af2 build(deps-dev): bump sass from 1.57.1 to 1.58.3
Bumps [sass](https://github.com/sass/dart-sass) from 1.57.1 to 1.58.3.
- [Release notes](https://github.com/sass/dart-sass/releases)
- [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md)
- [Commits](https://github.com/sass/dart-sass/compare/1.57.1...1.58.3)

---
updated-dependencies:
- dependency-name: sass
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-28 10:11:28 +01:00
dependabot[bot]
77a1cfd078 build(deps-dev): bump @babel/core from 7.20.12 to 7.21.0
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core) from 7.20.12 to 7.21.0.
- [Release notes](https://github.com/babel/babel/releases)
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md)
- [Commits](https://github.com/babel/babel/commits/v7.21.0/packages/babel-core)

---
updated-dependencies:
- dependency-name: "@babel/core"
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-28 10:02:10 +01:00
dependabot[bot]
89139fdd03 build(deps-dev): bump stylelint-config-recommended-scss
Bumps [stylelint-config-recommended-scss](https://github.com/stylelint-scss/stylelint-config-recommended-scss) from 6.0.0 to 7.0.0.
- [Release notes](https://github.com/stylelint-scss/stylelint-config-recommended-scss/releases)
- [Changelog](https://github.com/stylelint-scss/stylelint-config-recommended-scss/blob/master/CHANGELOG.md)
- [Commits](https://github.com/stylelint-scss/stylelint-config-recommended-scss/compare/v6.0.0...v7.0.0)

---
updated-dependencies:
- dependency-name: stylelint-config-recommended-scss
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 17:31:48 +01:00
dependabot[bot]
ac00b7bc90 build(deps): bump @patternfly/patternfly from 4.210.2 to 4.224.2
Bumps [@patternfly/patternfly](https://github.com/patternfly/patternfly) from 4.210.2 to 4.224.2.
- [Release notes](https://github.com/patternfly/patternfly/releases)
- [Changelog](https://github.com/patternfly/patternfly/blob/v5/RELEASE-NOTES.md)
- [Commits](https://github.com/patternfly/patternfly/compare/prerelease-v4.210.2...prerelease-v4.224.2)

---
updated-dependencies:
- dependency-name: "@patternfly/patternfly"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 16:58:57 +01:00
Simon Steinbeiss
d66c141e8d Remove unused variable 2023-02-27 16:54:29 +01:00
Simon Steinbeiss
35c7d6ff29 LandingPage: Show 'Open Service' badge and popover
This commit moves the reference to our source code out of the help
popover to its own.
COMPOSER-1899
2023-02-27 16:54:29 +01:00
dependabot[bot]
6b95f03b3d build(deps): bump react-router-dom from 6.6.2 to 6.8.1
Bumps [react-router-dom](https://github.com/remix-run/react-router/tree/HEAD/packages/react-router-dom) from 6.6.2 to 6.8.1.
- [Release notes](https://github.com/remix-run/react-router/releases)
- [Changelog](https://github.com/remix-run/react-router/blob/main/packages/react-router-dom/CHANGELOG.md)
- [Commits](https://github.com/remix-run/react-router/commits/react-router-dom@6.8.1/packages/react-router-dom)

---
updated-dependencies:
- dependency-name: react-router-dom
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-27 16:29:13 +01:00
lucasgarfield
8adfd793d6 Jest: Add mock service worker server commands to jest.setup.js
This commit makes the `msw` server globally available to all test files.
Given that the majority of our test files will ultimately make calls to
APIs using RTK Query (calls are made in both the table and the wizard),
making these globally available in jest.setup.js is reasonable.
2023-02-22 16:26:15 +01:00
regexowl
a0ed7cd37e App: Disable the global filter
This disables the global filter on the top of the page. So later when an option to filter images by name is added,
there won't be multiple filters which could lead to confusion.
2023-02-22 12:45:04 +01:00
dependabot[bot]
65de66f66d build(deps): bump @reduxjs/toolkit from 1.9.1 to 1.9.3
Bumps [@reduxjs/toolkit](https://github.com/reduxjs/redux-toolkit) from 1.9.1 to 1.9.3.
- [Release notes](https://github.com/reduxjs/redux-toolkit/releases)
- [Commits](https://github.com/reduxjs/redux-toolkit/compare/v1.9.1...v1.9.3)

---
updated-dependencies:
- dependency-name: "@reduxjs/toolkit"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-22 09:49:31 +01:00
Jacob Kozol
d05e9da3d7 ImagesTable: support additional image type labels
If image types are created that do not have a descriptive label then
default to using the image type.
2023-02-17 09:48:49 +01:00
Amir Fefer
acb0991ed4 feat(HMS-776): Add provider to provisioning wizard 2023-02-16 17:33:14 +01:00
Sanne Raymaekers
b5833ca976 src/repos: Fix urls
These URLs are used for package searching with the content-service.

- Remove the google cloud repos, these are added only for gcp
- Fix centos 9 URLs
2023-02-16 14:10:32 +01:00
lucasgarfield
6fd2a04292 Jest: Polyfill fetch and Request
We are migrating towards using RTK Query for API calls, and using `msw`
to mock APIs in our tests.

RTK Query's `fetchBaseQuery` requires the use of `fetch` and `Request`.

`fetch()` was added to Node in v18, and the ability to use it in
Jest tests was added to Jest in v28. However, it still cannot be used
with a `jsdom` test environment.

Therefore, it is necessary to add a polyfill. There are several
libraries available for this but many others in this situation have had
success using `whatwg-fetch` and so it was selected somewhat
arbitrarily.

It is also important that `whatwg-fetch` is imported before
`fetchBaseQuery` (otherwise, a nuisance console warning will be issued).
To ensure this happens, it is imported in a Jest setup file.
2023-02-15 09:23:24 +01:00
lucasgarfield
131559b351 MSW: Add mock definition for /provisioning/v1/sources end point
This commit adds the necessarily handler, resolver, and server to use
MSW for mocking the /provisioning/v1/sources endpoint.

The server can be used in tests like so:
```javascript
// src/setupTests.js
import { server } from './mocks/server.js'
// Establish API mocking before all tests.
beforeAll(() => server.listen())

// Reset any request handlers that we may add during the tests,
// so they don't affect other tests.
afterEach(() => server.resetHandlers())

// Clean up after the tests are finished.
afterAll(() => server.close())
```
2023-02-15 09:23:24 +01:00
lucasgarfield
9d8236ad76 Dev Dependencies: Add Mock Service Worker
As we begin migrating to RTK Query for API calls, we will need a means
of mocking API endpoints for testing that works well with RTKQ. Mock
Service Worker is an API mocking library that uses the Service Worker
API to intercept actual requests and is recommended for use with RTKQ.

https://mswjs.io/docs/

Some additional justification from the creator of RKT Query that
explains why we would not want to simply continue mocking our API
endpoints using Jest:
```
I wouldn't use jest mocking. I would mock the API.

The reason for this being is that your mocks will assume certain return
values from the RTKQ hook - and if your assumptions are wrong, you might
have a nice green running test, but in reality your app will still fail.

An example of this would be using skip and not checking for
isUninitialized - since that case will not come up if you are not using
skip and you might just assume that you will only ever see isLoading,
isSuccess and isError cases in your component. It's a perfectly valid
assumption in many cases, but not always true. Mocking RTKQ would hide
the resulting bug behind green tests.

Instead, I would recommend using something like mock service worker to
just mock your api endpoints and let RTKQ do it's work. That is how we
are testing RTKQ ourselved in our own tests - you are welcome to take a
ook there: RTKQ tests.
```
https://stackoverflow.com/a/70313785
2023-02-15 09:23:24 +01:00
dependabot[bot]
7ff62220d7 build(deps-dev): bump eslint-plugin-testing-library from 5.9.1 to 5.10.1
Bumps [eslint-plugin-testing-library](https://github.com/testing-library/eslint-plugin-testing-library) from 5.9.1 to 5.10.1.
- [Release notes](https://github.com/testing-library/eslint-plugin-testing-library/releases)
- [Changelog](https://github.com/testing-library/eslint-plugin-testing-library/blob/main/.releaserc.json)
- [Commits](https://github.com/testing-library/eslint-plugin-testing-library/compare/v5.9.1...v5.10.1)

---
updated-dependencies:
- dependency-name: eslint-plugin-testing-library
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-02-10 11:59:00 +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