diff --git a/src/js/mock/managementClientMSWHandlers.ts b/src/js/mock/managementClientMSWHandlers.ts
index f02b6a7b7..1cefd7873 100644
--- a/src/js/mock/managementClientMSWHandlers.ts
+++ b/src/js/mock/managementClientMSWHandlers.ts
@@ -144,17 +144,22 @@ export const LOCATIONS = {
name: 'ring-nick',
objectId: '99a06f79-c62c-11ec-b993-7e8a0ab79998',
},
- 'us-east-1': {
- isBuiltin: true,
- locationType: 'location-file-v1',
- name: 'us-east-1',
- objectId: '95dbedf5-9888-11ec-8565-1ac2af7d1e53',
- },
[azureblobstorage]: {
locationType: 'location-azure-v1',
name: azureblobstorage,
details: {},
},
+ 'us-east-1': {
+ details: {
+ bootstrapList: [
+ 'artesca-storage-service-hdservice-proxy.xcore.svc:18888',
+ ],
+ repoId: null,
+ },
+ locationType: 'location-scality-hdclient-v2',
+ name: 'us-east-1',
+ objectId: '22f31240-4bd3-11ee-98b3-1e5b6f897bc7',
+ },
};
export const ENDPOINTS = [
diff --git a/src/react/locations/LocationsList.tsx b/src/react/locations/LocationsList.tsx
index f758c5031..67f21b6b5 100644
--- a/src/react/locations/LocationsList.tsx
+++ b/src/react/locations/LocationsList.tsx
@@ -178,6 +178,7 @@ const ActionButtons = ({
variant="danger"
onClick={() => setShowModal(true)}
type="button"
+ aria-label="Delete Location"
tooltip={{
overlay: ,
overlayStyle: { textAlign: 'left' },
@@ -220,7 +221,6 @@ export function LocationsList() {
const loadingBuckets = useSelector(
(state: AppState) => state.networkActivity.counter > 0,
);
-
const SEARCH_QUERY_PARAM = 'search';
const columns = useMemo(() => {
const dataUsedColumn = getDataUsedColumn(
diff --git a/src/react/locations/__tests__/LocationList.test.tsx b/src/react/locations/__tests__/LocationList.test.tsx
new file mode 100644
index 000000000..0fd91b78d
--- /dev/null
+++ b/src/react/locations/__tests__/LocationList.test.tsx
@@ -0,0 +1,62 @@
+import {
+ screen,
+ waitForElementToBeRemoved,
+ within,
+} from '@testing-library/react';
+import { setupServer } from 'msw/node';
+import { rest } from 'msw';
+import {
+ getConfigOverlay,
+ getStorageConsumptionMetricsHandlers,
+} from '../../../js/mock/managementClientMSWHandlers';
+import {
+ TEST_API_BASE_URL,
+ mockOffsetSize,
+ renderWithRouterMatch,
+ zenkoUITestConfig,
+} from '../../utils/testUtil';
+import { INSTANCE_ID } from '../../actions/__tests__/utils/testUtil';
+import { LocationsList } from '../LocationsList';
+
+const server = setupServer(
+ getConfigOverlay(TEST_API_BASE_URL, INSTANCE_ID),
+ ...getStorageConsumptionMetricsHandlers(
+ zenkoUITestConfig.managementEndpoint,
+ INSTANCE_ID,
+ ),
+ rest.get(
+ `${TEST_API_BASE_URL}/api/v1/instance/${INSTANCE_ID}/status`,
+ (req, res, ctx) => res(ctx.json({})),
+ ),
+);
+
+describe('LocationList', () => {
+ beforeAll(() => {
+ jest.setTimeout(20_000);
+ mockOffsetSize(500, 100);
+ server.listen({ onUnhandledRequest: 'error' });
+ });
+ afterEach(() => {
+ server.resetHandlers();
+ });
+ afterAll(() => {
+ server.close();
+ });
+ it('should disable the delete button for default location', async () => {
+ //S
+ renderWithRouterMatch();
+ //E
+ await waitForElementToBeRemoved(() => [
+ ...screen.queryAllByText(/Loading/i),
+ ]);
+ const hdLocationRow = screen.getByRole('row', {
+ name: /us-east-1 Storage Service for ARTESCA/i,
+ });
+ //V
+ expect(
+ within(hdLocationRow).getByRole('button', {
+ name: /Delete Location/i,
+ }),
+ ).toBeDisabled();
+ });
+});