@pie-lib/editable-html-tip-tap 2.2.0-beta.6 → 2.2.0-beta.8

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.
Files changed (96) hide show
  1. package/lib/extensions/math.js.map +1 -1
  2. package/package.json +3 -3
  3. package/src/extensions/__tests__/math.test.js +2 -6
  4. package/src/extensions/math.js +1 -5
  5. package/lib/__tests__/EditableHtml.test.js +0 -831
  6. package/lib/__tests__/EditableHtml.test.js.map +0 -1
  7. package/lib/__tests__/constants.test.js +0 -21
  8. package/lib/__tests__/constants.test.js.map +0 -1
  9. package/lib/__tests__/div-to-paragraph-conversion.test.js +0 -213
  10. package/lib/__tests__/div-to-paragraph-conversion.test.js.map +0 -1
  11. package/lib/__tests__/extensions.test.js +0 -209
  12. package/lib/__tests__/extensions.test.js.map +0 -1
  13. package/lib/__tests__/index.test.js +0 -250
  14. package/lib/__tests__/index.test.js.map +0 -1
  15. package/lib/__tests__/size-utils.test.js +0 -57
  16. package/lib/__tests__/size-utils.test.js.map +0 -1
  17. package/lib/__tests__/theme.test.js +0 -17
  18. package/lib/__tests__/theme.test.js.map +0 -1
  19. package/lib/components/__tests__/AltDialog.test.js +0 -201
  20. package/lib/components/__tests__/AltDialog.test.js.map +0 -1
  21. package/lib/components/__tests__/CharacterPicker.test.js +0 -455
  22. package/lib/components/__tests__/CharacterPicker.test.js.map +0 -1
  23. package/lib/components/__tests__/CssIcon.test.js +0 -58
  24. package/lib/components/__tests__/CssIcon.test.js.map +0 -1
  25. package/lib/components/__tests__/DragInTheBlank.test.js +0 -295
  26. package/lib/components/__tests__/DragInTheBlank.test.js.map +0 -1
  27. package/lib/components/__tests__/ExplicitConstructedResponse.test.js +0 -345
  28. package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +0 -1
  29. package/lib/components/__tests__/ImageToolbar.test.js +0 -185
  30. package/lib/components/__tests__/ImageToolbar.test.js.map +0 -1
  31. package/lib/components/__tests__/InlineDropdown.test.js +0 -839
  32. package/lib/components/__tests__/InlineDropdown.test.js.map +0 -1
  33. package/lib/components/__tests__/InsertImageHandler.test.js +0 -171
  34. package/lib/components/__tests__/InsertImageHandler.test.js.map +0 -1
  35. package/lib/components/__tests__/MediaDialog.test.js +0 -433
  36. package/lib/components/__tests__/MediaDialog.test.js.map +0 -1
  37. package/lib/components/__tests__/MediaToolbar.test.js +0 -126
  38. package/lib/components/__tests__/MediaToolbar.test.js.map +0 -1
  39. package/lib/components/__tests__/MediaWrapper.test.js +0 -96
  40. package/lib/components/__tests__/MediaWrapper.test.js.map +0 -1
  41. package/lib/components/__tests__/MenuBar.test.js +0 -502
  42. package/lib/components/__tests__/MenuBar.test.js.map +0 -1
  43. package/lib/components/__tests__/RespArea.test.js +0 -171
  44. package/lib/components/__tests__/RespArea.test.js.map +0 -1
  45. package/lib/components/__tests__/TableIcons.test.js +0 -153
  46. package/lib/components/__tests__/TableIcons.test.js.map +0 -1
  47. package/lib/components/__tests__/TextAlign.test.js +0 -209
  48. package/lib/components/__tests__/TextAlign.test.js.map +0 -1
  49. package/lib/components/__tests__/TiptapContainer.test.js +0 -196
  50. package/lib/components/__tests__/TiptapContainer.test.js.map +0 -1
  51. package/lib/components/__tests__/characterUtils.test.js +0 -178
  52. package/lib/components/__tests__/characterUtils.test.js.map +0 -1
  53. package/lib/components/__tests__/choice.test.js +0 -213
  54. package/lib/components/__tests__/choice.test.js.map +0 -1
  55. package/lib/components/__tests__/custom-popper.test.js +0 -108
  56. package/lib/components/__tests__/custom-popper.test.js.map +0 -1
  57. package/lib/components/__tests__/done-button.test.js +0 -72
  58. package/lib/components/__tests__/done-button.test.js.map +0 -1
  59. package/lib/components/__tests__/toolbar-buttons.test.js +0 -277
  60. package/lib/components/__tests__/toolbar-buttons.test.js.map +0 -1
  61. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +0 -90
  62. package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +0 -1
  63. package/lib/components/respArea/__tests__/MathTemplated.test.js +0 -217
  64. package/lib/components/respArea/__tests__/MathTemplated.test.js.map +0 -1
  65. package/lib/extensions/__tests__/css.test.js +0 -214
  66. package/lib/extensions/__tests__/css.test.js.map +0 -1
  67. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +0 -175
  68. package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +0 -1
  69. package/lib/extensions/__tests__/divNode.test.js +0 -108
  70. package/lib/extensions/__tests__/divNode.test.js.map +0 -1
  71. package/lib/extensions/__tests__/ensure-empty-root-div.test.js +0 -50
  72. package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +0 -1
  73. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +0 -60
  74. package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +0 -1
  75. package/lib/extensions/__tests__/extended-list-item.test.js +0 -13
  76. package/lib/extensions/__tests__/extended-list-item.test.js.map +0 -1
  77. package/lib/extensions/__tests__/extended-table-cell.test.js +0 -15
  78. package/lib/extensions/__tests__/extended-table-cell.test.js.map +0 -1
  79. package/lib/extensions/__tests__/extended-table.test.js +0 -200
  80. package/lib/extensions/__tests__/extended-table.test.js.map +0 -1
  81. package/lib/extensions/__tests__/image-component.test.js +0 -432
  82. package/lib/extensions/__tests__/image-component.test.js.map +0 -1
  83. package/lib/extensions/__tests__/image.test.js +0 -313
  84. package/lib/extensions/__tests__/image.test.js.map +0 -1
  85. package/lib/extensions/__tests__/math.test.js +0 -1411
  86. package/lib/extensions/__tests__/math.test.js.map +0 -1
  87. package/lib/extensions/__tests__/media-node-view.test.js +0 -307
  88. package/lib/extensions/__tests__/media-node-view.test.js.map +0 -1
  89. package/lib/extensions/__tests__/media.test.js +0 -292
  90. package/lib/extensions/__tests__/media.test.js.map +0 -1
  91. package/lib/extensions/__tests__/responseArea.test.js +0 -736
  92. package/lib/extensions/__tests__/responseArea.test.js.map +0 -1
  93. package/lib/utils/__tests__/helper.test.js +0 -107
  94. package/lib/utils/__tests__/helper.test.js.map +0 -1
  95. package/lib/utils/__tests__/toolbar.test.js +0 -38
  96. package/lib/utils/__tests__/toolbar.test.js.map +0 -1
@@ -1,90 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _react = _interopRequireDefault(require("react"));
5
- var _react2 = require("@testing-library/react");
6
- var _choice = _interopRequireDefault(require("../choice"));
7
- // Mock @dnd-kit hooks to avoid DndContext requirement
8
- jest.mock('@dnd-kit/core', function () {
9
- return {
10
- useDraggable: jest.fn(function () {
11
- return {
12
- attributes: {},
13
- listeners: {},
14
- setNodeRef: jest.fn(),
15
- isDragging: false
16
- };
17
- }),
18
- useDroppable: jest.fn(function () {
19
- return {
20
- setNodeRef: jest.fn(),
21
- isOver: false,
22
- active: null
23
- };
24
- })
25
- };
26
- });
27
- jest.mock('@pie-lib/math-rendering', function () {
28
- return {
29
- renderMath: jest.fn()
30
- };
31
- });
32
-
33
- // Collect the CSS rules emotion/MUI injected into the document (jsdom uses insertRule).
34
- var collectEmotionRules = function collectEmotionRules() {
35
- var rules = [];
36
- for (var _i = 0, _Array$from = Array.from(document.styleSheets); _i < _Array$from.length; _i++) {
37
- var sheet = _Array$from[_i];
38
- try {
39
- for (var _i2 = 0, _Array$from2 = Array.from(sheet.cssRules); _i2 < _Array$from2.length; _i2++) {
40
- var rule = _Array$from2[_i2];
41
- rules.push(rule.cssText);
42
- }
43
- } catch (e) {
44
- /* inaccessible stylesheet */
45
- }
46
- }
47
- return rules;
48
- };
49
- describe('DragInTheBlank choice', function () {
50
- var defaultProps = {
51
- value: {
52
- id: '1',
53
- value: '<math>1/2</math>'
54
- },
55
- disabled: false,
56
- instanceId: 'test-instance',
57
- n: {
58
- index: 0
59
- },
60
- onChange: jest.fn(),
61
- removeResponse: jest.fn(),
62
- duplicates: false
63
- };
64
- it('renders without crashing', function () {
65
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_choice["default"], defaultProps)),
66
- container = _render.container;
67
- expect(container.firstChild).toBeInTheDocument();
68
- });
69
- describe('fraction math styling', function () {
70
- it('enlarges numerator/denominator digits adjacent to a fraction to 120%', function () {
71
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_choice["default"], defaultProps));
72
- var rule = collectEmotionRules().find(function (r) {
73
- return r.includes('mjx-mn') && r.includes('mjx-mfrac');
74
- });
75
- expect(rule).toBeDefined();
76
- expect(rule).toMatch(/mjx-mn:has\(~\s*mjx-mfrac\)/);
77
- expect(rule).toMatch(/mjx-mfrac\s*~\s*mjx-mn/);
78
- expect(rule).toMatch(/font-size:\s*120%\s*!important/i);
79
- });
80
- it('keeps the existing mjx-frac 120% rule', function () {
81
- (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_choice["default"], defaultProps));
82
- var rule = collectEmotionRules().find(function (r) {
83
- return /(^|[^-])mjx-frac/.test(r) && !r.includes('mjx-mfrac');
84
- });
85
- expect(rule).toBeDefined();
86
- expect(rule).toMatch(/font-size:\s*120%\s*!important/i);
87
- });
88
- });
89
- });
90
- //# sourceMappingURL=choice.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"choice.test.js","names":["_react","_interopRequireDefault","require","_react2","_choice","jest","mock","useDraggable","fn","attributes","listeners","setNodeRef","isDragging","useDroppable","isOver","active","renderMath","collectEmotionRules","rules","_i","_Array$from","Array","from","document","styleSheets","length","sheet","_i2","_Array$from2","cssRules","rule","push","cssText","e","describe","defaultProps","value","id","disabled","instanceId","n","index","onChange","removeResponse","duplicates","it","_render","render","createElement","container","expect","firstChild","toBeInTheDocument","find","r","includes","toBeDefined","toMatch","test"],"sources":["../../../../../src/components/respArea/DragInTheBlank/__tests__/choice.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@testing-library/react';\nimport DragDropChoice from '../choice';\n\n// Mock @dnd-kit hooks to avoid DndContext requirement\njest.mock('@dnd-kit/core', () => ({\n useDraggable: jest.fn(() => ({\n attributes: {},\n listeners: {},\n setNodeRef: jest.fn(),\n isDragging: false,\n })),\n useDroppable: jest.fn(() => ({\n setNodeRef: jest.fn(),\n isOver: false,\n active: null,\n })),\n}));\n\njest.mock('@pie-lib/math-rendering', () => ({\n renderMath: jest.fn(),\n}));\n\n// Collect the CSS rules emotion/MUI injected into the document (jsdom uses insertRule).\nconst collectEmotionRules = () => {\n const rules = [];\n for (const sheet of Array.from(document.styleSheets)) {\n try {\n for (const rule of Array.from(sheet.cssRules)) {\n rules.push(rule.cssText);\n }\n } catch (e) {\n /* inaccessible stylesheet */\n }\n }\n return rules;\n};\n\ndescribe('DragInTheBlank choice', () => {\n const defaultProps = {\n value: { id: '1', value: '<math>1/2</math>' },\n disabled: false,\n instanceId: 'test-instance',\n n: { index: 0 },\n onChange: jest.fn(),\n removeResponse: jest.fn(),\n duplicates: false,\n };\n\n it('renders without crashing', () => {\n const { container } = render(<DragDropChoice {...defaultProps} />);\n expect(container.firstChild).toBeInTheDocument();\n });\n\n describe('fraction math styling', () => {\n it('enlarges numerator/denominator digits adjacent to a fraction to 120%', () => {\n render(<DragDropChoice {...defaultProps} />);\n const rule = collectEmotionRules().find((r) => r.includes('mjx-mn') && r.includes('mjx-mfrac'));\n expect(rule).toBeDefined();\n expect(rule).toMatch(/mjx-mn:has\\(~\\s*mjx-mfrac\\)/);\n expect(rule).toMatch(/mjx-mfrac\\s*~\\s*mjx-mn/);\n expect(rule).toMatch(/font-size:\\s*120%\\s*!important/i);\n });\n\n it('keeps the existing mjx-frac 120% rule', () => {\n render(<DragDropChoice {...defaultProps} />);\n const rule = collectEmotionRules().find((r) => /(^|[^-])mjx-frac/.test(r) && !r.includes('mjx-mfrac'));\n expect(rule).toBeDefined();\n expect(rule).toMatch(/font-size:\\s*120%\\s*!important/i);\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,217 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
5
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
6
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
7
- var _react = _interopRequireDefault(require("react"));
8
- var _react2 = require("@testing-library/react");
9
- var _MathTemplated = _interopRequireDefault(require("../MathTemplated"));
10
- var _excluded = ["children"];
11
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
12
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
13
- // Mock the dependencies
14
- jest.mock('@tiptap/react', function () {
15
- return {
16
- NodeViewWrapper: function NodeViewWrapper(_ref) {
17
- var children = _ref.children,
18
- props = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
19
- return /*#__PURE__*/_react["default"].createElement("div", (0, _extends2["default"])({
20
- "data-testid": "node-view-wrapper"
21
- }, props), children);
22
- }
23
- };
24
- });
25
- jest.mock('@pie-lib/math-input-mathlive', function () {
26
- return {
27
- mq: {
28
- Static: function Static(_ref2) {
29
- var latex = _ref2.latex;
30
- return /*#__PURE__*/_react["default"].createElement("div", {
31
- "data-testid": "mq-static",
32
- "data-latex": latex
33
- }, latex);
34
- }
35
- }
36
- };
37
- });
38
- describe('MathTemplated', function () {
39
- var defaultProps = {
40
- node: {
41
- attrs: {
42
- value: 'x^2 + y^2 = r^2',
43
- index: 0
44
- }
45
- },
46
- options: {},
47
- selected: false
48
- };
49
- it('renders without crashing', function () {
50
- var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], defaultProps)),
51
- container = _render.container;
52
- expect(container).toBeInTheDocument();
53
- });
54
- it('renders NodeViewWrapper with correct className', function () {
55
- var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], defaultProps)),
56
- getByTestId = _render2.getByTestId;
57
- var wrapper = getByTestId('node-view-wrapper');
58
- expect(wrapper).toHaveClass('math-templated');
59
- });
60
- it('displays correct response key for index 0', function () {
61
- var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], defaultProps)),
62
- getByText = _render3.getByText;
63
- expect(getByText('R 1')).toBeInTheDocument();
64
- });
65
- it('displays correct response key for index 1', function () {
66
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
67
- node: {
68
- attrs: {
69
- value: 'a + b',
70
- index: 1
71
- }
72
- }
73
- });
74
- var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
75
- getByText = _render4.getByText;
76
- expect(getByText('R 2')).toBeInTheDocument();
77
- });
78
- it('displays correct response key for index 5', function () {
79
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
80
- node: {
81
- attrs: {
82
- value: 'c = d',
83
- index: 5
84
- }
85
- }
86
- });
87
- var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
88
- getByText = _render5.getByText;
89
- expect(getByText('R 6')).toBeInTheDocument();
90
- });
91
- it('renders LaTeX value correctly', function () {
92
- var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], defaultProps)),
93
- getByTestId = _render6.getByTestId;
94
- var mqStatic = getByTestId('mq-static');
95
- expect(mqStatic).toHaveAttribute('data-latex', 'x^2 + y^2 = r^2');
96
- });
97
- it('renders different LaTeX value', function () {
98
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
99
- node: {
100
- attrs: {
101
- value: '\\frac{a}{b}',
102
- index: 2
103
- }
104
- }
105
- });
106
- var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
107
- getByTestId = _render7.getByTestId;
108
- var mqStatic = getByTestId('mq-static');
109
- expect(mqStatic).toHaveAttribute('data-latex', '\\frac{a}{b}');
110
- });
111
- it('passes selected prop to NodeViewWrapper', function () {
112
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
113
- selected: true
114
- });
115
- var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
116
- getByTestId = _render8.getByTestId;
117
- var wrapper = getByTestId('node-view-wrapper');
118
- expect(wrapper).toHaveAttribute('data-selected', 'true');
119
- });
120
- it('passes false selected prop to NodeViewWrapper', function () {
121
- var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], defaultProps)),
122
- getByTestId = _render9.getByTestId;
123
- var wrapper = getByTestId('node-view-wrapper');
124
- expect(wrapper).toHaveAttribute('data-selected', 'false');
125
- });
126
- it('applies correct inline styles to NodeViewWrapper', function () {
127
- var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], defaultProps)),
128
- getByTestId = _render0.getByTestId;
129
- var wrapper = getByTestId('node-view-wrapper');
130
- expect(wrapper).toHaveStyle({
131
- display: 'inline-flex',
132
- minHeight: '36px',
133
- minWidth: '50px',
134
- cursor: 'pointer'
135
- });
136
- });
137
- it('handles string index correctly', function () {
138
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
139
- node: {
140
- attrs: {
141
- value: 'test',
142
- index: '3'
143
- }
144
- }
145
- });
146
- var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
147
- getByText = _render1.getByText;
148
- expect(getByText('R 4')).toBeInTheDocument();
149
- });
150
- it('handles empty value', function () {
151
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
152
- node: {
153
- attrs: {
154
- value: '',
155
- index: 0
156
- }
157
- }
158
- });
159
- var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
160
- getByTestId = _render10.getByTestId;
161
- var mqStatic = getByTestId('mq-static');
162
- expect(mqStatic).toHaveAttribute('data-latex', '');
163
- });
164
- it('renders all styled components', function () {
165
- var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], defaultProps)),
166
- container = _render11.container,
167
- getByText = _render11.getByText;
168
-
169
- // Check for response box
170
- expect(getByText('R 1')).toBeInTheDocument();
171
-
172
- // Check for math block with LaTeX
173
- var mqStatic = container.querySelector('[data-testid="mq-static"]');
174
- expect(mqStatic).toBeInTheDocument();
175
- });
176
- it('handles zero index', function () {
177
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
178
- node: {
179
- attrs: {
180
- value: 'x = 0',
181
- index: 0
182
- }
183
- }
184
- });
185
- var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
186
- getByText = _render12.getByText;
187
- expect(getByText('R 1')).toBeInTheDocument();
188
- });
189
- it('handles large index values', function () {
190
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
191
- node: {
192
- attrs: {
193
- value: 'x = 100',
194
- index: 99
195
- }
196
- }
197
- });
198
- var _render13 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
199
- getByText = _render13.getByText;
200
- expect(getByText('R 100')).toBeInTheDocument();
201
- });
202
- it('renders with complex LaTeX expression', function () {
203
- var props = _objectSpread(_objectSpread({}, defaultProps), {}, {
204
- node: {
205
- attrs: {
206
- value: '\\sqrt{x^2 + y^2}',
207
- index: 0
208
- }
209
- }
210
- });
211
- var _render14 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_MathTemplated["default"], props)),
212
- getByTestId = _render14.getByTestId;
213
- var mqStatic = getByTestId('mq-static');
214
- expect(mqStatic).toHaveAttribute('data-latex', '\\sqrt{x^2 + y^2}');
215
- });
216
- });
217
- //# sourceMappingURL=MathTemplated.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MathTemplated.test.js","names":["_react","_interopRequireDefault","require","_react2","_MathTemplated","_excluded","ownKeys","e","r","t","Object","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","getOwnPropertyDescriptors","defineProperties","defineProperty","jest","mock","NodeViewWrapper","_ref","children","props","_objectWithoutProperties2","createElement","_extends2","mq","Static","_ref2","latex","describe","defaultProps","node","attrs","value","index","options","selected","it","_render","render","container","expect","toBeInTheDocument","_render2","getByTestId","wrapper","toHaveClass","_render3","getByText","_render4","_render5","_render6","mqStatic","toHaveAttribute","_render7","_render8","_render9","_render0","toHaveStyle","display","minHeight","minWidth","cursor","_render1","_render10","_render11","querySelector","_render12","_render13","_render14"],"sources":["../../../../src/components/respArea/__tests__/MathTemplated.test.jsx"],"sourcesContent":["import React from 'react';\nimport { render } from '@testing-library/react';\nimport MathTemplated from '../MathTemplated';\n\n// Mock the dependencies\njest.mock('@tiptap/react', () => ({\n NodeViewWrapper: ({ children, ...props }) => (\n <div data-testid=\"node-view-wrapper\" {...props}>\n {children}\n </div>\n ),\n}));\n\njest.mock('@pie-lib/math-input-mathlive', () => ({\n mq: {\n Static: ({ latex }) => (\n <div data-testid=\"mq-static\" data-latex={latex}>\n {latex}\n </div>\n ),\n },\n}));\n\ndescribe('MathTemplated', () => {\n const defaultProps = {\n node: {\n attrs: {\n value: 'x^2 + y^2 = r^2',\n index: 0,\n },\n },\n options: {},\n selected: false,\n };\n\n it('renders without crashing', () => {\n const { container } = render(<MathTemplated {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders NodeViewWrapper with correct className', () => {\n const { getByTestId } = render(<MathTemplated {...defaultProps} />);\n const wrapper = getByTestId('node-view-wrapper');\n expect(wrapper).toHaveClass('math-templated');\n });\n\n it('displays correct response key for index 0', () => {\n const { getByText } = render(<MathTemplated {...defaultProps} />);\n expect(getByText('R 1')).toBeInTheDocument();\n });\n\n it('displays correct response key for index 1', () => {\n const props = {\n ...defaultProps,\n node: {\n attrs: {\n value: 'a + b',\n index: 1,\n },\n },\n };\n const { getByText } = render(<MathTemplated {...props} />);\n expect(getByText('R 2')).toBeInTheDocument();\n });\n\n it('displays correct response key for index 5', () => {\n const props = {\n ...defaultProps,\n node: {\n attrs: {\n value: 'c = d',\n index: 5,\n },\n },\n };\n const { getByText } = render(<MathTemplated {...props} />);\n expect(getByText('R 6')).toBeInTheDocument();\n });\n\n it('renders LaTeX value correctly', () => {\n const { getByTestId } = render(<MathTemplated {...defaultProps} />);\n const mqStatic = getByTestId('mq-static');\n expect(mqStatic).toHaveAttribute('data-latex', 'x^2 + y^2 = r^2');\n });\n\n it('renders different LaTeX value', () => {\n const props = {\n ...defaultProps,\n node: {\n attrs: {\n value: '\\\\frac{a}{b}',\n index: 2,\n },\n },\n };\n const { getByTestId } = render(<MathTemplated {...props} />);\n const mqStatic = getByTestId('mq-static');\n expect(mqStatic).toHaveAttribute('data-latex', '\\\\frac{a}{b}');\n });\n\n it('passes selected prop to NodeViewWrapper', () => {\n const props = {\n ...defaultProps,\n selected: true,\n };\n const { getByTestId } = render(<MathTemplated {...props} />);\n const wrapper = getByTestId('node-view-wrapper');\n expect(wrapper).toHaveAttribute('data-selected', 'true');\n });\n\n it('passes false selected prop to NodeViewWrapper', () => {\n const { getByTestId } = render(<MathTemplated {...defaultProps} />);\n const wrapper = getByTestId('node-view-wrapper');\n expect(wrapper).toHaveAttribute('data-selected', 'false');\n });\n\n it('applies correct inline styles to NodeViewWrapper', () => {\n const { getByTestId } = render(<MathTemplated {...defaultProps} />);\n const wrapper = getByTestId('node-view-wrapper');\n expect(wrapper).toHaveStyle({\n display: 'inline-flex',\n minHeight: '36px',\n minWidth: '50px',\n cursor: 'pointer',\n });\n });\n\n it('handles string index correctly', () => {\n const props = {\n ...defaultProps,\n node: {\n attrs: {\n value: 'test',\n index: '3',\n },\n },\n };\n const { getByText } = render(<MathTemplated {...props} />);\n expect(getByText('R 4')).toBeInTheDocument();\n });\n\n it('handles empty value', () => {\n const props = {\n ...defaultProps,\n node: {\n attrs: {\n value: '',\n index: 0,\n },\n },\n };\n const { getByTestId } = render(<MathTemplated {...props} />);\n const mqStatic = getByTestId('mq-static');\n expect(mqStatic).toHaveAttribute('data-latex', '');\n });\n\n it('renders all styled components', () => {\n const { container, getByText } = render(<MathTemplated {...defaultProps} />);\n\n // Check for response box\n expect(getByText('R 1')).toBeInTheDocument();\n\n // Check for math block with LaTeX\n const mqStatic = container.querySelector('[data-testid=\"mq-static\"]');\n expect(mqStatic).toBeInTheDocument();\n });\n\n it('handles zero index', () => {\n const props = {\n ...defaultProps,\n node: {\n attrs: {\n value: 'x = 0',\n index: 0,\n },\n },\n };\n const { getByText } = render(<MathTemplated {...props} />);\n expect(getByText('R 1')).toBeInTheDocument();\n });\n\n it('handles large index values', () => {\n const props = {\n ...defaultProps,\n node: {\n attrs: {\n value: 'x = 100',\n index: 99,\n },\n },\n };\n const { getByText } = render(<MathTemplated {...props} />);\n expect(getByText('R 100')).toBeInTheDocument();\n });\n\n it('renders with complex LaTeX expression', () => {\n const props = {\n ...defaultProps,\n node: {\n attrs: {\n value: '\\\\sqrt{x^2 + y^2}',\n index: 0,\n },\n },\n };\n const { getByTestId } = render(<MathTemplated {...props} />);\n const mqStatic = getByTestId('mq-static');\n expect(mqStatic).toHaveAttribute('data-latex', '\\\\sqrt{x^2 + y^2}');\n });\n});\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAA6C,IAAAG,SAAA;AAAA,SAAAC,QAAAC,CAAA,EAAAC,CAAA,QAAAC,CAAA,GAAAC,MAAA,CAAAC,IAAA,CAAAJ,CAAA,OAAAG,MAAA,CAAAE,qBAAA,QAAAC,CAAA,GAAAH,MAAA,CAAAE,qBAAA,CAAAL,CAAA,GAAAC,CAAA,KAAAK,CAAA,GAAAA,CAAA,CAAAC,MAAA,WAAAN,CAAA,WAAAE,MAAA,CAAAK,wBAAA,CAAAR,CAAA,EAAAC,CAAA,EAAAQ,UAAA,OAAAP,CAAA,CAAAQ,IAAA,CAAAC,KAAA,CAAAT,CAAA,EAAAI,CAAA,YAAAJ,CAAA;AAAA,SAAAU,cAAAZ,CAAA,aAAAC,CAAA,MAAAA,CAAA,GAAAY,SAAA,CAAAC,MAAA,EAAAb,CAAA,UAAAC,CAAA,WAAAW,SAAA,CAAAZ,CAAA,IAAAY,SAAA,CAAAZ,CAAA,QAAAA,CAAA,OAAAF,OAAA,CAAAI,MAAA,CAAAD,CAAA,OAAAa,OAAA,WAAAd,CAAA,QAAAe,gBAAA,aAAAhB,CAAA,EAAAC,CAAA,EAAAC,CAAA,CAAAD,CAAA,SAAAE,MAAA,CAAAc,yBAAA,GAAAd,MAAA,CAAAe,gBAAA,CAAAlB,CAAA,EAAAG,MAAA,CAAAc,yBAAA,CAAAf,CAAA,KAAAH,OAAA,CAAAI,MAAA,CAAAD,CAAA,GAAAa,OAAA,WAAAd,CAAA,IAAAE,MAAA,CAAAgB,cAAA,CAAAnB,CAAA,EAAAC,CAAA,EAAAE,MAAA,CAAAK,wBAAA,CAAAN,CAAA,EAAAD,CAAA,iBAAAD,CAAA;AAE7C;AACAoB,IAAI,CAACC,IAAI,CAAC,eAAe,EAAE;EAAA,OAAO;IAChCC,eAAe,EAAE,SAAjBA,eAAeA,CAAAC,IAAA;MAAA,IAAKC,QAAQ,GAAAD,IAAA,CAARC,QAAQ;QAAKC,KAAK,OAAAC,yBAAA,aAAAH,IAAA,EAAAzB,SAAA;MAAA,oBACpCL,MAAA,YAAAkC,aAAA,YAAAC,SAAA;QAAK,eAAY;MAAmB,GAAKH,KAAK,GAC3CD,QACE,CAAC;IAAA;EAEV,CAAC;AAAA,CAAC,CAAC;AAEHJ,IAAI,CAACC,IAAI,CAAC,8BAA8B,EAAE;EAAA,OAAO;IAC/CQ,EAAE,EAAE;MACFC,MAAM,EAAE,SAARA,MAAMA,CAAAC,KAAA;QAAA,IAAKC,KAAK,GAAAD,KAAA,CAALC,KAAK;QAAA,oBACdvC,MAAA,YAAAkC,aAAA;UAAK,eAAY,WAAW;UAAC,cAAYK;QAAM,GAC5CA,KACE,CAAC;MAAA;IAEV;EACF,CAAC;AAAA,CAAC,CAAC;AAEHC,QAAQ,CAAC,eAAe,EAAE,YAAM;EAC9B,IAAMC,YAAY,GAAG;IACnBC,IAAI,EAAE;MACJC,KAAK,EAAE;QACLC,KAAK,EAAE,iBAAiB;QACxBC,KAAK,EAAE;MACT;IACF,CAAC;IACDC,OAAO,EAAE,CAAC,CAAC;IACXC,QAAQ,EAAE;EACZ,CAAC;EAEDC,EAAE,CAAC,0BAA0B,EAAE,YAAM;IACnC,IAAAC,OAAA,GAAsB,IAAAC,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAKqC,YAAe,CAAC,CAAC;MAAzDU,SAAS,GAAAF,OAAA,CAATE,SAAS;IACjBC,MAAM,CAACD,SAAS,CAAC,CAACE,iBAAiB,CAAC,CAAC;EACvC,CAAC,CAAC;EAEFL,EAAE,CAAC,gDAAgD,EAAE,YAAM;IACzD,IAAAM,QAAA,GAAwB,IAAAJ,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAKqC,YAAe,CAAC,CAAC;MAA3Dc,WAAW,GAAAD,QAAA,CAAXC,WAAW;IACnB,IAAMC,OAAO,GAAGD,WAAW,CAAC,mBAAmB,CAAC;IAChDH,MAAM,CAACI,OAAO,CAAC,CAACC,WAAW,CAAC,gBAAgB,CAAC;EAC/C,CAAC,CAAC;EAEFT,EAAE,CAAC,2CAA2C,EAAE,YAAM;IACpD,IAAAU,QAAA,GAAsB,IAAAR,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAKqC,YAAe,CAAC,CAAC;MAAzDkB,SAAS,GAAAD,QAAA,CAATC,SAAS;IACjBP,MAAM,CAACO,SAAS,CAAC,KAAK,CAAC,CAAC,CAACN,iBAAiB,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEFL,EAAE,CAAC,2CAA2C,EAAE,YAAM;IACpD,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE,OAAO;UACdC,KAAK,EAAE;QACT;MACF;IAAC,EACF;IACD,IAAAe,QAAA,GAAsB,IAAAV,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAAlD2B,SAAS,GAAAC,QAAA,CAATD,SAAS;IACjBP,MAAM,CAACO,SAAS,CAAC,KAAK,CAAC,CAAC,CAACN,iBAAiB,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEFL,EAAE,CAAC,2CAA2C,EAAE,YAAM;IACpD,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE,OAAO;UACdC,KAAK,EAAE;QACT;MACF;IAAC,EACF;IACD,IAAAgB,QAAA,GAAsB,IAAAX,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAAlD2B,SAAS,GAAAE,QAAA,CAATF,SAAS;IACjBP,MAAM,CAACO,SAAS,CAAC,KAAK,CAAC,CAAC,CAACN,iBAAiB,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEFL,EAAE,CAAC,+BAA+B,EAAE,YAAM;IACxC,IAAAc,QAAA,GAAwB,IAAAZ,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAKqC,YAAe,CAAC,CAAC;MAA3Dc,WAAW,GAAAO,QAAA,CAAXP,WAAW;IACnB,IAAMQ,QAAQ,GAAGR,WAAW,CAAC,WAAW,CAAC;IACzCH,MAAM,CAACW,QAAQ,CAAC,CAACC,eAAe,CAAC,YAAY,EAAE,iBAAiB,CAAC;EACnE,CAAC,CAAC;EAEFhB,EAAE,CAAC,+BAA+B,EAAE,YAAM;IACxC,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE,cAAc;UACrBC,KAAK,EAAE;QACT;MACF;IAAC,EACF;IACD,IAAAoB,QAAA,GAAwB,IAAAf,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAApDuB,WAAW,GAAAU,QAAA,CAAXV,WAAW;IACnB,IAAMQ,QAAQ,GAAGR,WAAW,CAAC,WAAW,CAAC;IACzCH,MAAM,CAACW,QAAQ,CAAC,CAACC,eAAe,CAAC,YAAY,EAAE,cAAc,CAAC;EAChE,CAAC,CAAC;EAEFhB,EAAE,CAAC,yCAAyC,EAAE,YAAM;IAClD,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfM,QAAQ,EAAE;IAAI,EACf;IACD,IAAAmB,QAAA,GAAwB,IAAAhB,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAApDuB,WAAW,GAAAW,QAAA,CAAXX,WAAW;IACnB,IAAMC,OAAO,GAAGD,WAAW,CAAC,mBAAmB,CAAC;IAChDH,MAAM,CAACI,OAAO,CAAC,CAACQ,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC;EAC1D,CAAC,CAAC;EAEFhB,EAAE,CAAC,+CAA+C,EAAE,YAAM;IACxD,IAAAmB,QAAA,GAAwB,IAAAjB,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAKqC,YAAe,CAAC,CAAC;MAA3Dc,WAAW,GAAAY,QAAA,CAAXZ,WAAW;IACnB,IAAMC,OAAO,GAAGD,WAAW,CAAC,mBAAmB,CAAC;IAChDH,MAAM,CAACI,OAAO,CAAC,CAACQ,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC;EAC3D,CAAC,CAAC;EAEFhB,EAAE,CAAC,kDAAkD,EAAE,YAAM;IAC3D,IAAAoB,QAAA,GAAwB,IAAAlB,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAKqC,YAAe,CAAC,CAAC;MAA3Dc,WAAW,GAAAa,QAAA,CAAXb,WAAW;IACnB,IAAMC,OAAO,GAAGD,WAAW,CAAC,mBAAmB,CAAC;IAChDH,MAAM,CAACI,OAAO,CAAC,CAACa,WAAW,CAAC;MAC1BC,OAAO,EAAE,aAAa;MACtBC,SAAS,EAAE,MAAM;MACjBC,QAAQ,EAAE,MAAM;MAChBC,MAAM,EAAE;IACV,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFzB,EAAE,CAAC,gCAAgC,EAAE,YAAM;IACzC,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE,MAAM;UACbC,KAAK,EAAE;QACT;MACF;IAAC,EACF;IACD,IAAA6B,QAAA,GAAsB,IAAAxB,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAAlD2B,SAAS,GAAAe,QAAA,CAATf,SAAS;IACjBP,MAAM,CAACO,SAAS,CAAC,KAAK,CAAC,CAAC,CAACN,iBAAiB,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEFL,EAAE,CAAC,qBAAqB,EAAE,YAAM;IAC9B,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE,EAAE;UACTC,KAAK,EAAE;QACT;MACF;IAAC,EACF;IACD,IAAA8B,SAAA,GAAwB,IAAAzB,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAApDuB,WAAW,GAAAoB,SAAA,CAAXpB,WAAW;IACnB,IAAMQ,QAAQ,GAAGR,WAAW,CAAC,WAAW,CAAC;IACzCH,MAAM,CAACW,QAAQ,CAAC,CAACC,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC;EACpD,CAAC,CAAC;EAEFhB,EAAE,CAAC,+BAA+B,EAAE,YAAM;IACxC,IAAA4B,SAAA,GAAiC,IAAA1B,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAKqC,YAAe,CAAC,CAAC;MAApEU,SAAS,GAAAyB,SAAA,CAATzB,SAAS;MAAEQ,SAAS,GAAAiB,SAAA,CAATjB,SAAS;;IAE5B;IACAP,MAAM,CAACO,SAAS,CAAC,KAAK,CAAC,CAAC,CAACN,iBAAiB,CAAC,CAAC;;IAE5C;IACA,IAAMU,QAAQ,GAAGZ,SAAS,CAAC0B,aAAa,CAAC,2BAA2B,CAAC;IACrEzB,MAAM,CAACW,QAAQ,CAAC,CAACV,iBAAiB,CAAC,CAAC;EACtC,CAAC,CAAC;EAEFL,EAAE,CAAC,oBAAoB,EAAE,YAAM;IAC7B,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE,OAAO;UACdC,KAAK,EAAE;QACT;MACF;IAAC,EACF;IACD,IAAAiC,SAAA,GAAsB,IAAA5B,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAAlD2B,SAAS,GAAAmB,SAAA,CAATnB,SAAS;IACjBP,MAAM,CAACO,SAAS,CAAC,KAAK,CAAC,CAAC,CAACN,iBAAiB,CAAC,CAAC;EAC9C,CAAC,CAAC;EAEFL,EAAE,CAAC,4BAA4B,EAAE,YAAM;IACrC,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE,SAAS;UAChBC,KAAK,EAAE;QACT;MACF;IAAC,EACF;IACD,IAAAkC,SAAA,GAAsB,IAAA7B,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAAlD2B,SAAS,GAAAoB,SAAA,CAATpB,SAAS;IACjBP,MAAM,CAACO,SAAS,CAAC,OAAO,CAAC,CAAC,CAACN,iBAAiB,CAAC,CAAC;EAChD,CAAC,CAAC;EAEFL,EAAE,CAAC,uCAAuC,EAAE,YAAM;IAChD,IAAMhB,KAAK,GAAAb,aAAA,CAAAA,aAAA,KACNsB,YAAY;MACfC,IAAI,EAAE;QACJC,KAAK,EAAE;UACLC,KAAK,EAAE,mBAAmB;UAC1BC,KAAK,EAAE;QACT;MACF;IAAC,EACF;IACD,IAAAmC,SAAA,GAAwB,IAAA9B,cAAM,eAAClD,MAAA,YAAAkC,aAAA,CAAC9B,cAAA,WAAa,EAAK4B,KAAQ,CAAC,CAAC;MAApDuB,WAAW,GAAAyB,SAAA,CAAXzB,WAAW;IACnB,IAAMQ,QAAQ,GAAGR,WAAW,CAAC,WAAW,CAAC;IACzCH,MAAM,CAACW,QAAQ,CAAC,CAACC,eAAe,CAAC,YAAY,EAAE,mBAAmB,CAAC;EACrE,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
@@ -1,214 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
5
- var _css = require("../css");
6
- jest.mock('@tiptap/core', function () {
7
- return {
8
- Mark: {
9
- create: jest.fn(function (config) {
10
- return config;
11
- })
12
- },
13
- mergeAttributes: jest.fn(function () {
14
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
15
- args[_key] = arguments[_key];
16
- }
17
- return Object.assign.apply(Object, [{}].concat(args));
18
- })
19
- };
20
- });
21
- jest.mock('react-dom', function () {
22
- return {
23
- render: jest.fn()
24
- };
25
- });
26
- describe('CSSMark', function () {
27
- describe('configuration', function () {
28
- it('has correct name', function () {
29
- expect(_css.CSSMark.name).toBe('cssmark');
30
- });
31
- });
32
- describe('addOptions', function () {
33
- it('returns default options with empty classes array', function () {
34
- var options = _css.CSSMark.addOptions();
35
- expect(options).toHaveProperty('classes');
36
- expect(Array.isArray(options.classes)).toBe(true);
37
- expect(options.classes).toHaveLength(0);
38
- });
39
- });
40
- describe('addAttributes', function () {
41
- it('returns class attribute configuration', function () {
42
- var attributes = _css.CSSMark.addAttributes();
43
- expect(attributes).toHaveProperty('class');
44
- expect(attributes["class"]).toHaveProperty('default', null);
45
- expect(attributes["class"]).toHaveProperty('parseHTML');
46
- expect(attributes["class"]).toHaveProperty('renderHTML');
47
- expect((0, _typeof2["default"])(attributes["class"].parseHTML)).toBe('function');
48
- expect((0, _typeof2["default"])(attributes["class"].renderHTML)).toBe('function');
49
- });
50
- it('parseHTML extracts class attribute', function () {
51
- var attributes = _css.CSSMark.addAttributes();
52
- var mockEl = {
53
- getAttribute: jest.fn(function (attr) {
54
- return attr === 'class' ? 'my-class' : null;
55
- })
56
- };
57
- var result = attributes["class"].parseHTML(mockEl);
58
- expect(result).toBe('my-class');
59
- expect(mockEl.getAttribute).toHaveBeenCalledWith('class');
60
- });
61
- it('renderHTML returns empty object when no class', function () {
62
- var attributes = _css.CSSMark.addAttributes();
63
- var result = attributes["class"].renderHTML({
64
- "class": null
65
- });
66
- expect(result).toEqual({});
67
- });
68
- it('renderHTML returns class when present', function () {
69
- var attributes = _css.CSSMark.addAttributes();
70
- var result = attributes["class"].renderHTML({
71
- "class": 'my-class'
72
- });
73
- expect(result).toEqual({
74
- "class": 'my-class'
75
- });
76
- });
77
- });
78
- describe('parseHTML', function () {
79
- beforeEach(function () {
80
- _css.CSSMark.options = {
81
- classes: ['allowed-class', 'another-class']
82
- };
83
- });
84
- it('returns array with span[class] selector', function () {
85
- var rules = _css.CSSMark.parseHTML();
86
- expect(Array.isArray(rules)).toBe(true);
87
- expect(rules).toHaveLength(1);
88
- expect(rules[0]).toHaveProperty('tag', 'span[class]');
89
- expect(rules[0]).toHaveProperty('getAttrs');
90
- });
91
- it('matches allowed classes', function () {
92
- var rules = _css.CSSMark.parseHTML();
93
- var mockEl = {
94
- getAttribute: jest.fn(function () {
95
- return 'allowed-class some-other';
96
- })
97
- };
98
- var result = rules[0].getAttrs(mockEl);
99
- expect(result).toEqual({
100
- "class": 'allowed-class'
101
- });
102
- });
103
- it('returns false for non-allowed classes', function () {
104
- var rules = _css.CSSMark.parseHTML();
105
- var mockEl = {
106
- getAttribute: jest.fn(function () {
107
- return 'not-allowed';
108
- })
109
- };
110
- var result = rules[0].getAttrs(mockEl);
111
- expect(result).toBe(false);
112
- });
113
- it('handles empty class attribute', function () {
114
- var rules = _css.CSSMark.parseHTML();
115
- var mockEl = {
116
- getAttribute: jest.fn(function () {
117
- return '';
118
- })
119
- };
120
- var result = rules[0].getAttrs(mockEl);
121
- expect(result).toBe(false);
122
- });
123
- });
124
- describe('renderHTML', function () {
125
- it('returns span with merged attributes', function () {
126
- var result = _css.CSSMark.renderHTML({
127
- HTMLAttributes: {
128
- "class": 'my-class'
129
- }
130
- });
131
- expect(result[0]).toBe('span');
132
- expect(result[1]).toEqual({
133
- "class": 'my-class'
134
- });
135
- expect(result[2]).toBe(0);
136
- });
137
- });
138
- describe('addCommands', function () {
139
- it('returns setCSSClass command', function () {
140
- var commands = _css.CSSMark.addCommands();
141
- expect(commands).toHaveProperty('setCSSClass');
142
- expect((0, _typeof2["default"])(commands.setCSSClass)).toBe('function');
143
- });
144
- it('returns unsetCSSClass command', function () {
145
- var commands = _css.CSSMark.addCommands();
146
- expect(commands).toHaveProperty('unsetCSSClass');
147
- expect((0, _typeof2["default"])(commands.unsetCSSClass)).toBe('function');
148
- });
149
- it('returns openCSSClassDialog command', function () {
150
- var commands = _css.CSSMark.addCommands();
151
- expect(commands).toHaveProperty('openCSSClassDialog');
152
- expect((0, _typeof2["default"])(commands.openCSSClassDialog)).toBe('function');
153
- });
154
- it('setCSSClass sets mark with class name', function () {
155
- var context = {
156
- name: 'cssmark'
157
- };
158
- var commands = _css.CSSMark.addCommands.call(context);
159
- var mockCommands = {
160
- setMark: jest.fn(function () {
161
- return true;
162
- })
163
- };
164
- var result = commands.setCSSClass('my-class')({
165
- commands: mockCommands
166
- });
167
- expect(mockCommands.setMark).toHaveBeenCalledWith('cssmark', {
168
- "class": 'my-class'
169
- });
170
- expect(result).toBe(true);
171
- });
172
- it('unsetCSSClass unsets mark', function () {
173
- var context = {
174
- name: 'cssmark'
175
- };
176
- var commands = _css.CSSMark.addCommands.call(context);
177
- var mockCommands = {
178
- unsetMark: jest.fn(function () {
179
- return true;
180
- })
181
- };
182
- var result = commands.unsetCSSClass()({
183
- commands: mockCommands
184
- });
185
- expect(mockCommands.unsetMark).toHaveBeenCalledWith('cssmark');
186
- expect(result).toBe(true);
187
- });
188
- });
189
- });
190
- describe('removeDialogs', function () {
191
- it('removes all elements with insert-css-dialog class', function () {
192
- var mockElements = [{
193
- remove: jest.fn()
194
- }, {
195
- remove: jest.fn()
196
- }];
197
- document.querySelectorAll = jest.fn(function () {
198
- return mockElements;
199
- });
200
- (0, _css.removeDialogs)();
201
- expect(document.querySelectorAll).toHaveBeenCalledWith('.insert-css-dialog');
202
- expect(mockElements[0].remove).toHaveBeenCalled();
203
- expect(mockElements[1].remove).toHaveBeenCalled();
204
- });
205
- it('handles no dialogs gracefully', function () {
206
- document.querySelectorAll = jest.fn(function () {
207
- return [];
208
- });
209
- expect(function () {
210
- return (0, _css.removeDialogs)();
211
- }).not.toThrow();
212
- });
213
- });
214
- //# sourceMappingURL=css.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"css.test.js","names":["_css","require","jest","mock","Mark","create","fn","config","mergeAttributes","_len","arguments","length","args","Array","_key","Object","assign","apply","concat","render","describe","it","expect","CSSMark","name","toBe","options","addOptions","toHaveProperty","isArray","classes","toHaveLength","attributes","addAttributes","_typeof2","parseHTML","renderHTML","mockEl","getAttribute","attr","result","toHaveBeenCalledWith","toEqual","beforeEach","rules","getAttrs","HTMLAttributes","commands","addCommands","setCSSClass","unsetCSSClass","openCSSClassDialog","context","call","mockCommands","setMark","unsetMark","mockElements","remove","document","querySelectorAll","removeDialogs","toHaveBeenCalled","not","toThrow"],"sources":["../../../src/extensions/__tests__/css.test.js"],"sourcesContent":["import { CSSMark, removeDialogs } from '../css';\n\njest.mock('@tiptap/core', () => ({\n Mark: { create: jest.fn((config) => config) },\n mergeAttributes: jest.fn((...args) => Object.assign({}, ...args)),\n}));\n\njest.mock('react-dom', () => ({\n render: jest.fn(),\n}));\n\ndescribe('CSSMark', () => {\n describe('configuration', () => {\n it('has correct name', () => {\n expect(CSSMark.name).toBe('cssmark');\n });\n });\n\n describe('addOptions', () => {\n it('returns default options with empty classes array', () => {\n const options = CSSMark.addOptions();\n\n expect(options).toHaveProperty('classes');\n expect(Array.isArray(options.classes)).toBe(true);\n expect(options.classes).toHaveLength(0);\n });\n });\n\n describe('addAttributes', () => {\n it('returns class attribute configuration', () => {\n const attributes = CSSMark.addAttributes();\n\n expect(attributes).toHaveProperty('class');\n expect(attributes.class).toHaveProperty('default', null);\n expect(attributes.class).toHaveProperty('parseHTML');\n expect(attributes.class).toHaveProperty('renderHTML');\n expect(typeof attributes.class.parseHTML).toBe('function');\n expect(typeof attributes.class.renderHTML).toBe('function');\n });\n\n it('parseHTML extracts class attribute', () => {\n const attributes = CSSMark.addAttributes();\n const mockEl = {\n getAttribute: jest.fn((attr) => (attr === 'class' ? 'my-class' : null)),\n };\n\n const result = attributes.class.parseHTML(mockEl);\n\n expect(result).toBe('my-class');\n expect(mockEl.getAttribute).toHaveBeenCalledWith('class');\n });\n\n it('renderHTML returns empty object when no class', () => {\n const attributes = CSSMark.addAttributes();\n const result = attributes.class.renderHTML({ class: null });\n\n expect(result).toEqual({});\n });\n\n it('renderHTML returns class when present', () => {\n const attributes = CSSMark.addAttributes();\n const result = attributes.class.renderHTML({ class: 'my-class' });\n\n expect(result).toEqual({ class: 'my-class' });\n });\n });\n\n describe('parseHTML', () => {\n beforeEach(() => {\n CSSMark.options = { classes: ['allowed-class', 'another-class'] };\n });\n\n it('returns array with span[class] selector', () => {\n const rules = CSSMark.parseHTML();\n\n expect(Array.isArray(rules)).toBe(true);\n expect(rules).toHaveLength(1);\n expect(rules[0]).toHaveProperty('tag', 'span[class]');\n expect(rules[0]).toHaveProperty('getAttrs');\n });\n\n it('matches allowed classes', () => {\n const rules = CSSMark.parseHTML();\n const mockEl = {\n getAttribute: jest.fn(() => 'allowed-class some-other'),\n };\n\n const result = rules[0].getAttrs(mockEl);\n\n expect(result).toEqual({ class: 'allowed-class' });\n });\n\n it('returns false for non-allowed classes', () => {\n const rules = CSSMark.parseHTML();\n const mockEl = {\n getAttribute: jest.fn(() => 'not-allowed'),\n };\n\n const result = rules[0].getAttrs(mockEl);\n\n expect(result).toBe(false);\n });\n\n it('handles empty class attribute', () => {\n const rules = CSSMark.parseHTML();\n const mockEl = {\n getAttribute: jest.fn(() => ''),\n };\n\n const result = rules[0].getAttrs(mockEl);\n\n expect(result).toBe(false);\n });\n });\n\n describe('renderHTML', () => {\n it('returns span with merged attributes', () => {\n const result = CSSMark.renderHTML({\n HTMLAttributes: { class: 'my-class' },\n });\n\n expect(result[0]).toBe('span');\n expect(result[1]).toEqual({ class: 'my-class' });\n expect(result[2]).toBe(0);\n });\n });\n\n describe('addCommands', () => {\n it('returns setCSSClass command', () => {\n const commands = CSSMark.addCommands();\n\n expect(commands).toHaveProperty('setCSSClass');\n expect(typeof commands.setCSSClass).toBe('function');\n });\n\n it('returns unsetCSSClass command', () => {\n const commands = CSSMark.addCommands();\n\n expect(commands).toHaveProperty('unsetCSSClass');\n expect(typeof commands.unsetCSSClass).toBe('function');\n });\n\n it('returns openCSSClassDialog command', () => {\n const commands = CSSMark.addCommands();\n\n expect(commands).toHaveProperty('openCSSClassDialog');\n expect(typeof commands.openCSSClassDialog).toBe('function');\n });\n\n it('setCSSClass sets mark with class name', () => {\n const context = { name: 'cssmark' };\n const commands = CSSMark.addCommands.call(context);\n const mockCommands = {\n setMark: jest.fn(() => true),\n };\n\n const result = commands.setCSSClass('my-class')({ commands: mockCommands });\n\n expect(mockCommands.setMark).toHaveBeenCalledWith('cssmark', { class: 'my-class' });\n expect(result).toBe(true);\n });\n\n it('unsetCSSClass unsets mark', () => {\n const context = { name: 'cssmark' };\n const commands = CSSMark.addCommands.call(context);\n const mockCommands = {\n unsetMark: jest.fn(() => true),\n };\n\n const result = commands.unsetCSSClass()({ commands: mockCommands });\n\n expect(mockCommands.unsetMark).toHaveBeenCalledWith('cssmark');\n expect(result).toBe(true);\n });\n });\n});\n\ndescribe('removeDialogs', () => {\n it('removes all elements with insert-css-dialog class', () => {\n const mockElements = [{ remove: jest.fn() }, { remove: jest.fn() }];\n\n document.querySelectorAll = jest.fn(() => mockElements);\n\n removeDialogs();\n\n expect(document.querySelectorAll).toHaveBeenCalledWith('.insert-css-dialog');\n expect(mockElements[0].remove).toHaveBeenCalled();\n expect(mockElements[1].remove).toHaveBeenCalled();\n });\n\n it('handles no dialogs gracefully', () => {\n document.querySelectorAll = jest.fn(() => []);\n\n expect(() => removeDialogs()).not.toThrow();\n });\n});\n"],"mappings":"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","ignoreList":[]}