@digabi/exam-engine-core 20.4.1 → 20.5.0
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/dist/__tests__/annotations.test.d.ts.map +1 -1
- package/dist/__tests__/annotations.test.js +46 -35
- package/dist/__tests__/annotations.test.js.map +1 -1
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/components/RenderIf.d.ts.map +1 -1
- package/dist/components/attachments/Attachments.d.ts.map +1 -1
- package/dist/components/attachments/Attachments.js +7 -9
- package/dist/components/attachments/Attachments.js.map +1 -1
- package/dist/components/context/AnnotationProvider.d.ts.map +1 -1
- package/dist/components/context/AnnotationProvider.js +18 -2
- package/dist/components/context/AnnotationProvider.js.map +1 -1
- package/dist/components/context/IsInSidebarContext.d.ts +0 -1
- package/dist/components/context/IsInSidebarContext.d.ts.map +1 -1
- package/dist/components/context/ResultsContext.d.ts.map +1 -1
- package/dist/components/context/ResultsContext.js.map +1 -1
- package/dist/components/context/TOCContext.d.ts +0 -1
- package/dist/components/context/TOCContext.d.ts.map +1 -1
- package/dist/components/context/withContext.d.ts.map +1 -1
- package/dist/components/exam/ChoiceAnswer.d.ts.map +1 -1
- package/dist/components/exam/ChoiceAnswer.js +16 -14
- package/dist/components/exam/ChoiceAnswer.js.map +1 -1
- package/dist/components/exam/Exam.d.ts.map +1 -1
- package/dist/components/exam/Exam.js +0 -2
- package/dist/components/exam/Exam.js.map +1 -1
- package/dist/components/exam/TextAnswer.d.ts.map +1 -1
- package/dist/components/exam/TextAnswer.js +6 -4
- package/dist/components/exam/TextAnswer.js.map +1 -1
- package/dist/components/grading/editAnnotations.d.ts.map +1 -1
- package/dist/components/grading/editAnnotations.js +2 -1
- package/dist/components/grading/editAnnotations.js.map +1 -1
- package/dist/components/grading/examAnnotationUtils.d.ts +0 -1
- package/dist/components/grading/examAnnotationUtils.d.ts.map +1 -1
- package/dist/components/grading/examAnnotationUtils.js +26 -30
- package/dist/components/grading/examAnnotationUtils.js.map +1 -1
- package/dist/components/grading-instructions/GradingInstructions.d.ts.map +1 -1
- package/dist/components/grading-instructions/GradingInstructions.js +23 -25
- package/dist/components/grading-instructions/GradingInstructions.js.map +1 -1
- package/dist/components/shared/AnnotatableText.d.ts +2 -4
- package/dist/components/shared/AnnotatableText.d.ts.map +1 -1
- package/dist/components/shared/AnnotatableText.js +36 -28
- package/dist/components/shared/AnnotatableText.js.map +1 -1
- package/dist/components/shared/AnswerIndicator.d.ts +1 -1
- package/dist/components/shared/AnswerIndicator.d.ts.map +1 -1
- package/dist/components/shared/AnswerIndicator.js +10 -9
- package/dist/components/shared/AnswerIndicator.js.map +1 -1
- package/dist/components/shared/AnswerLengthInfo.d.ts +1 -1
- package/dist/components/shared/AnswerLengthInfo.d.ts.map +1 -1
- package/dist/components/shared/AttachmentLink.d.ts +1 -1
- package/dist/components/shared/AttachmentLink.d.ts.map +1 -1
- package/dist/components/shared/AttachmentLinks.d.ts +1 -1
- package/dist/components/shared/AttachmentLinks.d.ts.map +1 -1
- package/dist/components/shared/References.d.ts.map +1 -1
- package/dist/components/shared/References.js +1 -0
- package/dist/components/shared/References.js.map +1 -1
- package/dist/components/shared/TOCQuestion.js +1 -1
- package/dist/components/shared/TOCQuestion.js.map +1 -1
- package/dist/createRenderChildNodes.d.ts.map +1 -1
- package/dist/createRenderChildNodes.js +2 -12
- package/dist/createRenderChildNodes.js.map +1 -1
- package/dist/i18n/index.d.ts.map +1 -1
- package/dist/main-bundle.js +1 -1
- package/dist/main.css +1 -1
- package/dist/store/answers/reducer.d.ts.map +1 -1
- package/dist/store/audio/reducer.d.ts.map +1 -1
- package/dist/store/cas/reducer.d.ts.map +1 -1
- package/dist/store/selectors.d.ts +1 -1
- package/package.json +3 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"annotations.test.d.ts","sourceRoot":"","sources":["../../__tests__/annotations.test.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"annotations.test.d.ts","sourceRoot":"","sources":["../../__tests__/annotations.test.tsx"],"names":[],"mappings":"AAEA,OAAO,2BAA2B,CAAA"}
|
@@ -3,19 +3,19 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const exam_engine_exams_1 = require("@digabi/exam-engine-exams");
|
7
|
+
const exam_engine_mastering_1 = require("@digabi/exam-engine-mastering");
|
8
|
+
require("@testing-library/jest-dom");
|
6
9
|
const react_1 = require("@testing-library/react");
|
7
10
|
const user_event_1 = __importDefault(require("@testing-library/user-event"));
|
8
|
-
const Exam_1 = __importDefault(require("../src/components/exam/Exam"));
|
9
|
-
const GradingInstructions_1 = __importDefault(require("../src/components/grading-instructions/GradingInstructions"));
|
10
11
|
const fs_1 = require("fs");
|
11
|
-
const exam_engine_mastering_1 = require("@digabi/exam-engine-mastering");
|
12
|
-
const exam_engine_exams_1 = require("@digabi/exam-engine-exams");
|
13
12
|
const path_1 = __importDefault(require("path"));
|
14
|
-
const parseExam_1 = __importDefault(require("../dist/parser/parseExam"));
|
15
|
-
const examServerApi_1 = require("./examServerApi");
|
16
13
|
const react_2 = __importDefault(require("react"));
|
17
|
-
require("
|
14
|
+
const parseExam_1 = __importDefault(require("../dist/parser/parseExam"));
|
18
15
|
const Attachments_1 = __importDefault(require("../src/components/attachments/Attachments"));
|
16
|
+
const Exam_1 = __importDefault(require("../src/components/exam/Exam"));
|
17
|
+
const GradingInstructions_1 = __importDefault(require("../src/components/grading-instructions/GradingInstructions"));
|
18
|
+
const examServerApi_1 = require("./examServerApi");
|
19
19
|
class IntersectionObserver {
|
20
20
|
constructor() {
|
21
21
|
this.root = null;
|
@@ -53,18 +53,21 @@ describe('Annotations', () => {
|
|
53
53
|
const defaultAnnotationAnchor = 'e:exam:0 > e:section:1 > e:question:2 > e:question-instruction:1 > span:0 > p:0 > #text:0';
|
54
54
|
it('popup is rendered', async () => {
|
55
55
|
const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
|
56
|
-
await annotateText(exam,
|
56
|
+
await annotateText(exam, defaultAnnotationAnchor);
|
57
57
|
expect(exam.getByTestId('annotation-popup')).toBeVisible();
|
58
58
|
});
|
59
59
|
it('popup is not rendered if annotation props are not passed', async () => {
|
60
60
|
const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps() }));
|
61
|
-
|
61
|
+
const text = 'Sekä moraali että tavat pyrkivät ohjaamaan ihmisten käyttäytymistä.';
|
62
|
+
const textElement = exam.getByText(text);
|
63
|
+
mockWindowSelection(text, textElement, 0, text.length);
|
64
|
+
await user_event_1.default.click(textElement);
|
62
65
|
expect(exam.queryByTestId('annotation-popup')).not.toBeInTheDocument();
|
63
66
|
});
|
64
67
|
it('callback is called when annotation is saved', async () => {
|
65
68
|
const saveAnnotationMock = jest.fn();
|
66
69
|
const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: saveAnnotationMock }));
|
67
|
-
await annotateText(exam,
|
70
|
+
await annotateText(exam, defaultAnnotationAnchor);
|
68
71
|
const textbox = exam.getByTestId('edit-comment');
|
69
72
|
react_1.fireEvent.input(textbox, {
|
70
73
|
target: { innerText: 'New Value', innerHTML: 'New Value' }
|
@@ -78,23 +81,25 @@ describe('Annotations', () => {
|
|
78
81
|
length: defaultTextToAnnotate.length,
|
79
82
|
message: 'New Value',
|
80
83
|
selectedText: defaultTextToAnnotate,
|
81
|
-
startIndex:
|
84
|
+
startIndex: 0
|
82
85
|
});
|
83
86
|
});
|
84
87
|
it('popup field is empty when creating new annotation', async () => {
|
88
|
+
const annotationAnchor_7_1 = 'e:exam:0 > e:section:2 > e:question:7 > e:question:7.1 > e:question-title:0 > span:0 > #text:0';
|
85
89
|
const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
|
86
|
-
await annotateText(exam,
|
90
|
+
await annotateText(exam, defaultAnnotationAnchor);
|
87
91
|
const textbox = exam.getByTestId('edit-comment');
|
88
92
|
react_1.fireEvent.input(textbox, {
|
89
93
|
target: { innerText: 'New Value', innerHTML: 'New Value' }
|
90
94
|
});
|
91
95
|
await user_event_1.default.click(exam.getByText('Vastaa'));
|
92
|
-
|
96
|
+
// text picked by getMarkedText includes leading/trailing whitespace, so they must be here too
|
97
|
+
await annotateText(exam, annotationAnchor_7_1);
|
93
98
|
expect(exam.getByTestId('edit-comment').textContent).toHaveLength(0);
|
94
99
|
});
|
95
100
|
it('callback is called when annotation is clicked', async () => {
|
96
101
|
const clickAnnotationMock = jest.fn();
|
97
|
-
const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: { [defaultAnnotationAnchor]: [createAnnotation(1,
|
102
|
+
const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), annotations: { [defaultAnnotationAnchor]: [createAnnotation(1, 5, 12, 'moraali että')] }, onClickAnnotation: clickAnnotationMock, onSaveAnnotation: () => { } }));
|
98
103
|
await user_event_1.default.click(exam.container.querySelector('[data-annotation-id="1"]'));
|
99
104
|
expect(clickAnnotationMock).toHaveBeenCalledTimes(1);
|
100
105
|
expect(clickAnnotationMock).toHaveBeenCalledWith(expect.anything(), {
|
@@ -102,26 +107,26 @@ describe('Annotations', () => {
|
|
102
107
|
annotationId: 1,
|
103
108
|
displayNumber: '',
|
104
109
|
hidden: false,
|
105
|
-
length:
|
110
|
+
length: 12,
|
106
111
|
message: '',
|
107
|
-
selectedText: '',
|
108
|
-
startIndex:
|
112
|
+
selectedText: 'moraali että',
|
113
|
+
startIndex: 5
|
109
114
|
});
|
110
115
|
});
|
111
116
|
it('annotations are added to dom when provided', () => {
|
112
117
|
var _a, _b;
|
113
118
|
const annotationProps = {
|
114
119
|
annotations: {
|
115
|
-
[defaultAnnotationAnchor]: [createAnnotation(1,
|
120
|
+
[defaultAnnotationAnchor]: [createAnnotation(1, 5, 7, 'moraali'), createAnnotation(3, 18, 5, 'tavat')]
|
116
121
|
},
|
117
122
|
onClickAnnotation: () => { },
|
118
123
|
onSaveAnnotation: () => { }
|
119
124
|
};
|
120
125
|
const exam = (0, react_1.render)(react_2.default.createElement(Exam_1.default, { ...getExamProps(), ...annotationProps }));
|
121
126
|
expect(exam.container.querySelector('[data-annotation-id="1"]')).toBeInTheDocument();
|
122
|
-
expect((_a = exam.container.querySelector('[data-annotation-id="1"]')) === null || _a === void 0 ? void 0 : _a.textContent).toBe('
|
127
|
+
expect((_a = exam.container.querySelector('[data-annotation-id="1"]')) === null || _a === void 0 ? void 0 : _a.textContent).toBe('moraali');
|
123
128
|
expect(exam.container.querySelector('[data-annotation-id="3"]')).toBeInTheDocument();
|
124
|
-
expect((_b = exam.container.querySelector('[data-annotation-id="3"]')) === null || _b === void 0 ? void 0 : _b.textContent).toBe('
|
129
|
+
expect((_b = exam.container.querySelector('[data-annotation-id="3"]')) === null || _b === void 0 ? void 0 : _b.textContent).toBe('tavat');
|
125
130
|
});
|
126
131
|
it('hidden annotation works correctly', () => {
|
127
132
|
var _a, _b;
|
@@ -132,11 +137,11 @@ describe('Annotations', () => {
|
|
132
137
|
annotationId: 1,
|
133
138
|
annotationAnchor: defaultAnnotationAnchor,
|
134
139
|
hidden: true,
|
135
|
-
startIndex:
|
136
|
-
length:
|
140
|
+
startIndex: 24,
|
141
|
+
length: 8,
|
137
142
|
message: '',
|
138
143
|
displayNumber: '',
|
139
|
-
selectedText: ''
|
144
|
+
selectedText: 'pyrkivät'
|
140
145
|
}
|
141
146
|
]
|
142
147
|
},
|
@@ -149,15 +154,16 @@ describe('Annotations', () => {
|
|
149
154
|
});
|
150
155
|
it('grading instructions can be annotated', async () => {
|
151
156
|
const gi = (0, react_1.render)(react_2.default.createElement(GradingInstructions_1.default, { ...getCommonProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
|
152
|
-
await annotateText(gi,
|
157
|
+
await annotateText(gi, defaultAnnotationAnchor);
|
153
158
|
expect(gi.getByTestId('annotation-popup')).toBeVisible();
|
154
159
|
});
|
155
160
|
it('attachments can be annotated', async () => {
|
161
|
+
const annotationAnchor_7_A = 'e:exam:0 > e:section:2 > e:question:7 > e:external-material:3 > e:attachment:0 > span:1 > p:3 > #text:0';
|
156
162
|
const gi = (0, react_1.render)(react_2.default.createElement(Attachments_1.default, { ...getCommonProps(), annotations: {}, onClickAnnotation: () => { }, onSaveAnnotation: () => { } }));
|
157
|
-
await annotateText(gi,
|
163
|
+
await annotateText(gi, annotationAnchor_7_A);
|
158
164
|
expect(gi.getByTestId('annotation-popup')).toBeVisible();
|
159
165
|
});
|
160
|
-
function createAnnotation(id, startIndex, length) {
|
166
|
+
function createAnnotation(id, startIndex, length, selectedText) {
|
161
167
|
return {
|
162
168
|
annotationId: id,
|
163
169
|
annotationAnchor: defaultAnnotationAnchor,
|
@@ -166,24 +172,29 @@ describe('Annotations', () => {
|
|
166
172
|
length,
|
167
173
|
message: '',
|
168
174
|
displayNumber: '',
|
169
|
-
selectedText
|
175
|
+
selectedText
|
170
176
|
};
|
171
177
|
}
|
172
|
-
async function annotateText(exam,
|
173
|
-
|
174
|
-
const
|
178
|
+
async function annotateText(exam, elementAnchor, startIndex = 0, length) {
|
179
|
+
const textElement = exam.getByTestId(elementAnchor);
|
180
|
+
const fullText = (textElement === null || textElement === void 0 ? void 0 : textElement.textContent) || '';
|
181
|
+
const annotationLength = length || fullText.length;
|
182
|
+
const text = fullText.substring(startIndex, startIndex + annotationLength);
|
183
|
+
mockWindowSelection(text, textElement, startIndex, annotationLength);
|
175
184
|
await user_event_1.default.click(textElement);
|
176
185
|
}
|
177
|
-
function mockWindowSelection(text = 'mocked selection text',
|
186
|
+
function mockWindowSelection(text = 'mocked selection text', element, startOffset = 0, length) {
|
178
187
|
;
|
179
188
|
window.getSelection.mockImplementation(() => ({
|
180
189
|
toString: () => text,
|
181
190
|
rangeCount: 1,
|
191
|
+
anchorNode: element.firstChild,
|
192
|
+
focusNode: element.firstChild,
|
182
193
|
getRangeAt: jest.fn().mockReturnValue({
|
183
|
-
startOffset
|
184
|
-
endOffset: length,
|
185
|
-
startContainer:
|
186
|
-
endContainer:
|
194
|
+
startOffset,
|
195
|
+
endOffset: startOffset + length,
|
196
|
+
startContainer: element,
|
197
|
+
endContainer: element,
|
187
198
|
cloneContents: jest.fn().mockReturnValue({ children: [], childNodes: [] })
|
188
199
|
})
|
189
200
|
}));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"annotations.test.js","sourceRoot":"","sources":["../../__tests__/annotations.test.tsx"],"names":[],"mappings":";;;;;AAAA,kDAAwE;AACxE,6EAAmD;AACnD,
|
1
|
+
{"version":3,"file":"annotations.test.js","sourceRoot":"","sources":["../../__tests__/annotations.test.tsx"],"names":[],"mappings":"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"}
|