- {hasError && loadTags(10)} />}
+ {hasError && loadTags(DEFAULT_RETRIES)} />}
{isLoading && (
Date: Tue, 28 Jan 2025 13:17:36 +0100
Subject: [PATCH 10/13] fix(docgen): bad merge
---
src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx b/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
index d15f4b455e..0a9def3134 100644
--- a/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
+++ b/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
@@ -124,9 +124,9 @@ const DocGenSidebar = ({ getDocGenTags }: Props) => {
setHasError(true);
setIsLoading(false);
}
- // disabling eslint because the getDocGenTags prop is changing very frequently
- // eslint-disable-next-line react-hooks/exhaustive-deps
},
+ // disabling eslint because the getDocGenTags prop is changing very frequently
+ // eslint-disable-next-line react-hooks/exhaustive-deps
[tagsToJsonPaths],
);
From d90c991f9de9b2f5d30d21168da2490c4152a6b5 Mon Sep 17 00:00:00 2001
From: rustam-e
Date: Mon, 3 Feb 2025 13:54:23 +0100
Subject: [PATCH 11/13] fix(docgen): address code review comments
---
.../DocGenSidebar/DocGenSidebar.tsx | 6 +--
.../__tests__/DocGenSidebar.test.tsx | 45 ++++++++++---------
2 files changed, 26 insertions(+), 25 deletions(-)
diff --git a/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx b/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
index 0a9def3134..9030587f97 100644
--- a/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
+++ b/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
@@ -89,7 +89,7 @@ const DocGenSidebar = ({ getDocGenTags }: Props) => {
}, []);
const loadTags = useCallback(
- async (attempts = 10) => {
+ async (attempts = DEFAULT_RETRIES) => {
if (attempts <= 0) {
setIsLoading(false);
return;
@@ -97,11 +97,11 @@ const DocGenSidebar = ({ getDocGenTags }: Props) => {
setIsLoading(true);
try {
const response: DocGenTemplateTagsResponse = await getDocGenTags();
- if (response.message) {
+ if (response?.message) {
setTimeout(() => {
loadTags.call(this, attempts - 1);
}, 1000);
- } else if (response && !!response.data) {
+ } else if (response?.data) {
const { data } = response;
// anything that is not an image tag for this view is treated as a text tag
const textTags = data?.filter(tag => tag.tag_type !== 'image') || [];
diff --git a/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx b/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
index 1b072ffe41..3ad31de282 100644
--- a/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
+++ b/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
@@ -13,19 +13,26 @@ const docGenSidebarProps = {
),
};
-const processAndResolveMock = jest.fn()
-.mockImplementationOnce(() => Promise.resolve({
- message: "Processing tags for this file."
-}))
-.mockImplementationOnce(() => Promise.resolve({
- pagination: {},
- data: mockData,
-}));
+const processAndResolveMock = jest
+ .fn()
+ .mockImplementationOnce(() =>
+ Promise.resolve({
+ message: 'Processing tags for this file.',
+ }),
+ )
+ .mockImplementationOnce(() =>
+ Promise.resolve({
+ pagination: {},
+ data: mockData,
+ }),
+ );
const noTagsMock = jest.fn().mockReturnValue(Promise.resolve({ data: [] }));
-const processingTagsMock = jest.fn().mockReturnValue(Promise.resolve({
- "message": "Processing tags for this file."
-}));
+const processingTagsMock = jest.fn().mockReturnValue(
+ Promise.resolve({
+ message: 'Processing tags for this file.',
+ }),
+);
const errorTagsMock = jest.fn().mockRejectedValue([]);
const noDataMock = jest.fn().mockReturnValue(Promise.resolve({}));
@@ -105,16 +112,11 @@ describe('elements/content-sidebar/DocGenSidebar', () => {
getDocGenTags: processingTagsMock,
});
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
+ const promises = [];
+ for (let i = 0; i < 10; i + 1) {
+ promises.push(jest.advanceTimersByTime(1000));
+ }
+ await Promise.all(promises);
await waitFor(() => expect(processingTagsMock).toHaveBeenCalledTimes(10));
});
@@ -133,7 +135,6 @@ describe('elements/content-sidebar/DocGenSidebar', () => {
expect(parentTag).toBeVisible();
});
-
test('should re-trigger getDocGenTags on click on refresh button', async () => {
renderComponent({
getDocGenTags: errorTagsMock,
From c48a5172fe04f0b27b276580c2ab98e68c09e46e Mon Sep 17 00:00:00 2001
From: rustam-e
Date: Mon, 3 Feb 2025 14:06:20 +0100
Subject: [PATCH 12/13] fix(docgen): remove Promise.all
---
.../__tests__/DocGenSidebar.test.tsx | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx b/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
index 3ad31de282..96f2531b9e 100644
--- a/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
+++ b/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
@@ -112,11 +112,16 @@ describe('elements/content-sidebar/DocGenSidebar', () => {
getDocGenTags: processingTagsMock,
});
- const promises = [];
- for (let i = 0; i < 10; i + 1) {
- promises.push(jest.advanceTimersByTime(1000));
- }
- await Promise.all(promises);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
+ await jest.advanceTimersByTime(1000);
await waitFor(() => expect(processingTagsMock).toHaveBeenCalledTimes(10));
});
From e351348c90c4055587f4e116dd1024b06b0d6c04 Mon Sep 17 00:00:00 2001
From: rustam-e
Date: Tue, 4 Feb 2025 14:13:30 +0100
Subject: [PATCH 13/13] fix(docgen): remove timeout
---
.../DocGenSidebar/DocGenSidebar.tsx | 4 +---
.../__tests__/DocGenSidebar.test.tsx | 14 --------------
2 files changed, 1 insertion(+), 17 deletions(-)
diff --git a/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx b/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
index 9030587f97..3f35cddd7a 100644
--- a/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
+++ b/src/elements/content-sidebar/DocGenSidebar/DocGenSidebar.tsx
@@ -98,9 +98,7 @@ const DocGenSidebar = ({ getDocGenTags }: Props) => {
try {
const response: DocGenTemplateTagsResponse = await getDocGenTags();
if (response?.message) {
- setTimeout(() => {
- loadTags.call(this, attempts - 1);
- }, 1000);
+ loadTags.call(this, attempts - 1);
} else if (response?.data) {
const { data } = response;
// anything that is not an image tag for this view is treated as a text tag
diff --git a/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx b/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
index 96f2531b9e..8539a66f68 100644
--- a/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
+++ b/src/elements/content-sidebar/__tests__/DocGenSidebar.test.tsx
@@ -112,17 +112,6 @@ describe('elements/content-sidebar/DocGenSidebar', () => {
getDocGenTags: processingTagsMock,
});
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
-
await waitFor(() => expect(processingTagsMock).toHaveBeenCalledTimes(10));
});
@@ -131,9 +120,6 @@ describe('elements/content-sidebar/DocGenSidebar', () => {
getDocGenTags: processAndResolveMock,
});
- await jest.advanceTimersByTime(1000);
- await jest.advanceTimersByTime(1000);
-
await waitFor(() => expect(processAndResolveMock).toHaveBeenCalledTimes(2));
const parentTag = await screen.findByText('about');