diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/public/translations/datacentres/order/Messages_fr_FR.json b/packages/manager/apps/hpc-vmware-managed-vcd/public/translations/datacentres/order/Messages_fr_FR.json
index 0d75f37edcec..38d7cdbfc1bb 100644
--- a/packages/manager/apps/hpc-vmware-managed-vcd/public/translations/datacentres/order/Messages_fr_FR.json
+++ b/packages/manager/apps/hpc-vmware-managed-vcd/public/translations/datacentres/order/Messages_fr_FR.json
@@ -8,6 +8,7 @@
"managed_vcd_vdc_order_ram_value": "{{ram}} Go",
"managed_vcd_vdc_order_vcpu_count": "Nombre de vCPU",
"managed_vcd_vdc_order_type": "Type",
+ "managed_vcd_vdc_order_performance_class": "{{performanceClass}}/To",
"managed_vcd_vdc_order_price": "Prix",
"managed_vcd_vdc_order_price_detail": "Prix pour 1 mois",
"managed_vcd_vdc_order_quantity_title": "Choisir une quantité",
diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/components/datagrid/storage/StorageOrderCells.component.tsx b/packages/manager/apps/hpc-vmware-managed-vcd/src/components/datagrid/storage/StorageOrderCells.component.tsx
index 0ee805d7f77f..a4f72dcf8439 100644
--- a/packages/manager/apps/hpc-vmware-managed-vcd/src/components/datagrid/storage/StorageOrderCells.component.tsx
+++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/components/datagrid/storage/StorageOrderCells.component.tsx
@@ -30,8 +30,8 @@ export const StorageOrderSelectCell = (storage: VCDOrderableStoragePriced) => {
);
};
-export const StorageOrderTypeCell = (storage: VCDOrderableStoragePriced) => (
- {storage.name}
+export const StorageOrderTypeCell = ({ name }: VCDOrderableStoragePriced) => (
+ {name}
);
export const StorageOrderPriceCell = (storage: VCDOrderableStoragePriced) => {
@@ -45,3 +45,14 @@ export const StorageOrderPriceCell = (storage: VCDOrderableStoragePriced) => {
);
};
+
+export const StoragePerformanceClassCell = ({
+ performanceClass,
+}: VCDOrderableStoragePriced) => {
+ const { t } = useTranslation('datacentres/order');
+ return (
+
+ {t('managed_vcd_vdc_order_performance_class', { performanceClass })}
+
+ );
+};
diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.page.tsx b/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.page.tsx
index 520f7041c4f0..9b604c4f95a9 100644
--- a/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.page.tsx
+++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.page.tsx
@@ -8,8 +8,10 @@ import {
StorageOrderPriceCell,
StorageOrderSelectCell,
StorageOrderTypeCell,
+ StoragePerformanceClassCell,
} from '@/components/datagrid/storage/StorageOrderCells.component';
import {
+ PERFORMANCE_CLASS_LABEL,
STORAGE_ORDER_MAX_QUANTITY,
STORAGE_ORDER_MIN_QUANTITY,
} from './datacentreStorageOrder.constants';
@@ -31,6 +33,12 @@ export default function StorageOrderPage() {
label: t('managed_vcd_vdc_order_type'),
isSortable: false,
},
+ {
+ id: 'performanceClass',
+ cell: StoragePerformanceClassCell,
+ label: PERFORMANCE_CLASS_LABEL,
+ isSortable: false,
+ },
{
id: 'price',
cell: StorageOrderPriceCell,
diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.spec.tsx b/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.spec.tsx
index d40f5775feed..e45cd69bc907 100644
--- a/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.spec.tsx
+++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/DatacentreStorageOrder.spec.tsx
@@ -3,9 +3,11 @@ import userEvent from '@testing-library/user-event';
import {
organizationList,
datacentreList,
+ orderableResourceData,
} from '@ovh-ux/manager-module-vcd-api';
import { assertTextVisibility } from '@ovh-ux/manager-core-test-utils';
import { labels, renderTest } from '../../../../test-utils';
+import { PERFORMANCE_CLASS_LABEL } from './datacentreStorageOrder.constants';
const orderCTA = labels.datacentresStorage.managed_vcd_vdc_storage_order_cta;
const orderTitle = labels.datacentresOrder.managed_vcd_vdc_order_storage_title;
@@ -17,11 +19,32 @@ describe('Datacentre Storage Order Page', () => {
initialRoute: `/${organizationList[0].id}/datacentres/${datacentreList[0].id}/storage`,
});
+ const { name, performanceClass } = orderableResourceData.storage[0];
+
+ // checks CTA
await assertTextVisibility(orderCTA);
const orderButton = screen.getByText(orderCTA);
await waitFor(() => userEvent.click(orderButton));
await assertTextVisibility(orderTitle);
+
+ // check datagrid content
+ await assertTextVisibility(
+ labels.datacentresOrder.managed_vcd_vdc_order_type,
+ );
+ await assertTextVisibility(name);
+
+ await assertTextVisibility(PERFORMANCE_CLASS_LABEL);
+ await assertTextVisibility(
+ labels.datacentresOrder.managed_vcd_vdc_order_performance_class
+ .toString()
+ .replace('{{performanceClass}}', performanceClass),
+ );
+
+ await assertTextVisibility(
+ labels.datacentresOrder.managed_vcd_vdc_order_price,
+ );
+ await assertTextVisibility('80.00 €');
});
it('display an error if orderableResource service is KO', async () => {
diff --git a/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/datacentreStorageOrder.constants.ts b/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/datacentreStorageOrder.constants.ts
index fdcfb737c473..806b72ea4bd2 100644
--- a/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/datacentreStorageOrder.constants.ts
+++ b/packages/manager/apps/hpc-vmware-managed-vcd/src/pages/dashboard/datacentre/storage-order/datacentreStorageOrder.constants.ts
@@ -1,2 +1,3 @@
export const STORAGE_ORDER_MIN_QUANTITY = 1;
export const STORAGE_ORDER_MAX_QUANTITY = 50;
+export const PERFORMANCE_CLASS_LABEL = 'Performance class';
diff --git a/packages/manager/modules/vcd-api/src/mocks/vcd-datacentre/vdc-orderable-resource.mock.ts b/packages/manager/modules/vcd-api/src/mocks/vcd-datacentre/vdc-orderable-resource.mock.ts
index 1a152cad328d..dba0362d17d9 100644
--- a/packages/manager/modules/vcd-api/src/mocks/vcd-datacentre/vdc-orderable-resource.mock.ts
+++ b/packages/manager/modules/vcd-api/src/mocks/vcd-datacentre/vdc-orderable-resource.mock.ts
@@ -30,6 +30,7 @@ export const orderableResourceData: VCDOrderableResourceData = {
name: 'vcd-datastore-1000',
profile: 'vcd-datastore-1000',
type: 'storage',
+ performanceClass: '250',
},
],
};
diff --git a/packages/manager/modules/vcd-api/src/types/vcd-orderable-resource.type.ts b/packages/manager/modules/vcd-api/src/types/vcd-orderable-resource.type.ts
index e98433d21ae1..1c964946f256 100644
--- a/packages/manager/modules/vcd-api/src/types/vcd-orderable-resource.type.ts
+++ b/packages/manager/modules/vcd-api/src/types/vcd-orderable-resource.type.ts
@@ -5,7 +5,9 @@ import { VCDCatalogProductPricing } from './vcd-catalog.type';
export type VCDOrderableVHost = Omit & {
vCPUSpeed: number;
};
-export type VCDOrderableStorage = Omit;
+export type VCDOrderableStorage = Omit & {
+ performanceClass: string;
+};
type WithPricing = T & { pricing: VCDCatalogProductPricing };