diff --git a/src/app/pages/subjects/new/subjects.tsx b/src/app/pages/subjects/new/subjects.tsx
index 60df2e39b..81b1844a0 100644
--- a/src/app/pages/subjects/new/subjects.tsx
+++ b/src/app/pages/subjects/new/subjects.tsx
@@ -9,7 +9,7 @@ import {AllSubjectsAboutOpenStax} from './about-openstax';
import LoadSubject from './specific/specific';
import './subjects.scss';
-const importLanguageSelector = () => import('./language-selector-section.js');
+const importLanguageSelector = () => import('./import-language-selector-section.js');
const importSubjectsListing = () => import('./import-subjects-listing.js');
const importTutorAd = () => import('./import-tutor-ad.js');
const importInfoBoxes = () => import('./import-info-boxes.js');
diff --git a/src/app/pages/subjects/new/use-categorized-books.js b/src/app/pages/subjects/new/use-categorized-books.js
deleted file mode 100644
index 8099169ff..000000000
--- a/src/app/pages/subjects/new/use-categorized-books.js
+++ /dev/null
@@ -1,30 +0,0 @@
-import useSubjectsContext from './context';
-import useSubjectCategoryContext from '~/contexts/subject-category';
-
-export default function useCategorizedBooks() {
- const {books} = useSubjectsContext();
- const categories = useSubjectCategoryContext();
- const result = {};
- const addLabels = () => {
- for (const category of categories) {
- if (result[category.cms]) {
- result[category.cms].label = category.html;
- }
- }
- };
-
- for (const book of books) {
- book.subjects.forEach((cmsCategory) => {
- if (!(cmsCategory in result)) {
- result[cmsCategory] = [];
- }
- if (!result[cmsCategory].includes(book)) {
- result[cmsCategory].push(book);
- }
- });
- }
-
- addLabels();
-
- return result;
-}
diff --git a/test/src/pages/partners/info-request-form.test.tsx b/test/src/pages/partners/info-request-form.test.tsx
index 9ecabe98a..ed2c26cf2 100644
--- a/test/src/pages/partners/info-request-form.test.tsx
+++ b/test/src/pages/partners/info-request-form.test.tsx
@@ -7,6 +7,11 @@ import * as SFBC from '~/components/multiselect/book-tags/sf-book-context';
import sfBooks from '~/../../test/src/data/sf-all-books';
import InfoRequestForm from '~/pages/partners/partner-details/info-request-form/info-request-form';
import {SearchContextProvider} from '~/pages/partners/search-context';
+import {
+ useAcceptValue,
+ useSetValueFromTarget,
+ useDoSubmit
+} from '~/pages/partners/partner-details/info-request-form/school-selector';
async function renderForm() {
render(
@@ -57,19 +62,8 @@ describe('partners/info-rquest-form', () => {
await user.click(screen.getAllByRole('radio', {name: 'No'})[1]);
await user.click(screen.getByRole('button', {name: 'Next'}));
-
- // -- The book selector is not working right in tests, so all of this
- // -- can't be tested until that gets figured out.
- // const schoolSelector = await screen.findByRole('textbox', {name: 'School'});
- // const roleSelector = screen.getByRole('combobox');
- // const studentField = screen.getByRole('spinbutton');
-
- // await user.click(roleSelector);
- // await user.click(screen.getByRole('option', {name: 'Other'}));
- // await user.type(schoolSelector, 'Ric');
- // await user.type(studentField, '12');
-
- // await user.click(screen.getByRole('button', {name: 'Submit', hidden: true}));
+ // Going past the first page is unreliable in testing, so the pieces
+ // are tested separately
});
it('does a partner type beginning with a vowel', () => {
mockPC.mockReturnValue(mockPC2);
@@ -77,3 +71,48 @@ describe('partners/info-rquest-form', () => {
screen.getByText('is an abnormal', {exact: false});
});
});
+
+describe('school-selector utilities', () => {
+ it('useAcceptValue sets a value', () => {
+ const setValue = jest.fn();
+
+ function Component() {
+ const accept = useAcceptValue(setValue);
+
+ accept({value: 'a value'});
+ return null;
+ }
+
+ render();
+ expect(setValue).toHaveBeenCalledWith('a value');
+ });
+ it('useSetValueFromTarget sets a value', () => {
+ const setValue = jest.fn();
+
+ function Component() {
+ const accept = useSetValueFromTarget(setValue);
+
+ accept({target: {value: 'a value'}} as unknown as React.ChangeEvent);
+ return null;
+ }
+
+ render();
+ expect(setValue).toHaveBeenCalledWith('a value');
+ });
+ it('useDoSubmit calls form.submit and afterSubmit', () => {
+ const form = {submit: jest.fn()} as unknown as HTMLFormElement;
+ const afterSubmit = jest.fn();
+
+ function Component() {
+ const doSubmit = useDoSubmit(afterSubmit);
+
+ doSubmit(form);
+
+ return null;
+ }
+
+ render();
+ expect(form.submit).toHaveBeenCalled();
+ expect(afterSubmit).toHaveBeenCalled();
+ });
+});