diff --git a/src/course-unit/CourseUnit.test.jsx b/src/course-unit/CourseUnit.test.jsx
index 7ffdd93d72..419bd46987 100644
--- a/src/course-unit/CourseUnit.test.jsx
+++ b/src/course-unit/CourseUnit.test.jsx
@@ -468,6 +468,10 @@ describe('', () => {
id: courseVerticalChildrenMock.children[0].block_id,
});
+ axiosMock
+ .onGet(getCourseUnitApiUrl(blockId))
+ .reply(200, courseUnitIndexMock);
+
axiosMock
.onPost(postXBlockBaseApiUrl({
parent_locator: blockId,
@@ -2174,6 +2178,17 @@ describe('', () => {
? { ...child, block_type: 'html' }
: child));
+ axiosMock
+ .onGet(getCourseUnitApiUrl(blockId))
+ .reply(200, courseUnitIndexMock);
+
+ axiosMock
+ .onPost(postXBlockBaseApiUrl({
+ parent_locator: blockId,
+ duplicate_source_locator: courseVerticalChildrenMock.children[0].block_id,
+ }))
+ .replyOnce(200, { locator: '1234567890' });
+
axiosMock
.onGet(getCourseVerticalChildrenApiUrl(blockId))
.reply(200, updatedCourseVerticalChildrenMock);
diff --git a/src/course-unit/data/thunk.js b/src/course-unit/data/thunk.js
index a0c1dc54ec..ee2c4da655 100644
--- a/src/course-unit/data/thunk.js
+++ b/src/course-unit/data/thunk.js
@@ -262,6 +262,8 @@ export function duplicateUnitItemQuery(itemId, xblockId, callback) {
callback(courseKey, locator);
const courseUnit = await getCourseUnitData(itemId);
dispatch(fetchCourseItemSuccess(courseUnit));
+ const courseVerticalChildrenData = await getCourseVerticalChildren(itemId);
+ dispatch(updateCourseVerticalChildren(courseVerticalChildrenData));
dispatch(hideProcessingNotification());
dispatch(updateSavingStatus({ status: RequestStatus.SUCCESSFUL }));
} catch (error) {