Skip to content

Commit bd0328a

Browse files
authored
fix: resolve issue with Xpert unit summary toggle not updating state (#83)
Xpert Unit Summary toggle in Pages & Resources doesn't toggle between enable/disable
1 parent 4efdf5a commit bd0328a

4 files changed

Lines changed: 20 additions & 20 deletions

File tree

plugins/course-apps/xpert_unit_summary/Settings.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ const XpertUnitSummarySettings = () => {
2525

2626
return (
2727
<SettingsModal
28-
appId="xpert-unit-summary"
28+
appId="xpert_unit_summary"
2929
title={intl.formatMessage(messages.heading)}
3030
enableAppHelp={intl.formatMessage(messages.enableXpertUnitSummaryHelp)}
3131
helpPrivacyText={intl.formatMessage(messages.enableXpertUnitSummaryHelpPrivacyLink)}

plugins/course-apps/xpert_unit_summary/Settings.test.jsx

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ describe('XpertUnitSummarySettings', () => {
107107

108108
test('Shows switch on if enabled from backend', async () => {
109109
const enableBadge = await findByTestId(container, 'enable-badge');
110-
expect(container.querySelector('#enable-xpert-unit-summary-toggle').checked).toBeTruthy();
110+
expect(container.querySelector('#enable-xpert_unit_summary-toggle').checked).toBeTruthy();
111111
expect(enableBadge).toBeTruthy();
112112
});
113113

@@ -119,13 +119,13 @@ describe('XpertUnitSummarySettings', () => {
119119
}));
120120

121121
renderComponent();
122-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
123-
expect(container.querySelector('#enable-xpert-unit-summary-toggle').checked).toBeTruthy();
122+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
123+
expect(container.querySelector('#enable-xpert_unit_summary-toggle').checked).toBeTruthy();
124124
expect(queryByTestId(container, 'enable-badge')).toBeTruthy();
125125
});
126126

127127
test('Shows enable radio selected if enabled from backend', async () => {
128-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
128+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
129129
expect(queryByTestId(container, 'enable-radio').checked).toBeTruthy();
130130
});
131131

@@ -137,7 +137,7 @@ describe('XpertUnitSummarySettings', () => {
137137
}));
138138

139139
renderComponent();
140-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
140+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
141141
expect(queryByTestId(container, 'disable-radio').checked).toBeTruthy();
142142
});
143143
});
@@ -154,8 +154,8 @@ describe('XpertUnitSummarySettings', () => {
154154
});
155155

156156
test('Does not show as enabled if configuration does not exist', async () => {
157-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
158-
expect(container.querySelector('#enable-xpert-unit-summary-toggle').checked).not.toBeTruthy();
157+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
158+
expect(container.querySelector('#enable-xpert_unit_summary-toggle').checked).not.toBeTruthy();
159159
expect(queryByTestId(container, 'enable-badge')).not.toBeTruthy();
160160
});
161161
});
@@ -180,11 +180,11 @@ describe('XpertUnitSummarySettings', () => {
180180
test('Saving configuration changes', async () => {
181181
jest.spyOn(API, 'postXpertSettings');
182182

183-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
183+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
184184
expect(queryByTestId(container, 'disable-radio').checked).toBeTruthy();
185185
fireEvent.click(queryByTestId(container, 'enable-radio'));
186186
fireEvent.click(getByText(container, 'Save'));
187-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
187+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
188188
expect(API.postXpertSettings).toBeCalled();
189189
});
190190
});
@@ -226,10 +226,10 @@ describe('XpertUnitSummarySettings', () => {
226226
test('Deleting course configuration', async () => {
227227
jest.spyOn(API, 'deleteXpertSettings');
228228

229-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
230-
fireEvent.click(container.querySelector('#enable-xpert-unit-summary-toggle'));
229+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
230+
fireEvent.click(container.querySelector('#enable-xpert_unit_summary-toggle'));
231231
fireEvent.click(getByText(container, 'Save'));
232-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
232+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
233233
expect(API.deleteXpertSettings).toBeCalled();
234234
});
235235
});
@@ -252,7 +252,7 @@ describe('XpertUnitSummarySettings', () => {
252252

253253
jest.spyOn(API, 'postXpertSettings');
254254

255-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
255+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
256256
fireEvent.click(queryByTestId(container, 'reset-units'));
257257
expect(API.postXpertSettings).toBeCalledWith(courseId, { reset: true, enabled: true });
258258
});
@@ -274,7 +274,7 @@ describe('XpertUnitSummarySettings', () => {
274274

275275
jest.spyOn(API, 'postXpertSettings');
276276

277-
await waitFor(() => expect(container.querySelector('#enable-xpert-unit-summary-toggle')).toBeTruthy());
277+
await waitFor(() => expect(container.querySelector('#enable-xpert_unit_summary-toggle')).toBeTruthy());
278278
fireEvent.click(queryByTestId(container, 'reset-units'));
279279
expect(API.postXpertSettings).toBeCalledWith(courseId, { reset: true, enabled: false });
280280
});

plugins/course-apps/xpert_unit_summary/appInfo.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
export default {
2-
id: 'xpert-unit-summary',
2+
id: 'xpert_unit_summary',
33
enabled: false,
44
name: 'Xpert unit summaries',
55
description: 'Use generative AI to summarize course content and reinforce learning.',

plugins/course-apps/xpert_unit_summary/data/thunks.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export function updateXpertSettings(courseId, state) {
1313
const { response } = await postXpertSettings(courseId, state);
1414
const { success } = response;
1515
if (success) {
16-
dispatch(updateModel({ modelType: 'XpertSettings', model: { id: 'xpert-unit-summary', enabled: state.enabled } }));
16+
dispatch(updateModel({ modelType: 'XpertSettings', model: { id: 'xpert_unit_summary', enabled: state.enabled } }));
1717
dispatch(updateSavingStatus({ status: RequestStatus.SUCCESSFUL }));
1818
return true;
1919
}
@@ -40,7 +40,7 @@ export function fetchXpertPluginConfigurable(courseId) {
4040
dispatch(addModel({
4141
modelType: 'XpertSettings.enabled',
4242
model: {
43-
id: 'xpert-unit-summary',
43+
id: 'xpert_unit_summary',
4444
enabled,
4545
},
4646
}));
@@ -62,7 +62,7 @@ export function fetchXpertSettings(courseId) {
6262
dispatch(addModel({
6363
modelType: 'XpertSettings',
6464
model: {
65-
id: 'xpert-unit-summary',
65+
id: 'xpert_unit_summary',
6666
enabled,
6767
},
6868
}));
@@ -79,7 +79,7 @@ export function removeXpertSettings(courseId) {
7979
const { response } = await deleteXpertSettings(courseId);
8080
const { success } = response;
8181
if (success) {
82-
const model = { id: 'xpert-unit-summary', enabled: undefined };
82+
const model = { id: 'xpert_unit_summary', enabled: undefined };
8383
dispatch(updateModel({ modelType: 'XpertSettings', model }));
8484
dispatch(updateSavingStatus({ status: RequestStatus.SUCCESSFUL }));
8585
return true;

0 commit comments

Comments
 (0)