From 180f925b5b8fc38a8357e0ed59670e5237da3337 Mon Sep 17 00:00:00 2001 From: Muslimjon <59481011+mkholjuraev@users.noreply.github.com> Date: Tue, 14 Nov 2023 12:32:49 +0100 Subject: [PATCH] fix(ImmutableDevices): image name should take to image details page (#2088) --- config/cypress.webpack.config.js | 1 + config/overrideChrome.js | 2 +- cypress/support/interceptors.js | 2 +- .../ImmutableDevices/ImmutableDevices.cy.js | 24 ++++++++++++++++++- src/components/ImmutableDevices/columns.js | 17 ++++++++++--- 5 files changed, 40 insertions(+), 6 deletions(-) diff --git a/config/cypress.webpack.config.js b/config/cypress.webpack.config.js index 30e26b7d7..f542db9d2 100644 --- a/config/cypress.webpack.config.js +++ b/config/cypress.webpack.config.js @@ -34,6 +34,7 @@ webpackConfig.module.rules.push({ __dirname, './overrideChrome.js' ), + '../useChrome': resolve(__dirname, './overrideChrome.js'), }, }, }); diff --git a/config/overrideChrome.js b/config/overrideChrome.js index 952c79952..3040a159a 100644 --- a/config/overrideChrome.js +++ b/config/overrideChrome.js @@ -5,7 +5,7 @@ const chromeMock = { appObjectId: () => {}, on: () => {}, getApp: () => 'inventory', - getBundle: () => 'rhel', + getBundle: () => 'insights', getUserPermissions: () => [{ permission: 'inventory:*:*' }], auth: { getUser: () => diff --git a/cypress/support/interceptors.js b/cypress/support/interceptors.js index 7e4a94982..2db7a58b0 100644 --- a/cypress/support/interceptors.js +++ b/cypress/support/interceptors.js @@ -211,7 +211,7 @@ export const hostsInterceptors = { page: 1, per_page: DEFAULT_ROW_COUNT, total: 1, - results: ['some-edge-device'], + results: [{ ImageName: 'some-edge-device', ImageSetID: '00000' }], }, }); } else { diff --git a/src/components/ImmutableDevices/ImmutableDevices.cy.js b/src/components/ImmutableDevices/ImmutableDevices.cy.js index 1bedc6d5f..199870717 100644 --- a/src/components/ImmutableDevices/ImmutableDevices.cy.js +++ b/src/components/ImmutableDevices/ImmutableDevices.cy.js @@ -14,7 +14,14 @@ const defaultProps = { const MockRouter = ({ path = '/insights/inventory', ...props }) => ( } /> - } /> + Image detail} + /> + Device detail} + /> ); @@ -171,4 +178,19 @@ describe('ImmutableDevices', () => { cy.get('#mock-detail-page'); }); + + it('Should take to image details page in image-builder app on system name click', () => { + const getEntitiesProp = getEntities((row, index) => { + row.ImageName = `Test-image-${index}`; + row.ImageSetID = '00000'; + return row; + }); + + mountWithProps({ ...defaultProps, getEntities: getEntitiesProp }); + + cy.get('table[aria-label="Host inventory"]').should('be.visible'); + + cy.get('a[aria-label="image-name-link"]').first().click(); + cy.get('#mock-image-detail-page'); + }); }); diff --git a/src/components/ImmutableDevices/columns.js b/src/components/ImmutableDevices/columns.js index 2f1021550..0b10c6d79 100644 --- a/src/components/ImmutableDevices/columns.js +++ b/src/components/ImmutableDevices/columns.js @@ -1,14 +1,25 @@ import React from 'react'; import Status from './Status'; import { getDeviceStatus } from './helpers'; +import InsightsLink from '@redhat-cloud-services/frontend-components/InsightsLink'; + +const ImageNameCell = (imageName, __uuid, { ImageSetID }) => { + return ( + + {imageName} + + ); +}; export const edgeColumns = [ { key: 'ImageName', title: 'Image', - renderFunc: (imageName, uuid) => { - return {imageName}; - }, + renderFunc: ImageNameCell, props: { isStatic: true }, }, {