@pie-lib/scoring-config 3.26.3-next.2 → 3.26.3-next.208
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -67
- package/lib/index.js +22 -57
- package/lib/index.js.map +1 -1
- package/package.json +9 -17
- package/src/__tests__/index.test.jsx +102 -6
- package/src/index.jsx +12 -13
- package/esm/index.css +0 -847
- package/esm/index.js +0 -13977
- package/esm/index.js.map +0 -1
- package/esm/package.json +0 -3
- package/src/__tests__/__snapshots__/index.test.jsx.snap +0 -59
package/CHANGELOG.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
# [4.0.0-next.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.26.3-next.0...@pie-lib/scoring-config@4.0.0-next.0) (2026-01-19)
|
|
7
7
|
|
|
8
8
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
9
9
|
|
|
@@ -11,7 +11,7 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
|
|
14
|
-
## [3.26.
|
|
14
|
+
## [3.26.3-next.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.40.0-mui-update.0...@pie-lib/scoring-config@3.26.3-next.0) (2026-01-19)
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
### Bug Fixes
|
|
@@ -22,141 +22,89 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
## [3.26.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.26.1...@pie-lib/scoring-config@3.26.2) (2025-11-27)
|
|
26
26
|
|
|
27
27
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
28
28
|
|
|
29
|
+
## [3.26.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.2...@pie-lib/scoring-config@3.26.1) (2025-10-22)
|
|
29
30
|
|
|
31
|
+
### Bug Fixes
|
|
30
32
|
|
|
33
|
+
- bump config-ui PD-5265 ([77d0c78](https://github.com/pie-framework/pie-lib/commit/77d0c78cacfa57e93ed17e7a7f1257f4a9cf6ab3))
|
|
31
34
|
|
|
32
|
-
|
|
33
|
-
# [3.25.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.25.0) (2025-10-16)
|
|
35
|
+
# [3.26.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.25.0...@pie-lib/scoring-config@3.26.0) (2025-10-16)
|
|
34
36
|
|
|
35
37
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
36
38
|
|
|
39
|
+
# [3.25.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.25.0) (2025-10-16)
|
|
37
40
|
|
|
38
|
-
|
|
39
|
-
|
|
41
|
+
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
40
42
|
|
|
41
43
|
# [3.24.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.24.0) (2025-10-16)
|
|
42
44
|
|
|
43
45
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
44
46
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
47
|
# [3.23.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.23.0) (2025-10-16)
|
|
50
48
|
|
|
51
49
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
52
50
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
51
|
## [3.22.2](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.1...@pie-lib/scoring-config@3.22.2) (2025-10-14)
|
|
58
52
|
|
|
59
53
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
60
54
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
55
|
## [3.22.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.22.0...@pie-lib/scoring-config@3.22.1) (2025-10-09)
|
|
66
56
|
|
|
67
57
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
68
58
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
59
|
# [3.22.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.6.65...@pie-lib/scoring-config@3.22.0) (2025-09-25)
|
|
74
60
|
|
|
75
|
-
|
|
76
61
|
### Bug Fixes
|
|
77
62
|
|
|
78
|
-
|
|
79
|
-
|
|
63
|
+
- fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
|
|
80
64
|
|
|
81
65
|
### Features
|
|
82
66
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
67
|
+
- split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
|
|
88
68
|
|
|
89
69
|
# [3.21.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.20.0...@pie-lib/scoring-config@3.21.0) (2025-09-18)
|
|
90
70
|
|
|
91
71
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
92
72
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
73
|
# [3.20.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.19.0...@pie-lib/scoring-config@3.20.0) (2025-09-18)
|
|
98
74
|
|
|
99
75
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
100
76
|
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
77
|
# [3.19.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.6.65...@pie-lib/scoring-config@3.19.0) (2025-09-18)
|
|
106
78
|
|
|
107
|
-
|
|
108
79
|
### Bug Fixes
|
|
109
80
|
|
|
110
|
-
|
|
111
|
-
|
|
81
|
+
- fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
|
|
112
82
|
|
|
113
83
|
### Features
|
|
114
84
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
85
|
+
- split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
|
|
120
86
|
|
|
121
87
|
# [3.18.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.17.0...@pie-lib/scoring-config@3.18.0) (2025-09-17)
|
|
122
88
|
|
|
123
89
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
124
90
|
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
91
|
# [3.17.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.16.0...@pie-lib/scoring-config@3.17.0) (2025-09-17)
|
|
130
92
|
|
|
131
93
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
132
94
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
95
|
# [3.16.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.15.1...@pie-lib/scoring-config@3.16.0) (2025-09-17)
|
|
138
96
|
|
|
139
97
|
**Note:** Version bump only for package @pie-lib/scoring-config
|
|
140
98
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
99
|
## [3.15.1](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.6.65...@pie-lib/scoring-config@3.15.1) (2025-08-11)
|
|
146
100
|
|
|
147
|
-
|
|
148
101
|
### Bug Fixes
|
|
149
102
|
|
|
150
|
-
|
|
151
|
-
|
|
103
|
+
- fixed pie-lib/icons import [PD-5126](<[dcb506c](https://github.com/pie-framework/pie-lib/commit/dcb506c914a177f6d88bf73247a023bfe71dac1f)>)
|
|
152
104
|
|
|
153
105
|
### Features
|
|
154
106
|
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
107
|
+
- split pie-toolbox into multiple packages [PD-5126](<[7d55a25](https://github.com/pie-framework/pie-lib/commit/7d55a2552d084cd3d0d5c00dc77411b2ced2f5e2)>)
|
|
160
108
|
|
|
161
109
|
# [3.15.0](https://github.com/pie-framework/pie-lib/compare/@pie-lib/scoring-config@3.6.65...@pie-lib/scoring-config@3.15.0) (2025-08-07)
|
|
162
110
|
|
package/lib/index.js
CHANGED
|
@@ -1,80 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports["default"] = exports.PartialScoringConfig = void 0;
|
|
9
|
-
|
|
10
8
|
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
11
|
-
|
|
12
9
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
13
|
-
|
|
14
|
-
var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
|
|
15
|
-
|
|
16
|
-
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
17
|
-
|
|
18
10
|
var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
|
|
19
|
-
|
|
20
11
|
var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
|
|
21
|
-
|
|
12
|
+
var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
|
|
22
13
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
23
|
-
|
|
24
14
|
var _react = _interopRequireDefault(require("react"));
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
29
|
-
|
|
30
|
-
var _styles = require("@material-ui/core/styles");
|
|
31
|
-
|
|
15
|
+
var _Typography = _interopRequireDefault(require("@mui/material/Typography"));
|
|
16
|
+
var _Checkbox = _interopRequireDefault(require("@mui/material/Checkbox"));
|
|
17
|
+
var _styles = require("@mui/material/styles");
|
|
32
18
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
33
|
-
|
|
34
|
-
function
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
19
|
+
function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
|
|
20
|
+
function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }
|
|
21
|
+
var ScoringConfigContainer = (0, _styles.styled)('div')(function (_ref) {
|
|
22
|
+
var theme = _ref.theme;
|
|
23
|
+
return {
|
|
24
|
+
paddingTop: theme.spacing(1)
|
|
25
|
+
};
|
|
26
|
+
});
|
|
27
|
+
var PartialScoringConfig = exports.PartialScoringConfig = /*#__PURE__*/function (_React$Component) {
|
|
43
28
|
function PartialScoringConfig(props) {
|
|
44
29
|
var _this;
|
|
45
|
-
|
|
46
30
|
(0, _classCallCheck2["default"])(this, PartialScoringConfig);
|
|
47
|
-
_this =
|
|
48
|
-
(0, _defineProperty2["default"])(
|
|
31
|
+
_this = _callSuper(this, PartialScoringConfig, [props]);
|
|
32
|
+
(0, _defineProperty2["default"])(_this, "state", {
|
|
49
33
|
checked: false
|
|
50
34
|
});
|
|
51
|
-
(0, _defineProperty2["default"])(
|
|
35
|
+
(0, _defineProperty2["default"])(_this, "onCheckboxChanged", function () {
|
|
52
36
|
var checked = !_this.state.checked;
|
|
53
37
|
var onChange = _this.props.onChange;
|
|
54
|
-
|
|
55
38
|
_this.setState({
|
|
56
39
|
checked: checked
|
|
57
40
|
});
|
|
58
|
-
|
|
59
41
|
onChange(checked);
|
|
60
42
|
});
|
|
61
43
|
var partialScoring = props.partialScoring;
|
|
62
44
|
_this.state.checked = partialScoring;
|
|
63
45
|
return _this;
|
|
64
46
|
}
|
|
65
|
-
|
|
66
|
-
(0, _createClass2["default"])(PartialScoringConfig, [{
|
|
47
|
+
(0, _inherits2["default"])(PartialScoringConfig, _React$Component);
|
|
48
|
+
return (0, _createClass2["default"])(PartialScoringConfig, [{
|
|
67
49
|
key: "render",
|
|
68
50
|
value: function render() {
|
|
69
|
-
var
|
|
70
|
-
classes = _this$props.classes,
|
|
71
|
-
label = _this$props.label;
|
|
51
|
+
var label = this.props.label;
|
|
72
52
|
var checked = this.state.checked;
|
|
73
53
|
var textLabel = label || 'Each correct response is worth 1/X where X is the number of correct answer selections.';
|
|
74
|
-
return /*#__PURE__*/_react["default"].createElement("
|
|
75
|
-
|
|
76
|
-
}, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
77
|
-
type: "subheading"
|
|
54
|
+
return /*#__PURE__*/_react["default"].createElement(ScoringConfigContainer, null, /*#__PURE__*/_react["default"].createElement(_Typography["default"], {
|
|
55
|
+
variant: "h6"
|
|
78
56
|
}, "Partial Scoring Rules"), /*#__PURE__*/_react["default"].createElement("br", null), /*#__PURE__*/_react["default"].createElement(_Typography["default"], null, textLabel), /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
79
57
|
checked: checked,
|
|
80
58
|
onChange: this.onCheckboxChanged,
|
|
@@ -82,24 +60,11 @@ var PartialScoringConfig = /*#__PURE__*/function (_React$Component) {
|
|
|
82
60
|
}));
|
|
83
61
|
}
|
|
84
62
|
}]);
|
|
85
|
-
return PartialScoringConfig;
|
|
86
63
|
}(_react["default"].Component);
|
|
87
|
-
|
|
88
|
-
exports.PartialScoringConfig = PartialScoringConfig;
|
|
89
64
|
(0, _defineProperty2["default"])(PartialScoringConfig, "propTypes", {
|
|
90
65
|
label: _propTypes["default"].string,
|
|
91
66
|
partialScoring: _propTypes["default"].bool,
|
|
92
|
-
classes: _propTypes["default"].object.isRequired,
|
|
93
67
|
onChange: _propTypes["default"].func
|
|
94
68
|
});
|
|
95
|
-
|
|
96
|
-
var _default = (0, _styles.withStyles)(function (theme) {
|
|
97
|
-
return {
|
|
98
|
-
scoringConfig: {
|
|
99
|
-
paddingTop: theme.spacing.unit
|
|
100
|
-
}
|
|
101
|
-
};
|
|
102
|
-
})(PartialScoringConfig);
|
|
103
|
-
|
|
104
|
-
exports["default"] = _default;
|
|
69
|
+
var _default = exports["default"] = PartialScoringConfig;
|
|
105
70
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_Typography","_Checkbox","_styles","_propTypes","_callSuper","t","o","e","_getPrototypeOf2","_possibleConstructorReturn2","_isNativeReflectConstruct","Reflect","construct","constructor","apply","Boolean","prototype","valueOf","call","ScoringConfigContainer","styled","_ref","theme","paddingTop","spacing","PartialScoringConfig","exports","_React$Component","props","_this","_classCallCheck2","_defineProperty2","checked","state","onChange","setState","partialScoring","_inherits2","_createClass2","key","value","render","label","textLabel","createElement","variant","onCheckboxChanged","React","Component","PropTypes","string","bool","func","_default"],"sources":["../src/index.jsx"],"sourcesContent":["import React from 'react';\nimport Typography from '@mui/material/Typography';\nimport Checkbox from '@mui/material/Checkbox';\nimport { styled } from '@mui/material/styles';\nimport PropTypes from 'prop-types';\n\nconst ScoringConfigContainer = styled('div')(({ theme }) => ({\n paddingTop: theme.spacing(1),\n}));\n\nexport class PartialScoringConfig extends React.Component {\n static propTypes = {\n label: PropTypes.string,\n partialScoring: PropTypes.bool,\n onChange: PropTypes.func,\n };\n\n state = {\n checked: false,\n };\n\n constructor(props) {\n super(props);\n\n const { partialScoring } = props;\n\n this.state.checked = partialScoring;\n }\n\n onCheckboxChanged = () => {\n const checked = !this.state.checked;\n const { onChange } = this.props;\n\n this.setState({\n checked,\n });\n onChange(checked);\n };\n\n render() {\n const { label } = this.props;\n const { checked } = this.state;\n const textLabel = label || 'Each correct response is worth 1/X where X is the number of correct answer selections.';\n\n return (\n <ScoringConfigContainer>\n <Typography variant=\"h6\">Partial Scoring Rules</Typography>\n <br />\n <Typography>{textLabel}</Typography>\n <Checkbox checked={checked} onChange={this.onCheckboxChanged} label={''} />\n </ScoringConfigContainer>\n );\n }\n}\n\nexport default PartialScoringConfig;\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pie-lib/scoring-config",
|
|
3
|
-
"version": "3.26.3-next.
|
|
3
|
+
"version": "3.26.3-next.208+14442f94",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "src/index.jsx",
|
|
@@ -11,28 +11,20 @@
|
|
|
11
11
|
"author": "",
|
|
12
12
|
"license": "ISC",
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@
|
|
15
|
-
"@
|
|
16
|
-
"@
|
|
17
|
-
"
|
|
14
|
+
"@emotion/react": "^11.14.0",
|
|
15
|
+
"@emotion/style": "^0.8.0",
|
|
16
|
+
"@mui/icons-material": "^7.3.4",
|
|
17
|
+
"@mui/material": "^7.3.4",
|
|
18
18
|
"debug": "^4.1.1",
|
|
19
19
|
"lodash": "^4.17.11",
|
|
20
20
|
"prop-types": "^15.7.2"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"react": "^
|
|
23
|
+
"react": "^18.2.0"
|
|
24
24
|
},
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"react": "^
|
|
27
|
-
"react-dom": "^
|
|
26
|
+
"react": "^18.2.0",
|
|
27
|
+
"react-dom": "^18.2.0"
|
|
28
28
|
},
|
|
29
|
-
"gitHead": "
|
|
30
|
-
"exports": {
|
|
31
|
-
".": {
|
|
32
|
-
"require": "./lib/index.js",
|
|
33
|
-
"import": "./src/index.jsx",
|
|
34
|
-
"default": "./lib/index.js"
|
|
35
|
-
},
|
|
36
|
-
"./esm": "./esm/index.js"
|
|
37
|
-
}
|
|
29
|
+
"gitHead": "14442f9403cc03107f383dc38850d86933c6ec26"
|
|
38
30
|
}
|
|
@@ -1,11 +1,107 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
import
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import userEvent from '@testing-library/user-event';
|
|
4
|
+
import { ThemeProvider, createTheme } from '@mui/material/styles';
|
|
4
5
|
import { PartialScoringConfig } from '../index';
|
|
5
6
|
|
|
6
|
-
describe('
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
describe('PartialScoringConfig', () => {
|
|
8
|
+
const theme = createTheme();
|
|
9
|
+
|
|
10
|
+
const renderComponent = (props = {}) => {
|
|
11
|
+
const defaultProps = {
|
|
12
|
+
classes: {},
|
|
13
|
+
partialScoring: false,
|
|
14
|
+
onChange: jest.fn(),
|
|
15
|
+
...props,
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
...render(
|
|
20
|
+
<ThemeProvider theme={theme}>
|
|
21
|
+
<PartialScoringConfig {...defaultProps} />
|
|
22
|
+
</ThemeProvider>
|
|
23
|
+
),
|
|
24
|
+
onChange: defaultProps.onChange,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
describe('rendering', () => {
|
|
29
|
+
it('renders title and default description', () => {
|
|
30
|
+
renderComponent();
|
|
31
|
+
|
|
32
|
+
expect(screen.getByText('Partial Scoring Rules')).toBeInTheDocument();
|
|
33
|
+
expect(screen.getByText('Each correct response is worth 1/X where X is the number of correct answer selections.')).toBeInTheDocument();
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('renders checkbox', () => {
|
|
37
|
+
renderComponent();
|
|
38
|
+
|
|
39
|
+
const checkbox = screen.getByRole('checkbox');
|
|
40
|
+
expect(checkbox).toBeInTheDocument();
|
|
41
|
+
expect(checkbox).not.toBeChecked();
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
it('renders with custom label', () => {
|
|
45
|
+
const customLabel = 'Custom scoring label';
|
|
46
|
+
renderComponent({ label: customLabel });
|
|
47
|
+
|
|
48
|
+
expect(screen.getByText(customLabel)).toBeInTheDocument();
|
|
49
|
+
expect(screen.queryByText('Each correct response is worth 1/X where X is the number of correct answer selections.')).not.toBeInTheDocument();
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('renders checkbox as checked when partialScoring is true', () => {
|
|
53
|
+
renderComponent({ partialScoring: true });
|
|
54
|
+
|
|
55
|
+
const checkbox = screen.getByRole('checkbox');
|
|
56
|
+
expect(checkbox).toBeChecked();
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
it('renders checkbox as unchecked when partialScoring is false', () => {
|
|
60
|
+
renderComponent({ partialScoring: false });
|
|
61
|
+
|
|
62
|
+
const checkbox = screen.getByRole('checkbox');
|
|
63
|
+
expect(checkbox).not.toBeChecked();
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
describe('interactions', () => {
|
|
68
|
+
it('calls onChange with true when checkbox is clicked (initially unchecked)', async () => {
|
|
69
|
+
const user = userEvent.setup();
|
|
70
|
+
const { onChange } = renderComponent({ partialScoring: false });
|
|
71
|
+
|
|
72
|
+
const checkbox = screen.getByRole('checkbox');
|
|
73
|
+
await user.click(checkbox);
|
|
74
|
+
|
|
75
|
+
expect(onChange).toHaveBeenCalledWith(true);
|
|
76
|
+
expect(checkbox).toBeChecked();
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
it('calls onChange with false when checkbox is clicked (initially checked)', async () => {
|
|
80
|
+
const user = userEvent.setup();
|
|
81
|
+
const { onChange } = renderComponent({ partialScoring: true });
|
|
82
|
+
|
|
83
|
+
const checkbox = screen.getByRole('checkbox');
|
|
84
|
+
await user.click(checkbox);
|
|
85
|
+
|
|
86
|
+
expect(onChange).toHaveBeenCalledWith(false);
|
|
87
|
+
expect(checkbox).not.toBeChecked();
|
|
88
|
+
});
|
|
89
|
+
|
|
90
|
+
it('toggles checkbox state on multiple clicks', async () => {
|
|
91
|
+
const user = userEvent.setup();
|
|
92
|
+
const { onChange } = renderComponent({ partialScoring: false });
|
|
93
|
+
|
|
94
|
+
const checkbox = screen.getByRole('checkbox');
|
|
95
|
+
|
|
96
|
+
// First click: unchecked -> checked
|
|
97
|
+
await user.click(checkbox);
|
|
98
|
+
expect(onChange).toHaveBeenCalledWith(true);
|
|
99
|
+
expect(checkbox).toBeChecked();
|
|
100
|
+
|
|
101
|
+
// Second click: checked -> unchecked
|
|
102
|
+
await user.click(checkbox);
|
|
103
|
+
expect(onChange).toHaveBeenCalledWith(false);
|
|
104
|
+
expect(checkbox).not.toBeChecked();
|
|
105
|
+
});
|
|
10
106
|
});
|
|
11
107
|
});
|
package/src/index.jsx
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import Typography from '@material
|
|
3
|
-
import Checkbox from '@material
|
|
4
|
-
import {
|
|
2
|
+
import Typography from '@mui/material/Typography';
|
|
3
|
+
import Checkbox from '@mui/material/Checkbox';
|
|
4
|
+
import { styled } from '@mui/material/styles';
|
|
5
5
|
import PropTypes from 'prop-types';
|
|
6
6
|
|
|
7
|
+
const ScoringConfigContainer = styled('div')(({ theme }) => ({
|
|
8
|
+
paddingTop: theme.spacing(1),
|
|
9
|
+
}));
|
|
10
|
+
|
|
7
11
|
export class PartialScoringConfig extends React.Component {
|
|
8
12
|
static propTypes = {
|
|
9
13
|
label: PropTypes.string,
|
|
10
14
|
partialScoring: PropTypes.bool,
|
|
11
|
-
classes: PropTypes.object.isRequired,
|
|
12
15
|
onChange: PropTypes.func,
|
|
13
16
|
};
|
|
14
17
|
|
|
@@ -35,23 +38,19 @@ export class PartialScoringConfig extends React.Component {
|
|
|
35
38
|
};
|
|
36
39
|
|
|
37
40
|
render() {
|
|
38
|
-
const {
|
|
41
|
+
const { label } = this.props;
|
|
39
42
|
const { checked } = this.state;
|
|
40
43
|
const textLabel = label || 'Each correct response is worth 1/X where X is the number of correct answer selections.';
|
|
41
44
|
|
|
42
45
|
return (
|
|
43
|
-
<
|
|
44
|
-
<Typography
|
|
46
|
+
<ScoringConfigContainer>
|
|
47
|
+
<Typography variant="h6">Partial Scoring Rules</Typography>
|
|
45
48
|
<br />
|
|
46
49
|
<Typography>{textLabel}</Typography>
|
|
47
50
|
<Checkbox checked={checked} onChange={this.onCheckboxChanged} label={''} />
|
|
48
|
-
</
|
|
51
|
+
</ScoringConfigContainer>
|
|
49
52
|
);
|
|
50
53
|
}
|
|
51
54
|
}
|
|
52
55
|
|
|
53
|
-
export default
|
|
54
|
-
scoringConfig: {
|
|
55
|
-
paddingTop: theme.spacing.unit,
|
|
56
|
-
},
|
|
57
|
-
}))(PartialScoringConfig);
|
|
56
|
+
export default PartialScoringConfig;
|