Skip to content

Commit 488cd6b

Browse files
authored
5.4 release (#71)
1 parent a53c561 commit 488cd6b

File tree

18 files changed

+2092
-2017
lines changed

18 files changed

+2092
-2017
lines changed

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@
5656
"ua-parser-js": "0.7.35",
5757
"url-parse": "^1.5.9",
5858
"fast-json-patch": "3.1.1",
59-
"yaml": "2.0.0-1"
59+
"yaml": "2.0.0-1",
60+
"form-data": "^4.0.4",
61+
"sha.js": "2.4.12"
6062
}
6163
}

packages/example/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
"@vitejs/plugin-react": "~4.2.1",
2424
"@vitejs/plugin-basic-ssl": "~1.1.0",
2525
"kcd-scripts": "6.3.0",
26-
"vite": "~5.1.4",
26+
"vite": "~5.4.20",
2727
"vite-plugin-svgr": "~4.3.0"
2828
},
2929
"browserslist": {

packages/example/src/index.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
// Copyright © 2025 Broadcom Inc. and its subsidiaries. All Rights Reserved.
22
import React from 'react';
33
import { createRoot } from 'react-dom/client';
4+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
45
import './index.css';
56
import App from './App';
67

8+
const queryClient = new QueryClient({
9+
defaultOptions: {
10+
queries: {
11+
retry: 1,
12+
refetchOnWindowFocus: false,
13+
},
14+
},
15+
});
16+
717
const root = createRoot(document.getElementById('root'));
818

9-
root.render(<App />);
19+
root.render(
20+
<QueryClientProvider client={queryClient}>
21+
<App />
22+
</QueryClientProvider>
23+
);

packages/layer7-apihub/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@
3434
"recompose": "~0.30.0",
3535
"remove-markdown": "~0.3.0",
3636
"slugify": "~1.4.4",
37-
"swagger-ui-react": "5.21.0",
37+
"swagger-ui-react": "5.29.0",
3838
"trim": "0.0.3",
3939
"tss-react": "4.9.15",
40-
"@tanstack/react-query": "5.74.4"
40+
"@tanstack/react-query": "5.90.2"
4141
},
4242
"peerDependencies": {
4343
"react": ">=18.3.1",
@@ -57,7 +57,7 @@
5757
"kcd-scripts": "6.3.0",
5858
"rimraf": "~3.0.2",
5959
"typescript": "~5.1.6",
60-
"vite": "~5.1.4",
60+
"vite": "~5.4.20",
6161
"vite-tsconfig-paths": "~5.1.4"
6262
},
6363
"files": [

packages/layer7-apihub/src/ApiHubAdmin.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,14 @@ import { ApiHubLayout } from './ApiHubLayout';
2727
import { readApiHubPreference } from './preferences';
2828
import { QueryClient } from '@tanstack/react-query';
2929

30-
const queryClient = new QueryClient({});
30+
const queryClient = new QueryClient({
31+
defaultOptions: {
32+
queries: {
33+
retry: 1,
34+
refetchOnWindowFocus: false,
35+
},
36+
},
37+
});
3138

3239
export const ApiHubAdmin = props => {
3340
const {

packages/layer7-apihub/src/apis/ApiShow.js

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,21 +42,23 @@ export const ApiShow = props => {
4242

4343
return (
4444
<Show className={rootClassName} classes={classes} title={<ApiTitle />}>
45-
{fetchApisPermissionsIsSuccess && fetchUserContextIsSuccess && (
46-
<ApiShowTabs
47-
userIsPublisher={isPublisher(userContexts)}
48-
userCanEdit={get(
49-
apisPermissionsResponse.data,
50-
'canEdit',
51-
false
52-
)}
53-
userCanDelete={get(
54-
apisPermissionsResponse.data,
55-
'canEdit',
56-
false
57-
)}
58-
/>
59-
)}
45+
<>
46+
{fetchApisPermissionsIsSuccess && fetchUserContextIsSuccess && (
47+
<ApiShowTabs
48+
userIsPublisher={isPublisher(userContexts)}
49+
userCanEdit={get(
50+
apisPermissionsResponse.data,
51+
'canEdit',
52+
false
53+
)}
54+
userCanDelete={get(
55+
apisPermissionsResponse.data,
56+
'canDelete',
57+
false
58+
)}
59+
/>
60+
)}
61+
</>
6062
</Show>
6163
);
6264
};

packages/layer7-apihub/src/apis/Application/ApiApplications.test.js

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,12 @@ import React from 'react';
33
import { ApiApplications } from './ApiApplications';
44
import { fireEvent, waitFor, render } from '@testing-library/react';
55
import { AdminContext } from 'react-admin';
6+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
7+
8+
// Mock the useLayer7Notify hook
9+
jest.mock('../../useLayer7Notify', () => ({
10+
useLayer7Notify: () => jest.fn(),
11+
}));
612

713
describe('Applications', () => {
814
test('should allow to select an application', async () => {
@@ -89,10 +95,23 @@ describe('Applications', () => {
8995
},
9096
};
9197

98+
const queryClient = new QueryClient({
99+
defaultOptions: {
100+
queries: {
101+
retry: false,
102+
},
103+
mutations: {
104+
retry: false,
105+
},
106+
},
107+
});
108+
92109
const { getByLabelText, queryByText } = render(
93-
<AdminContext dataProvider={dataProvider}>
94-
<ApiApplications id="api_1" />
95-
</AdminContext>
110+
<QueryClientProvider client={queryClient}>
111+
<AdminContext dataProvider={dataProvider}>
112+
<ApiApplications id="api_1" />
113+
</AdminContext>
114+
</QueryClientProvider>
96115
);
97116

98117
const appSelect = getByLabelText(
@@ -179,10 +198,23 @@ describe('Applications', () => {
179198
}),
180199
};
181200

201+
const queryClient = new QueryClient({
202+
defaultOptions: {
203+
queries: {
204+
retry: false,
205+
},
206+
mutations: {
207+
retry: false,
208+
},
209+
},
210+
});
211+
182212
const { getByLabelText, findByText, getByText } = render(
183-
<AdminContext dataProvider={dataProvider}>
184-
<ApiApplications id="api_1" />
185-
</AdminContext>
213+
<QueryClientProvider client={queryClient}>
214+
<AdminContext dataProvider={dataProvider}>
215+
<ApiApplications id="api_1" />
216+
</AdminContext>
217+
</QueryClientProvider>
186218
);
187219

188220
const appSelect = getByLabelText(

packages/layer7-apihub/src/dataProvider/apis.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { stringify } from 'query-string';
44
const basePath = '/api-management/1.0/apis';
55
const internalBasePath = '/api-management/internal';
66

7-
const SearchFields = ['name', 'description'];
7+
const SearchFields = ['name'];
88
export const apisDataProvider = context => {
99
return {
1010
async getList({ filter, pagination, sort }) {

packages/layer7-apihub/src/dataProvider/registrations.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,13 @@ export const registrationsDataProvider = context => {
1313
method: 'POST',
1414
body: JSON.stringify(data),
1515
});
16+
const { uuid, ...responseData } = json;
1617

1718
return {
18-
data: { ...json },
19+
data: {
20+
id: uuid || `temp-${Date.now()}`, // Fallback id if uuid is not present
21+
...responseData,
22+
},
1923
};
2024
},
2125
};

packages/layer7-apihub/src/documentation/Documentation/Documentation.test.js

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@ import React from 'react';
33
import { AdminContext, Notification } from 'react-admin';
44
import { render, waitFor, fireEvent, within } from '@testing-library/react';
55
import '@testing-library/jest-dom';
6+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
67
import { Documentation } from './Documentation';
78

9+
// Mock the useLayer7Notify hook
10+
jest.mock('../../useLayer7Notify', () => ({
11+
useLayer7Notify: () => jest.fn(),
12+
}));
13+
814
global.Request = class MockRequest {
915
constructor(input, init) {
1016
this.url = input;
@@ -84,17 +90,29 @@ describe('Documentation', () => {
8490

8591
const renderDocumentation = ({ data = baseData, ...props } = {}) => {
8692
const dataProvider = getDataProvider(Array.from(data));
93+
const queryClient = new QueryClient({
94+
defaultOptions: {
95+
queries: {
96+
retry: false,
97+
},
98+
mutations: {
99+
retry: false,
100+
},
101+
},
102+
});
87103

88104
return render(
89-
<AdminContext dataProvider={dataProvider}>
90-
<Documentation
91-
resource="documents"
92-
entityUuid="api-id"
93-
entityType="api"
94-
{...props}
95-
/>
96-
<Notification />
97-
</AdminContext>
105+
<QueryClientProvider client={queryClient}>
106+
<AdminContext dataProvider={dataProvider}>
107+
<Documentation
108+
resource="documents"
109+
entityUuid="api-id"
110+
entityType="api"
111+
{...props}
112+
/>
113+
<Notification />
114+
</AdminContext>
115+
</QueryClientProvider>
98116
);
99117
};
100118

0 commit comments

Comments
 (0)