@pie-lib/feedback 0.5.0-beta.3 → 0.5.0-beta.5
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 +40 -0
- package/lib/__tests__/index.test.js +161 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,46 @@
|
|
|
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
|
+
# [0.5.0-beta.5](https://github.com/pie-framework/pie-lib/compare/@pie-lib/feedback@0.4.43...@pie-lib/feedback@0.5.0-beta.5) (2025-07-25)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @pie-lib/feedback
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
# [0.5.0-beta.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/feedback@0.4.43...@pie-lib/feedback@0.5.0-beta.4) (2025-07-25)
|
|
15
|
+
|
|
16
|
+
**Note:** Version bump only for package @pie-lib/feedback
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
# [0.5.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/feedback@0.4.43...@pie-lib/feedback@0.5.0-beta.3) (2025-07-25)
|
|
23
|
+
|
|
24
|
+
**Note:** Version bump only for package @pie-lib/feedback
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
# [0.5.0-beta.4](https://github.com/pie-framework/pie-lib/compare/@pie-lib/feedback@0.4.43...@pie-lib/feedback@0.5.0-beta.4) (2025-07-23)
|
|
31
|
+
|
|
32
|
+
**Note:** Version bump only for package @pie-lib/feedback
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
# [0.5.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/feedback@0.4.43...@pie-lib/feedback@0.5.0-beta.3) (2025-07-23)
|
|
39
|
+
|
|
40
|
+
**Note:** Version bump only for package @pie-lib/feedback
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
6
46
|
# [0.5.0-beta.3](https://github.com/pie-framework/pie-lib/compare/@pie-lib/feedback@0.4.43...@pie-lib/feedback@0.5.0-beta.3) (2025-07-20)
|
|
7
47
|
|
|
8
48
|
**Note:** Version bump only for package @pie-lib/feedback
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
9
|
+
var _index = require("../index");
|
|
10
|
+
|
|
11
|
+
describe('feedback', function () {
|
|
12
|
+
describe('getFeedback', function () {
|
|
13
|
+
var assert = function assert(config, fallback, expected) {
|
|
14
|
+
it("".concat(JSON.stringify(config), " -> ").concat(expected), /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
15
|
+
var result;
|
|
16
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
17
|
+
while (1) {
|
|
18
|
+
switch (_context.prev = _context.next) {
|
|
19
|
+
case 0:
|
|
20
|
+
_context.next = 2;
|
|
21
|
+
return (0, _index.getFeedback)(config, fallback);
|
|
22
|
+
|
|
23
|
+
case 2:
|
|
24
|
+
result = _context.sent;
|
|
25
|
+
expect(result).toEqual(expected);
|
|
26
|
+
|
|
27
|
+
case 4:
|
|
28
|
+
case "end":
|
|
29
|
+
return _context.stop();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}, _callee);
|
|
33
|
+
})));
|
|
34
|
+
};
|
|
35
|
+
|
|
36
|
+
assert({
|
|
37
|
+
type: 'none'
|
|
38
|
+
}, 'foo', undefined);
|
|
39
|
+
assert({
|
|
40
|
+
type: 'default'
|
|
41
|
+
}, 'foo', 'foo');
|
|
42
|
+
assert({
|
|
43
|
+
type: 'default',
|
|
44
|
+
"default": 'bar'
|
|
45
|
+
}, 'foo', 'bar');
|
|
46
|
+
});
|
|
47
|
+
describe('getFeedbackForCorrectness', function () {
|
|
48
|
+
var assert = function assert(correctness, config, expected) {
|
|
49
|
+
it("".concat(correctness, " + ").concat(JSON.stringify(config), " -> ").concat(expected), /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
|
|
50
|
+
var result;
|
|
51
|
+
return _regenerator["default"].wrap(function _callee2$(_context2) {
|
|
52
|
+
while (1) {
|
|
53
|
+
switch (_context2.prev = _context2.next) {
|
|
54
|
+
case 0:
|
|
55
|
+
_context2.next = 2;
|
|
56
|
+
return (0, _index.getFeedbackForCorrectness)(correctness, config);
|
|
57
|
+
|
|
58
|
+
case 2:
|
|
59
|
+
result = _context2.sent;
|
|
60
|
+
expect(result).toEqual(expected);
|
|
61
|
+
|
|
62
|
+
case 4:
|
|
63
|
+
case "end":
|
|
64
|
+
return _context2.stop();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}, _callee2);
|
|
68
|
+
})));
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
describe('correct', function () {
|
|
72
|
+
assert('correct', null, 'Correct');
|
|
73
|
+
assert('correct', {}, 'Correct');
|
|
74
|
+
assert('correct', {
|
|
75
|
+
correct: {
|
|
76
|
+
type: 'default'
|
|
77
|
+
}
|
|
78
|
+
}, 'Correct');
|
|
79
|
+
assert('correct', {
|
|
80
|
+
correct: {
|
|
81
|
+
type: 'default',
|
|
82
|
+
"default": 'C'
|
|
83
|
+
}
|
|
84
|
+
}, 'C');
|
|
85
|
+
assert('correct', {
|
|
86
|
+
correct: {
|
|
87
|
+
type: 'none',
|
|
88
|
+
"default": 'C'
|
|
89
|
+
}
|
|
90
|
+
}, undefined);
|
|
91
|
+
assert('correct', {
|
|
92
|
+
correct: {
|
|
93
|
+
type: 'custom',
|
|
94
|
+
custom: 'Custom'
|
|
95
|
+
}
|
|
96
|
+
}, 'Custom');
|
|
97
|
+
});
|
|
98
|
+
describe('incorrect', function () {
|
|
99
|
+
assert('incorrect', {}, 'Incorrect');
|
|
100
|
+
assert('incorrect', {
|
|
101
|
+
incorrect: {
|
|
102
|
+
type: 'default'
|
|
103
|
+
}
|
|
104
|
+
}, 'Incorrect');
|
|
105
|
+
assert('incorrect', {
|
|
106
|
+
incorrect: {
|
|
107
|
+
type: 'default',
|
|
108
|
+
"default": 'I'
|
|
109
|
+
}
|
|
110
|
+
}, 'I');
|
|
111
|
+
assert('incorrect', {
|
|
112
|
+
incorrect: {
|
|
113
|
+
type: 'none',
|
|
114
|
+
"default": 'C'
|
|
115
|
+
}
|
|
116
|
+
}, undefined);
|
|
117
|
+
assert('incorrect', {
|
|
118
|
+
incorrect: {
|
|
119
|
+
type: 'custom',
|
|
120
|
+
custom: 'Custom'
|
|
121
|
+
}
|
|
122
|
+
}, 'Custom');
|
|
123
|
+
});
|
|
124
|
+
describe('unanswered', function () {
|
|
125
|
+
assert('unanswered', {}, _index.defaults.unanswered["default"]);
|
|
126
|
+
});
|
|
127
|
+
describe('unknown', function () {
|
|
128
|
+
assert('unknown', {}, undefined);
|
|
129
|
+
});
|
|
130
|
+
describe('partially-correct', function () {
|
|
131
|
+
assert('partially-correct', {}, 'Nearly');
|
|
132
|
+
});
|
|
133
|
+
describe('partial', function () {
|
|
134
|
+
assert('partial', {}, 'Nearly');
|
|
135
|
+
assert('partial', {
|
|
136
|
+
partial: {
|
|
137
|
+
type: 'default'
|
|
138
|
+
}
|
|
139
|
+
}, 'Nearly');
|
|
140
|
+
assert('partial', {
|
|
141
|
+
partial: {
|
|
142
|
+
type: 'default',
|
|
143
|
+
"default": 'I'
|
|
144
|
+
}
|
|
145
|
+
}, 'I');
|
|
146
|
+
assert('partial', {
|
|
147
|
+
partial: {
|
|
148
|
+
type: 'none',
|
|
149
|
+
"default": 'C'
|
|
150
|
+
}
|
|
151
|
+
}, undefined);
|
|
152
|
+
assert('partial', {
|
|
153
|
+
partial: {
|
|
154
|
+
type: 'custom',
|
|
155
|
+
custom: 'Custom'
|
|
156
|
+
}
|
|
157
|
+
}, 'Custom');
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9fX3Rlc3RzX18vaW5kZXgudGVzdC5qcyJdLCJuYW1lcyI6WyJkZXNjcmliZSIsImFzc2VydCIsImNvbmZpZyIsImZhbGxiYWNrIiwiZXhwZWN0ZWQiLCJpdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXN1bHQiLCJleHBlY3QiLCJ0b0VxdWFsIiwidHlwZSIsInVuZGVmaW5lZCIsImNvcnJlY3RuZXNzIiwiY29ycmVjdCIsImN1c3RvbSIsImluY29ycmVjdCIsImRlZmF1bHRzIiwidW5hbnN3ZXJlZCIsInBhcnRpYWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBQUE7O0FBQ0FBLFFBQVEsQ0FBQyxVQUFELEVBQWEsWUFBTTtBQUN6QkEsRUFBQUEsUUFBUSxDQUFDLGFBQUQsRUFBZ0IsWUFBTTtBQUM1QixRQUFNQyxNQUFNLEdBQUcsU0FBVEEsTUFBUyxDQUFDQyxNQUFELEVBQVNDLFFBQVQsRUFBbUJDLFFBQW5CLEVBQWdDO0FBQzdDQyxNQUFBQSxFQUFFLFdBQUlDLElBQUksQ0FBQ0MsU0FBTCxDQUFlTCxNQUFmLENBQUosaUJBQWlDRSxRQUFqQyw4RkFBNkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSx1QkFDeEIsd0JBQVlGLE1BQVosRUFBb0JDLFFBQXBCLENBRHdCOztBQUFBO0FBQ3ZDSyxnQkFBQUEsTUFEdUM7QUFFN0NDLGdCQUFBQSxNQUFNLENBQUNELE1BQUQsQ0FBTixDQUFlRSxPQUFmLENBQXVCTixRQUF2Qjs7QUFGNkM7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsT0FBN0MsR0FBRjtBQUlELEtBTEQ7O0FBT0FILElBQUFBLE1BQU0sQ0FBQztBQUFFVSxNQUFBQSxJQUFJLEVBQUU7QUFBUixLQUFELEVBQW1CLEtBQW5CLEVBQTBCQyxTQUExQixDQUFOO0FBQ0FYLElBQUFBLE1BQU0sQ0FBQztBQUFFVSxNQUFBQSxJQUFJLEVBQUU7QUFBUixLQUFELEVBQXNCLEtBQXRCLEVBQTZCLEtBQTdCLENB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QUFNLEVBQUU7QUFBMUI7QUFBWCxPQUFaLEVBQStELFFBQS9ELENBQU47QUFDRCxLQU5PLENBQVI7QUFPRCxHQTVDTyxDQUFSO0FBNkNELENBM0RPLENBQVIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRGZWVkYmFja0ZvckNvcnJlY3RuZXNzLCBnZXRGZWVkYmFjaywgZGVmYXVsdHMgfSBmcm9tICcuLi9pbmRleCc7XG5kZXNjcmliZSgnZmVlZGJhY2snLCAoKSA9PiB7XG4gIGRlc2NyaWJlKCdnZXRGZWVkYmFjaycsICgpID0+IHtcbiAgICBjb25zdCBhc3NlcnQgPSAoY29uZmlnLCBmYWxsYmFjaywgZXhwZWN0ZWQpID0+IHtcbiAgICAgIGl0KGAke0pTT04uc3RyaW5naWZ5KGNvbmZpZyl9IC0+ICR7ZXhwZWN0ZWR9YCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBnZXRGZWVkYmFjayhjb25maWcsIGZhbGxiYWNrKTtcbiAgICAgICAgZXhwZWN0KHJlc3VsdCkudG9FcXVhbChleHBlY3RlZCk7XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgYXNzZXJ0KHsgdHlwZTogJ25vbmUnIH0sICdmb28nLCB1bmRlZmluZWQpO1xuICAgIGFzc2VydCh7IHR5cGU6ICdkZWZhdWx0JyB9LCAnZm9vJywgJ2ZvbycpO1xuICAgIGFzc2VydCh7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ2JhcicgfSwgJ2ZvbycsICdiYXInKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ2dldEZlZWRiYWNrRm9yQ29ycmVjdG5lc3MnLCAoKSA9PiB7XG4gICAgY29uc3QgYXNzZXJ0ID0gKGNvcnJlY3RuZXNzLCBjb25maWcsIGV4cGVjdGVkKSA9PiB7XG4gICAgICBpdChgJHtjb3JyZWN0bmVzc30gKyAke0pTT04uc3RyaW5naWZ5KGNvbmZpZyl9IC0+ICR7ZXhwZWN0ZWR9YCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBnZXRGZWVkYmFja0ZvckNvcnJlY3RuZXNzKGNvcnJlY3RuZXNzLCBjb25maWcpO1xuICAgICAgICBleHBlY3QocmVzdWx0KS50b0VxdWFsKGV4cGVjdGVkKTtcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBkZXNjcmliZSgnY29ycmVjdCcsICgpID0+IHtcbiAgICAgIGFzc2VydCgnY29ycmVjdCcsIG51bGwsICdDb3JyZWN0Jyk7XG4gICAgICBhc3NlcnQoJ2NvcnJlY3QnLCB7fSwgJ0NvcnJlY3QnKTtcbiAgICAgIGFzc2VydCgnY29ycmVjdCcsIHsgY29ycmVjdDogeyB0eXBlOiAnZGVmYXVsdCcgfSB9LCAnQ29ycmVjdCcpO1xuICAgICAgYXNzZXJ0KCdjb3JyZWN0JywgeyBjb3JyZWN0OiB7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ0MnIH0gfSwgJ0MnKTtcbiAgICAgIGFzc2VydCgnY29ycmVjdCcsIHsgY29ycmVjdDogeyB0eXBlOiAnbm9uZScsIGRlZmF1bHQ6ICdDJyB9IH0sIHVuZGVmaW5lZCk7XG4gICAgICBhc3NlcnQoJ2NvcnJlY3QnLCB7IGNvcnJlY3Q6IHsgdHlwZTogJ2N1c3RvbScsIGN1c3RvbTogJ0N1c3RvbScgfSB9LCAnQ3VzdG9tJyk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgnaW5jb3JyZWN0JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCdpbmNvcnJlY3QnLCB7fSwgJ0luY29ycmVjdCcpO1xuICAgICAgYXNzZXJ0KCdpbmNvcnJlY3QnLCB7IGluY29ycmVjdDogeyB0eXBlOiAnZGVmYXVsdCcgfSB9LCAnSW5jb3JyZWN0Jyk7XG4gICAgICBhc3NlcnQoJ2luY29ycmVjdCcsIHsgaW5jb3JyZWN0OiB7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ0knIH0gfSwgJ0knKTtcbiAgICAgIGFzc2VydCgnaW5jb3JyZWN0JywgeyBpbmNvcnJlY3Q6IHsgdHlwZTogJ25vbmUnLCBkZWZhdWx0OiAnQycgfSB9LCB1bmRlZmluZWQpO1xuICAgICAgYXNzZXJ0KCdpbmNvcnJlY3QnLCB7IGluY29ycmVjdDogeyB0eXBlOiAnY3VzdG9tJywgY3VzdG9tOiAnQ3VzdG9tJyB9IH0sICdDdXN0b20nKTtcbiAgICB9KTtcblxuICAgIGRlc2NyaWJlKCd1bmFuc3dlcmVkJywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCd1bmFuc3dlcmVkJywge30sIGRlZmF1bHRzLnVuYW5zd2VyZWQuZGVmYXVsdCk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgndW5rbm93bicsICgpID0+IHtcbiAgICAgIGFzc2VydCgndW5rbm93bicsIHt9LCB1bmRlZmluZWQpO1xuICAgIH0pO1xuXG4gICAgZGVzY3JpYmUoJ3BhcnRpYWxseS1jb3JyZWN0JywgKCkgPT4ge1xuICAgICAgYXNzZXJ0KCdwYXJ0aWFsbHktY29ycmVjdCcsIHt9LCAnTmVhcmx5Jyk7XG4gICAgfSk7XG5cbiAgICBkZXNjcmliZSgncGFydGlhbCcsICgpID0+IHtcbiAgICAgIGFzc2VydCgncGFydGlhbCcsIHt9LCAnTmVhcmx5Jyk7XG4gICAgICBhc3NlcnQoJ3BhcnRpYWwnLCB7IHBhcnRpYWw6IHsgdHlwZTogJ2RlZmF1bHQnIH0gfSwgJ05lYXJseScpO1xuICAgICAgYXNzZXJ0KCdwYXJ0aWFsJywgeyBwYXJ0aWFsOiB7IHR5cGU6ICdkZWZhdWx0JywgZGVmYXVsdDogJ0knIH0gfSwgJ0knKTtcbiAgICAgIGFzc2VydCgncGFydGlhbCcsIHsgcGFydGlhbDogeyB0eXBlOiAnbm9uZScsIGRlZmF1bHQ6ICdDJyB9IH0sIHVuZGVmaW5lZCk7XG4gICAgICBhc3NlcnQoJ3BhcnRpYWwnLCB7IHBhcnRpYWw6IHsgdHlwZTogJ2N1c3RvbScsIGN1c3RvbTogJ0N1c3RvbScgfSB9LCAnQ3VzdG9tJyk7XG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|