diff --git a/src/containers/ReviewActions/components/StartGradingButton.jsx b/src/containers/ReviewActions/components/StartGradingButton.jsx index ce40ea4..db80cbe 100644 --- a/src/containers/ReviewActions/components/StartGradingButton.jsx +++ b/src/containers/ReviewActions/components/StartGradingButton.jsx @@ -94,7 +94,7 @@ export class StartGradingButton extends React.Component { variant="primary" iconAfter={args.iconAfter} onClick={this.handleClick} - disabled={this.props.isPending} + disabled={this.props.gradeIsPending || this.props.lockIsPending} > @@ -119,11 +119,13 @@ StartGradingButton.propTypes = { gradingStatus: PropTypes.string.isRequired, startGrading: PropTypes.func.isRequired, stopGrading: PropTypes.func.isRequired, - isPending: PropTypes.bool.isRequired, + gradeIsPending: PropTypes.bool.isRequired, + lockIsPending: PropTypes.bool.isRequired, }; export const mapStateToProps = (state) => ({ - isPending: selectors.requests.isPending(state, { requestKey: RequestKeys.submitGrade }), + gradeIsPending: selectors.requests.isPending(state, { requestKey: RequestKeys.submitGrade }), + lockIsPending: selectors.requests.isPending(state, { requestKey: RequestKeys.setLock }), gradeStatus: selectors.grading.selected.gradeStatus(state), gradingStatus: selectors.grading.selected.gradingStatus(state), }); diff --git a/src/containers/ReviewActions/components/StartGradingButton.test.jsx b/src/containers/ReviewActions/components/StartGradingButton.test.jsx index 6afef81..2a29d42 100644 --- a/src/containers/ReviewActions/components/StartGradingButton.test.jsx +++ b/src/containers/ReviewActions/components/StartGradingButton.test.jsx @@ -36,7 +36,8 @@ let el; describe('StartGradingButton component', () => { describe('component', () => { const props = { - isPending: false, + gradeIsPending: false, + lockIsPending: false, }; beforeEach(() => { props.startGrading = jest.fn().mockName('this.props.startGrading'); @@ -69,9 +70,14 @@ describe('StartGradingButton component', () => { test('snapshot: ungraded (startGrading callback)', () => { expect(mockedEl(statuses.ungraded).instance().render()).toMatchSnapshot(); }); - test('snapshot: pending (disabled)', () => { + test('snapshot: grade pending (disabled)', () => { el = mockedEl(statuses.ungraded); - el.setProps({ isPending: true }); + el.setProps({ gradeIsPending: true }); + expect(el.instance().render()).toMatchSnapshot(); + }); + test('snapshot: lock pending (disabled)', () => { + el = mockedEl(statuses.ungraded); + el.setProps({ lockIsPending: true }); expect(el.instance().render()).toMatchSnapshot(); }); test('snapshot: graded, confirmOverride (startGrading callback)', () => { @@ -92,14 +98,22 @@ describe('StartGradingButton component', () => { beforeEach(() => { mapped = mapStateToProps(testState); }); - test('isPending loads from requests.isPending(submitGrade)', () => { - expect(mapped.isPending).toEqual( + test('gradeIsPending loads from requests.gradeIsPending(submitGrade)', () => { + expect(mapped.gradeIsPending).toEqual( selectors.requests.isPending( testState, { requestKey: RequestKeys.submitGrade }, ), ); }); + test('lockIsPending loads from requests.lockIsPending(setLock)', () => { + expect(mapped.lockIsPending).toEqual( + selectors.requests.isPending( + testState, + { requestKey: RequestKeys.setLock }, + ), + ); + }); test('gradeStatus loads from grading.selected.gradeStatus', () => { expect(mapped.gradeStatus).toEqual(selectors.grading.selected.gradeStatus(testState)); }); diff --git a/src/containers/ReviewActions/components/__snapshots__/StartGradingButton.test.jsx.snap b/src/containers/ReviewActions/components/__snapshots__/StartGradingButton.test.jsx.snap index be5f631..bff99fc 100644 --- a/src/containers/ReviewActions/components/__snapshots__/StartGradingButton.test.jsx.snap +++ b/src/containers/ReviewActions/components/__snapshots__/StartGradingButton.test.jsx.snap @@ -1,5 +1,33 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP +exports[`StartGradingButton component component snapshotes snapshot: grade pending (disabled) 1`] = ` + + + + + +`; + exports[`StartGradingButton component component snapshotes snapshot: graded, confirmOverride (startGrading callback) 1`] = `