Thunk Removal Proof-of-concept (#98)
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import { hooks as appHooks } from 'data/redux';
|
||||
import { reduxHooks } from 'hooks';
|
||||
|
||||
export const useProgramData = ({
|
||||
cardId,
|
||||
}) => ({
|
||||
courseTitle: appHooks.useCardCourseData(cardId).title,
|
||||
relatedPrograms: appHooks.useCardRelatedProgramsData(cardId).list,
|
||||
courseTitle: reduxHooks.useCardCourseData(cardId).title,
|
||||
relatedPrograms: reduxHooks.useCardRelatedProgramsData(cardId).list,
|
||||
});
|
||||
|
||||
export default useProgramData;
|
||||
|
||||
@@ -7,7 +7,7 @@ import {
|
||||
Container, Row, Col, ModalDialog,
|
||||
} from '@edx/paragon';
|
||||
|
||||
import { hooks } from 'data/redux';
|
||||
import { reduxHooks } from 'hooks';
|
||||
import ProgramCard from './components/ProgramCard';
|
||||
import messages from './messages';
|
||||
import './index.scss';
|
||||
@@ -18,8 +18,8 @@ export const RelatedProgramsModal = ({
|
||||
cardId,
|
||||
}) => {
|
||||
const { formatMessage } = useIntl();
|
||||
const { courseName } = hooks.useCardCourseData(cardId);
|
||||
const relatedPrograms = hooks.useCardRelatedProgramsData(cardId).list;
|
||||
const { courseName } = reduxHooks.useCardCourseData(cardId);
|
||||
const relatedPrograms = reduxHooks.useCardRelatedProgramsData(cardId).list;
|
||||
return (
|
||||
<ModalDialog
|
||||
title={formatMessage(messages.header)}
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import React from 'react';
|
||||
import { shallow } from 'enzyme';
|
||||
|
||||
import { hooks } from 'data/redux';
|
||||
import { reduxHooks } from 'hooks';
|
||||
import RelatedProgramsModal from '.';
|
||||
|
||||
jest.mock('./components/ProgramCard', () => 'ProgramCard');
|
||||
jest.mock('data/redux', () => ({
|
||||
hooks: {
|
||||
jest.mock('hooks', () => ({
|
||||
reduxHooks: {
|
||||
useCardCourseData: jest.fn(),
|
||||
useCardRelatedProgramsData: jest.fn(),
|
||||
},
|
||||
@@ -41,13 +41,13 @@ const props = {
|
||||
|
||||
describe('RelatedProgramsModal', () => {
|
||||
beforeEach(() => {
|
||||
hooks.useCardCourseData.mockReturnValueOnce(courseData);
|
||||
hooks.useCardRelatedProgramsData.mockReturnValueOnce(programData);
|
||||
reduxHooks.useCardCourseData.mockReturnValueOnce(courseData);
|
||||
reduxHooks.useCardRelatedProgramsData.mockReturnValueOnce(programData);
|
||||
});
|
||||
it('initializes hooks with cardId', () => {
|
||||
shallow(<RelatedProgramsModal {...props} />);
|
||||
expect(hooks.useCardCourseData).toHaveBeenCalledWith(cardId);
|
||||
expect(hooks.useCardRelatedProgramsData).toHaveBeenCalledWith(cardId);
|
||||
expect(reduxHooks.useCardCourseData).toHaveBeenCalledWith(cardId);
|
||||
expect(reduxHooks.useCardRelatedProgramsData).toHaveBeenCalledWith(cardId);
|
||||
});
|
||||
test('snapshot: open', () => {
|
||||
expect(shallow(<RelatedProgramsModal {...props} />)).toMatchSnapshot();
|
||||
|
||||
Reference in New Issue
Block a user