@digabi/exam-engine-core 22.1.0-alpha.0 → 22.1.1-alpha.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__/EditableGradingInstruction.test.js +18 -25
- package/dist/__tests__/EditableGradingInstruction.test.js.map +1 -1
- package/dist/__tests__/editor/Formula.test.js +8 -18
- package/dist/__tests__/editor/Formula.test.js.map +1 -1
- package/dist/__tests__/editor/NBSP.test.d.ts +2 -0
- package/dist/__tests__/editor/NBSP.test.d.ts.map +1 -0
- package/dist/__tests__/editor/NBSP.test.js +43 -0
- package/dist/__tests__/editor/NBSP.test.js.map +1 -0
- package/dist/__tests__/editor/br.test.d.ts +2 -0
- package/dist/__tests__/editor/br.test.d.ts.map +1 -0
- package/dist/__tests__/editor/br.test.js +43 -0
- package/dist/__tests__/editor/br.test.js.map +1 -0
- package/dist/__tests__/editor/hr.test.d.ts +2 -0
- package/dist/__tests__/editor/hr.test.d.ts.map +1 -0
- package/dist/__tests__/editor/hr.test.js +43 -0
- package/dist/__tests__/editor/hr.test.js.map +1 -0
- package/dist/__tests__/tsconfig.tsbuildinfo +1 -1
- package/dist/__tests__/utils/EditableGradingInstructionsWrapper.d.ts +1 -0
- package/dist/__tests__/utils/EditableGradingInstructionsWrapper.d.ts.map +1 -0
- package/dist/__tests__/utils/EditableGradingInstructionsWrapper.js +2 -0
- package/dist/__tests__/utils/EditableGradingInstructionsWrapper.js.map +1 -0
- package/dist/__tests__/utils/renderEditableGradingInstruction.d.ts +2 -0
- package/dist/__tests__/utils/renderEditableGradingInstruction.d.ts.map +1 -0
- package/dist/__tests__/utils/renderEditableGradingInstruction.js +16 -0
- package/dist/__tests__/utils/renderEditableGradingInstruction.js.map +1 -0
- package/dist/__tests__/utils/renderEditableGradingInstructions.d.ts +1 -0
- package/dist/__tests__/utils/renderEditableGradingInstructions.d.ts.map +1 -0
- package/dist/__tests__/utils/renderEditableGradingInstructions.js +2 -0
- package/dist/__tests__/utils/renderEditableGradingInstructions.js.map +1 -0
- package/dist/components/grading-instructions/EditableGradingInstruction.d.ts.map +1 -1
- package/dist/components/grading-instructions/EditableGradingInstruction.js +5 -1
- package/dist/components/grading-instructions/EditableGradingInstruction.js.map +1 -1
- package/dist/components/grading-instructions/editor/Formula.js +1 -1
- package/dist/components/grading-instructions/editor/Formula.js.map +1 -1
- package/dist/main-bundle.js +1 -1
- package/package.json +2 -2
@@ -3,12 +3,10 @@ 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 react_1 =
|
7
|
-
const react_2 = require("@testing-library/react");
|
8
|
-
const EditableGradingInstruction_1 = __importDefault(require("../src/components/grading-instructions/EditableGradingInstruction"));
|
9
|
-
const GradingInstructionProvider_1 = require("../src/components/grading-instructions/GradingInstructionProvider");
|
6
|
+
const react_1 = require("@testing-library/react");
|
10
7
|
const user_event_1 = __importDefault(require("@testing-library/user-event"));
|
11
|
-
const
|
8
|
+
const renderEditableGradingInstruction_1 = require("./utils/renderEditableGradingInstruction");
|
9
|
+
const act = react_1.act;
|
12
10
|
describe('EditableGradingInstruction', () => {
|
13
11
|
let cleanup;
|
14
12
|
let onContentChangeMock;
|
@@ -25,7 +23,7 @@ describe('EditableGradingInstruction', () => {
|
|
25
23
|
it('Table is rendered as expected', () => {
|
26
24
|
const inputData = '<table class="e-table"><tr><td>foo</td></tr></table>';
|
27
25
|
const expectedOutput = '<table class="e-table"><tbody><tr><td><p>foo</p></td></tr></tbody></table>';
|
28
|
-
const result =
|
26
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData);
|
29
27
|
const table = result.container.querySelector('.ProseMirror');
|
30
28
|
expect(table.innerHTML).toBe(expectedOutput);
|
31
29
|
});
|
@@ -33,7 +31,7 @@ describe('EditableGradingInstruction', () => {
|
|
33
31
|
cleanup = mockCreateRange();
|
34
32
|
const inputData = '<table class="e-table"><tr><td>foo</td></tr></table>';
|
35
33
|
const expectedOutput = '<table class="e-table"><tbody><tr><td><p>bar</p></td></tr></tbody></table>';
|
36
|
-
const result =
|
34
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
37
35
|
await act(async () => {
|
38
36
|
insertText(await result.findByText('foo'), 'bar');
|
39
37
|
});
|
@@ -43,7 +41,7 @@ describe('EditableGradingInstruction', () => {
|
|
43
41
|
it('Insert table adds expected table', async () => {
|
44
42
|
const inputData = '';
|
45
43
|
const expectedOutput = '<table class="e-table e-width-half"><tbody><tr><td><p></p></td><td><p></p></td></tr><tr><td><p></p></td><td><p></p></td></tr></tbody></table>';
|
46
|
-
const result =
|
44
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
47
45
|
await act(async () => {
|
48
46
|
await user_event_1.default.click(await result.findByText('Lisää taulukko'));
|
49
47
|
});
|
@@ -52,77 +50,77 @@ describe('EditableGradingInstruction', () => {
|
|
52
50
|
it('Remove table removes table', async () => {
|
53
51
|
const inputData = '<table><tr><td>foo</td></tr></table>';
|
54
52
|
const expectedOutput = '<p></p>';
|
55
|
-
const result =
|
53
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
56
54
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista taulukko');
|
57
55
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
58
56
|
});
|
59
57
|
it('Insert column adds column', async () => {
|
60
58
|
const inputData = '<table><tr><td>foo</td></tr></table>';
|
61
59
|
const expectedOutput = '<table><tbody><tr><td><p>foo</p></td><td><p></p></td></tr></tbody></table>';
|
62
|
-
const result =
|
60
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
63
61
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Lisää sarake');
|
64
62
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
65
63
|
});
|
66
64
|
it('Remove column removes column', async () => {
|
67
65
|
const inputData = '<table><tr><td>foo</td><td>bar</td></tr></table>';
|
68
66
|
const expectedOutput = '<table><tbody><tr><td><p>bar</p></td></tr></tbody></table>';
|
69
|
-
const result =
|
67
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
70
68
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista sarake');
|
71
69
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
72
70
|
});
|
73
71
|
it('Insert row adds row', async () => {
|
74
72
|
const inputData = '<table><tr><td>foo</td></tr></table>';
|
75
73
|
const expectedOutput = '<table><tbody><tr><td><p>foo</p></td></tr><tr><td><p></p></td></tr></tbody></table>';
|
76
|
-
const result =
|
74
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
77
75
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Lisää rivi');
|
78
76
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
79
77
|
});
|
80
78
|
it('Remove row removes row', async () => {
|
81
79
|
const inputData = '<table><tr><td>foo</td></tr><tr><td>bar</td></tr></table>';
|
82
80
|
const expectedOutput = '<table><tbody><tr><td><p>bar</p></td></tr></tbody></table>';
|
83
|
-
const result =
|
81
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
84
82
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista rivi');
|
85
83
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
86
84
|
});
|
87
85
|
it('Full width changes full width class to table', async () => {
|
88
86
|
const inputData = '<table class="e-width-half"><tr><td>foo</td></tr></table>';
|
89
87
|
const expectedOutput = '<table class="e-width-full"><tbody><tr><td><p>foo</p></td></tr></tbody></table>';
|
90
|
-
const result =
|
88
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
91
89
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Täysi leveys');
|
92
90
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
93
91
|
});
|
94
92
|
it('Half width changes half width class to table', async () => {
|
95
93
|
const inputData = '<table class="e-width-full"><tr><td>foo</td></tr></table>';
|
96
94
|
const expectedOutput = '<table class="e-width-half"><tbody><tr><td><p>foo</p></td></tr></tbody></table>';
|
97
|
-
const result =
|
95
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
98
96
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Puolikas leveys');
|
99
97
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
100
98
|
});
|
101
99
|
it('Remove borders adds e-table--borderless class to table', async () => {
|
102
100
|
const inputData = '<table><tr><td>foo</td></tr></table>';
|
103
101
|
const expectedOutput = '<table class="e-table--borderless"><tbody><tr><td><p>foo</p></td></tr></tbody></table>';
|
104
|
-
const result =
|
102
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
105
103
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista reunat');
|
106
104
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
107
105
|
});
|
108
106
|
it('Add borders removes e-table--borderless class from table', async () => {
|
109
107
|
const inputData = '<table class="e-table--borderless"><tr><td>foo</td></tr></table>';
|
110
108
|
const expectedOutput = '<table><tbody><tr><td><p>foo</p></td></tr></tbody></table>';
|
111
|
-
const result =
|
109
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
112
110
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Lisää reunat');
|
113
111
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
114
112
|
});
|
115
113
|
it('Remove zebra removes class from table', async () => {
|
116
114
|
const inputData = '<table class="e-table--zebra"><tr><td>foo</td></tr></table>';
|
117
115
|
const expectedOutput = '<table><tbody><tr><td><p>foo</p></td></tr></tbody></table>';
|
118
|
-
const result =
|
116
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
119
117
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Poista kuviointi');
|
120
118
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
121
119
|
});
|
122
120
|
it('Add zebra adds e-table--zebra class to table', async () => {
|
123
121
|
const inputData = '<table><tr><td>foo</td></tr></table>';
|
124
122
|
const expectedOutput = '<table class="e-table--zebra"><tbody><tr><td><p>foo</p></td></tr></tbody></table>';
|
125
|
-
const result =
|
123
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
126
124
|
await clickTableMenuButtonWithFocusOnCell(result, 'foo', 'Lisää kuviointi');
|
127
125
|
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
128
126
|
});
|
@@ -140,15 +138,10 @@ async function focusOnTablesCell(result, text) {
|
|
140
138
|
insertText(await result.findByText(text), text);
|
141
139
|
}
|
142
140
|
function insertText(element, text) {
|
143
|
-
|
141
|
+
react_1.fireEvent.input(element, {
|
144
142
|
target: { innerText: text, innerHTML: text }
|
145
143
|
});
|
146
144
|
}
|
147
|
-
function renderGradinginstruction(inputData, onContentChangeMock = () => { }) {
|
148
|
-
const doc = new DOMParser().parseFromString(inputData, 'text/html');
|
149
|
-
return (0, react_2.render)(react_1.default.createElement(GradingInstructionProvider_1.GradingInstructionProvider, { editable: true, onContentChange: onContentChangeMock, saveScreenshot: () => Promise.resolve('') },
|
150
|
-
react_1.default.createElement(EditableGradingInstruction_1.default, { element: doc.documentElement })));
|
151
|
-
}
|
152
145
|
function mockCreateRange() {
|
153
146
|
const originalCreateRange = global.window.document.createRange;
|
154
147
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"EditableGradingInstruction.test.js","sourceRoot":"","sources":["../../__tests__/EditableGradingInstruction.test.tsx"],"names":[],"mappings":";;;;;AAAA,
|
1
|
+
{"version":3,"file":"EditableGradingInstruction.test.js","sourceRoot":"","sources":["../../__tests__/EditableGradingInstruction.test.tsx"],"names":[],"mappings":"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"}
|
@@ -1,14 +1,9 @@
|
|
1
1
|
"use strict";
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
-
};
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const react_1 =
|
7
|
-
const react_2 = require("@testing-library/react");
|
8
|
-
const EditableGradingInstruction_1 = __importDefault(require("../../src/components/grading-instructions/EditableGradingInstruction"));
|
9
|
-
const GradingInstructionProvider_1 = require("../../src/components/grading-instructions/GradingInstructionProvider");
|
3
|
+
const react_1 = require("@testing-library/react");
|
10
4
|
const prosemirror_1 = require("../utils/prosemirror");
|
11
|
-
const
|
5
|
+
const renderEditableGradingInstruction_1 = require("../utils/renderEditableGradingInstruction");
|
6
|
+
const act = react_1.act;
|
12
7
|
describe('Editor - Formula', () => {
|
13
8
|
let cleanup;
|
14
9
|
let onContentChangeMock;
|
@@ -24,15 +19,15 @@ describe('Editor - Formula', () => {
|
|
24
19
|
it('Formula is rendered as expected', () => {
|
25
20
|
const inputData = '<p>bar <e:formula data-editor-id="e-formula">foo</e:formula></p>';
|
26
21
|
const expectedOutput = '<p>bar <img alt="foo" src="/math.svg?latex=foo"><img class="ProseMirror-separator" alt=""><br class="ProseMirror-trailingBreak"></p>';
|
27
|
-
const result =
|
22
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData);
|
28
23
|
const table = result.container.querySelector('.ProseMirror');
|
29
24
|
expect(table.innerHTML).toBe(expectedOutput);
|
30
25
|
});
|
31
26
|
it('Change in content causes formula to be returned as expected', async () => {
|
32
27
|
cleanup = (0, prosemirror_1.mockCreateRange)();
|
33
|
-
const inputData = '<p>bar</p><p><e:formula data-editor-id="e-formula" mode="inline">foo</e:formula></p>';
|
34
|
-
const expectedOutput = '<p>foo</p><p><e:formula mode="inline">foo</e:formula></p>';
|
35
|
-
const result =
|
28
|
+
const inputData = '<p>bar</p><p><e:formula data-editor-id="e-formula" mode="inline">foo</e:formula><e:formula data-editor-id="e-formula">bar</e:formula></p>';
|
29
|
+
const expectedOutput = '<p>foo</p><p><e:formula mode="inline">foo</e:formula><e:formula>bar</e:formula></p>';
|
30
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
36
31
|
await act(async () => {
|
37
32
|
insertText(await result.findByText('bar'), 'foo');
|
38
33
|
});
|
@@ -41,13 +36,8 @@ describe('Editor - Formula', () => {
|
|
41
36
|
});
|
42
37
|
});
|
43
38
|
function insertText(element, text) {
|
44
|
-
|
39
|
+
react_1.fireEvent.input(element, {
|
45
40
|
target: { innerText: text, innerHTML: text }
|
46
41
|
});
|
47
42
|
}
|
48
|
-
function renderGradinginstruction(inputData, onContentChangeMock = () => { }) {
|
49
|
-
const doc = new DOMParser().parseFromString(inputData, 'text/html');
|
50
|
-
return (0, react_2.render)(react_1.default.createElement(GradingInstructionProvider_1.GradingInstructionProvider, { editable: true, onContentChange: onContentChangeMock, saveScreenshot: () => Promise.resolve('') },
|
51
|
-
react_1.default.createElement(EditableGradingInstruction_1.default, { element: doc.documentElement })));
|
52
|
-
}
|
53
43
|
//# sourceMappingURL=Formula.test.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Formula.test.js","sourceRoot":"","sources":["../../../__tests__/editor/Formula.test.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"Formula.test.js","sourceRoot":"","sources":["../../../__tests__/editor/Formula.test.tsx"],"names":[],"mappings":";;AAAA,kDAAkE;AAClE,sDAAsD;AACtD,gGAAoF;AAEpF,MAAM,GAAG,GAAG,WAAuD,CAAA;AAEnE,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAChC,IAAI,OAA4B,CAAA;IAChC,IAAI,mBAA8B,CAAA;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,SAAS,GAAG,kEAAkE,CAAA;QACpF,MAAM,cAAc,GAClB,sIAAsI,CAAA;QACxI,MAAM,MAAM,GAAG,IAAA,2DAAwB,EAAC,SAAS,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;QAC5D,MAAM,CAAC,KAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6DAA6D,EAAE,KAAK,IAAI,EAAE;QAC3E,OAAO,GAAG,IAAA,6BAAe,GAAE,CAAA;QAC3B,MAAM,SAAS,GACb,2IAA2I,CAAA;QAC7I,MAAM,cAAc,GAAG,qFAAqF,CAAA;QAC5G,MAAM,MAAM,GAAG,IAAA,2DAAwB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;QACvE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,UAAU,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,SAAS,UAAU,CAAC,OAAoB,EAAE,IAAY;IACpD,iBAAS,CAAC,KAAK,CAAC,OAAO,EAAE;QACvB,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;KAC7C,CAAC,CAAA;AACJ,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nbsp.test.d.ts","sourceRoot":"","sources":["../../../__tests__/editor/nbsp.test.tsx"],"names":[],"mappings":""}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const react_1 = require("@testing-library/react");
|
4
|
+
const prosemirror_1 = require("../utils/prosemirror");
|
5
|
+
const renderEditableGradingInstruction_1 = require("../utils/renderEditableGradingInstruction");
|
6
|
+
const act = react_1.act;
|
7
|
+
describe('Editor - NBSP', () => {
|
8
|
+
let cleanup;
|
9
|
+
let onContentChangeMock;
|
10
|
+
beforeEach(() => {
|
11
|
+
onContentChangeMock = jest.fn();
|
12
|
+
});
|
13
|
+
afterEach(() => {
|
14
|
+
if (cleanup) {
|
15
|
+
cleanup();
|
16
|
+
}
|
17
|
+
cleanup = null;
|
18
|
+
});
|
19
|
+
it('NBSP is rendered as expected', () => {
|
20
|
+
const inputData = '<p> bar</p>';
|
21
|
+
const expectedOutput = '<p> bar</p>';
|
22
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData);
|
23
|
+
const table = result.container.querySelector('.ProseMirror');
|
24
|
+
expect(table.innerHTML).toBe(expectedOutput);
|
25
|
+
});
|
26
|
+
it('Change in content causes NBSP to be returned as expected', async () => {
|
27
|
+
cleanup = (0, prosemirror_1.mockCreateRange)();
|
28
|
+
const inputData = '<p> foo</p><p>bar</p>';
|
29
|
+
const expectedOutput = '<p> foo</p><p>foo</p>';
|
30
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
31
|
+
await act(async () => {
|
32
|
+
insertText(await result.findByText('bar'), 'foo');
|
33
|
+
});
|
34
|
+
expect(onContentChangeMock).toHaveBeenCalledTimes(1);
|
35
|
+
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
36
|
+
});
|
37
|
+
});
|
38
|
+
function insertText(element, text) {
|
39
|
+
react_1.fireEvent.input(element, {
|
40
|
+
target: { innerText: text, innerHTML: text }
|
41
|
+
});
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=nbsp.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"nbsp.test.js","sourceRoot":"","sources":["../../../__tests__/editor/nbsp.test.tsx"],"names":[],"mappings":";;AAAA,kDAAkE;AAClE,sDAAsD;AACtD,gGAAoF;AAEpF,MAAM,GAAG,GAAG,WAAuD,CAAA;AAEnE,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,OAA4B,CAAA;IAChC,IAAI,mBAA8B,CAAA;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,SAAS,GAAG,kBAAkB,CAAA;QACpC,MAAM,cAAc,GAAG,kBAAkB,CAAA;QACzC,MAAM,MAAM,GAAG,IAAA,2DAAwB,EAAC,SAAS,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;QAC5D,MAAM,CAAC,KAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QACxE,OAAO,GAAG,IAAA,6BAAe,GAAE,CAAA;QAC3B,MAAM,SAAS,GAAG,4BAA4B,CAAA;QAC9C,MAAM,cAAc,GAAG,4BAA4B,CAAA;QACnD,MAAM,MAAM,GAAG,IAAA,2DAAwB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;QACvE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,UAAU,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,SAAS,UAAU,CAAC,OAAoB,EAAE,IAAY;IACpD,iBAAS,CAAC,KAAK,CAAC,OAAO,EAAE;QACvB,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;KAC7C,CAAC,CAAA;AACJ,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"br.test.d.ts","sourceRoot":"","sources":["../../../__tests__/editor/br.test.tsx"],"names":[],"mappings":""}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const react_1 = require("@testing-library/react");
|
4
|
+
const prosemirror_1 = require("../utils/prosemirror");
|
5
|
+
const renderEditableGradingInstruction_1 = require("../utils/renderEditableGradingInstruction");
|
6
|
+
const act = react_1.act;
|
7
|
+
describe('Editor - BR', () => {
|
8
|
+
let cleanup;
|
9
|
+
let onContentChangeMock;
|
10
|
+
beforeEach(() => {
|
11
|
+
onContentChangeMock = jest.fn();
|
12
|
+
});
|
13
|
+
afterEach(() => {
|
14
|
+
if (cleanup) {
|
15
|
+
cleanup();
|
16
|
+
}
|
17
|
+
cleanup = null;
|
18
|
+
});
|
19
|
+
it('BR is rendered as expected', () => {
|
20
|
+
const inputData = '<p>bar<br/></p>';
|
21
|
+
const expectedOutput = '<p>bar<br><br class="ProseMirror-trailingBreak"></p>';
|
22
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData);
|
23
|
+
const table = result.container.querySelector('.ProseMirror');
|
24
|
+
expect(table.innerHTML).toBe(expectedOutput);
|
25
|
+
});
|
26
|
+
it('Change in content causes BR to be returned as expected', async () => {
|
27
|
+
cleanup = (0, prosemirror_1.mockCreateRange)();
|
28
|
+
const inputData = '<p>foo<br/></p><p>bar</p>';
|
29
|
+
const expectedOutput = '<p>foo<br/></p><p>foo</p>';
|
30
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
31
|
+
await act(async () => {
|
32
|
+
insertText(await result.findByText('bar'), 'foo');
|
33
|
+
});
|
34
|
+
expect(onContentChangeMock).toHaveBeenCalledTimes(1);
|
35
|
+
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
36
|
+
});
|
37
|
+
});
|
38
|
+
function insertText(element, text) {
|
39
|
+
react_1.fireEvent.input(element, {
|
40
|
+
target: { innerText: text, innerHTML: text }
|
41
|
+
});
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=br.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"br.test.js","sourceRoot":"","sources":["../../../__tests__/editor/br.test.tsx"],"names":[],"mappings":";;AAAA,kDAAkE;AAClE,sDAAsD;AACtD,gGAAoF;AAEpF,MAAM,GAAG,GAAG,WAAuD,CAAA;AAEnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,OAA4B,CAAA;IAChC,IAAI,mBAA8B,CAAA;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,SAAS,GAAG,iBAAiB,CAAA;QACnC,MAAM,cAAc,GAAG,sDAAsD,CAAA;QAC7E,MAAM,MAAM,GAAG,IAAA,2DAAwB,EAAC,SAAS,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;QAC5D,MAAM,CAAC,KAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,OAAO,GAAG,IAAA,6BAAe,GAAE,CAAA;QAC3B,MAAM,SAAS,GAAG,2BAA2B,CAAA;QAC7C,MAAM,cAAc,GAAG,2BAA2B,CAAA;QAClD,MAAM,MAAM,GAAG,IAAA,2DAAwB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;QACvE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,UAAU,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,SAAS,UAAU,CAAC,OAAoB,EAAE,IAAY;IACpD,iBAAS,CAAC,KAAK,CAAC,OAAO,EAAE;QACvB,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;KAC7C,CAAC,CAAA;AACJ,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hr.test.d.ts","sourceRoot":"","sources":["../../../__tests__/editor/hr.test.tsx"],"names":[],"mappings":""}
|
@@ -0,0 +1,43 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const react_1 = require("@testing-library/react");
|
4
|
+
const prosemirror_1 = require("../utils/prosemirror");
|
5
|
+
const renderEditableGradingInstruction_1 = require("../utils/renderEditableGradingInstruction");
|
6
|
+
const act = react_1.act;
|
7
|
+
describe('Editor - HR', () => {
|
8
|
+
let cleanup;
|
9
|
+
let onContentChangeMock;
|
10
|
+
beforeEach(() => {
|
11
|
+
onContentChangeMock = jest.fn();
|
12
|
+
});
|
13
|
+
afterEach(() => {
|
14
|
+
if (cleanup) {
|
15
|
+
cleanup();
|
16
|
+
}
|
17
|
+
cleanup = null;
|
18
|
+
});
|
19
|
+
it('HR is rendered as expected', () => {
|
20
|
+
const inputData = '<p>bar</p><hr/>';
|
21
|
+
const expectedOutput = '<p>bar</p><hr>';
|
22
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData);
|
23
|
+
const table = result.container.querySelector('.ProseMirror');
|
24
|
+
expect(table.innerHTML).toBe(expectedOutput);
|
25
|
+
});
|
26
|
+
it('Change in content causes HR to be returned as expected', async () => {
|
27
|
+
cleanup = (0, prosemirror_1.mockCreateRange)();
|
28
|
+
const inputData = '<p>foo</p><hr/><p>bar</p>';
|
29
|
+
const expectedOutput = '<p>foo</p><hr/><p>foo</p>';
|
30
|
+
const result = (0, renderEditableGradingInstruction_1.renderGradingInstruction)(inputData, onContentChangeMock);
|
31
|
+
await act(async () => {
|
32
|
+
insertText(await result.findByText('bar'), 'foo');
|
33
|
+
});
|
34
|
+
expect(onContentChangeMock).toHaveBeenCalledTimes(1);
|
35
|
+
expect(onContentChangeMock).toHaveBeenCalledWith(expectedOutput, '');
|
36
|
+
});
|
37
|
+
});
|
38
|
+
function insertText(element, text) {
|
39
|
+
react_1.fireEvent.input(element, {
|
40
|
+
target: { innerText: text, innerHTML: text }
|
41
|
+
});
|
42
|
+
}
|
43
|
+
//# sourceMappingURL=hr.test.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"hr.test.js","sourceRoot":"","sources":["../../../__tests__/editor/hr.test.tsx"],"names":[],"mappings":";;AAAA,kDAAkE;AAClE,sDAAsD;AACtD,gGAAoF;AAEpF,MAAM,GAAG,GAAG,WAAuD,CAAA;AAEnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,IAAI,OAA4B,CAAA;IAChC,IAAI,mBAA8B,CAAA;IAElC,UAAU,CAAC,GAAG,EAAE;QACd,mBAAmB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,GAAG,IAAI,CAAA;IAChB,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,SAAS,GAAG,iBAAiB,CAAA;QACnC,MAAM,cAAc,GAAG,gBAAgB,CAAA;QACvC,MAAM,MAAM,GAAG,IAAA,2DAAwB,EAAC,SAAS,CAAC,CAAA;QAClD,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;QAC5D,MAAM,CAAC,KAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;IAC/C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,OAAO,GAAG,IAAA,6BAAe,GAAE,CAAA;QAC3B,MAAM,SAAS,GAAG,2BAA2B,CAAA;QAC7C,MAAM,cAAc,GAAG,2BAA2B,CAAA;QAClD,MAAM,MAAM,GAAG,IAAA,2DAAwB,EAAC,SAAS,EAAE,mBAAmB,CAAC,CAAA;QACvE,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,UAAU,CAAC,MAAM,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;QACnD,CAAC,CAAC,CAAA;QACF,MAAM,CAAC,mBAAmB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAA;QACpD,MAAM,CAAC,mBAAmB,CAAC,CAAC,oBAAoB,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;IACtE,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,SAAS,UAAU,CAAC,OAAoB,EAAE,IAAY;IACpD,iBAAS,CAAC,KAAK,CAAC,OAAO,EAAE;QACvB,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;KAC7C,CAAC,CAAA;AACJ,CAAC"}
|