@pie-lib/editable-html-tip-tap 2.1.10 → 2.2.0-beta
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +0 -75
- package/lib/__tests__/EditableHtml.test.js +831 -0
- package/lib/__tests__/EditableHtml.test.js.map +1 -0
- package/lib/__tests__/constants.test.js +21 -0
- package/lib/__tests__/constants.test.js.map +1 -0
- package/lib/__tests__/div-to-paragraph-conversion.test.js +213 -0
- package/lib/__tests__/div-to-paragraph-conversion.test.js.map +1 -0
- package/lib/__tests__/extensions.test.js +209 -0
- package/lib/__tests__/extensions.test.js.map +1 -0
- package/lib/__tests__/index.test.js +250 -0
- package/lib/__tests__/index.test.js.map +1 -0
- package/lib/__tests__/size-utils.test.js +57 -0
- package/lib/__tests__/size-utils.test.js.map +1 -0
- package/lib/__tests__/theme.test.js +17 -0
- package/lib/__tests__/theme.test.js.map +1 -0
- package/lib/components/EditableHtml.js +4 -2
- package/lib/components/EditableHtml.js.map +1 -1
- package/lib/components/__tests__/AltDialog.test.js +201 -0
- package/lib/components/__tests__/AltDialog.test.js.map +1 -0
- package/lib/components/__tests__/CharacterPicker.test.js +455 -0
- package/lib/components/__tests__/CharacterPicker.test.js.map +1 -0
- package/lib/components/__tests__/CssIcon.test.js +58 -0
- package/lib/components/__tests__/CssIcon.test.js.map +1 -0
- package/lib/components/__tests__/DragInTheBlank.test.js +295 -0
- package/lib/components/__tests__/DragInTheBlank.test.js.map +1 -0
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js +345 -0
- package/lib/components/__tests__/ExplicitConstructedResponse.test.js.map +1 -0
- package/lib/components/__tests__/ImageToolbar.test.js +185 -0
- package/lib/components/__tests__/ImageToolbar.test.js.map +1 -0
- package/lib/components/__tests__/InlineDropdown.test.js +839 -0
- package/lib/components/__tests__/InlineDropdown.test.js.map +1 -0
- package/lib/components/__tests__/InsertImageHandler.test.js +171 -0
- package/lib/components/__tests__/InsertImageHandler.test.js.map +1 -0
- package/lib/components/__tests__/MediaDialog.test.js +433 -0
- package/lib/components/__tests__/MediaDialog.test.js.map +1 -0
- package/lib/components/__tests__/MediaToolbar.test.js +126 -0
- package/lib/components/__tests__/MediaToolbar.test.js.map +1 -0
- package/lib/components/__tests__/MediaWrapper.test.js +96 -0
- package/lib/components/__tests__/MediaWrapper.test.js.map +1 -0
- package/lib/components/__tests__/MenuBar.test.js +502 -0
- package/lib/components/__tests__/MenuBar.test.js.map +1 -0
- package/lib/components/__tests__/RespArea.test.js +171 -0
- package/lib/components/__tests__/RespArea.test.js.map +1 -0
- package/lib/components/__tests__/TableIcons.test.js +153 -0
- package/lib/components/__tests__/TableIcons.test.js.map +1 -0
- package/lib/components/__tests__/TextAlign.test.js +209 -0
- package/lib/components/__tests__/TextAlign.test.js.map +1 -0
- package/lib/components/__tests__/TiptapContainer.test.js +196 -0
- package/lib/components/__tests__/TiptapContainer.test.js.map +1 -0
- package/lib/components/__tests__/characterUtils.test.js +178 -0
- package/lib/components/__tests__/characterUtils.test.js.map +1 -0
- package/lib/components/__tests__/choice.test.js +213 -0
- package/lib/components/__tests__/choice.test.js.map +1 -0
- package/lib/components/__tests__/custom-popper.test.js +108 -0
- package/lib/components/__tests__/custom-popper.test.js.map +1 -0
- package/lib/components/__tests__/done-button.test.js +72 -0
- package/lib/components/__tests__/done-button.test.js.map +1 -0
- package/lib/components/__tests__/toolbar-buttons.test.js +277 -0
- package/lib/components/__tests__/toolbar-buttons.test.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js +90 -0
- package/lib/components/respArea/DragInTheBlank/__tests__/choice.test.js.map +1 -0
- package/lib/components/respArea/DragInTheBlank/choice.js +3 -0
- package/lib/components/respArea/DragInTheBlank/choice.js.map +1 -1
- package/lib/components/respArea/MathTemplated.js +2 -2
- package/lib/components/respArea/MathTemplated.js.map +1 -1
- package/lib/components/respArea/__tests__/MathTemplated.test.js +217 -0
- package/lib/components/respArea/__tests__/MathTemplated.test.js.map +1 -0
- package/lib/extensions/__tests__/css.test.js +214 -0
- package/lib/extensions/__tests__/css.test.js.map +1 -0
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js +175 -0
- package/lib/extensions/__tests__/custom-toolbar-wrapper.test.js.map +1 -0
- package/lib/extensions/__tests__/divNode.test.js +108 -0
- package/lib/extensions/__tests__/divNode.test.js.map +1 -0
- package/lib/extensions/__tests__/ensure-empty-root-div.test.js +50 -0
- package/lib/extensions/__tests__/ensure-empty-root-div.test.js.map +1 -0
- package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js +60 -0
- package/lib/extensions/__tests__/ensure-list-item-content-is-div.test.js.map +1 -0
- package/lib/extensions/__tests__/extended-list-item.test.js +13 -0
- package/lib/extensions/__tests__/extended-list-item.test.js.map +1 -0
- package/lib/extensions/__tests__/extended-table-cell.test.js +15 -0
- package/lib/extensions/__tests__/extended-table-cell.test.js.map +1 -0
- package/lib/extensions/__tests__/extended-table.test.js +200 -0
- package/lib/extensions/__tests__/extended-table.test.js.map +1 -0
- package/lib/extensions/__tests__/image-component.test.js +432 -0
- package/lib/extensions/__tests__/image-component.test.js.map +1 -0
- package/lib/extensions/__tests__/image.test.js +313 -0
- package/lib/extensions/__tests__/image.test.js.map +1 -0
- package/lib/extensions/__tests__/math.test.js +1399 -0
- package/lib/extensions/__tests__/math.test.js.map +1 -0
- package/lib/extensions/__tests__/media-node-view.test.js +307 -0
- package/lib/extensions/__tests__/media-node-view.test.js.map +1 -0
- package/lib/extensions/__tests__/media.test.js +292 -0
- package/lib/extensions/__tests__/media.test.js.map +1 -0
- package/lib/extensions/__tests__/responseArea.test.js +736 -0
- package/lib/extensions/__tests__/responseArea.test.js.map +1 -0
- package/lib/extensions/image-component.js +9 -6
- package/lib/extensions/image-component.js.map +1 -1
- package/lib/extensions/responseArea.js +7 -1
- package/lib/extensions/responseArea.js.map +1 -1
- package/lib/utils/__tests__/helper.test.js +107 -0
- package/lib/utils/__tests__/helper.test.js.map +1 -0
- package/lib/utils/__tests__/toolbar.test.js +38 -0
- package/lib/utils/__tests__/toolbar.test.js.map +1 -0
- package/package.json +7 -7
- package/src/components/EditableHtml.jsx +5 -3
- package/src/components/respArea/DragInTheBlank/__tests__/choice.test.jsx +72 -0
- package/src/components/respArea/DragInTheBlank/choice.jsx +3 -0
- package/src/components/respArea/MathTemplated.jsx +1 -1
- package/src/components/respArea/__tests__/MathTemplated.test.jsx +1 -1
- package/src/extensions/__tests__/image-component.test.jsx +1 -0
- package/src/extensions/__tests__/responseArea.test.js +57 -3
- package/src/extensions/image-component.jsx +8 -6
- package/src/extensions/responseArea.js +7 -1
- package/LICENSE.md +0 -5
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
var _react2 = require("@testing-library/react");
|
|
7
|
+
var _AltDialog = require("../image/AltDialog");
|
|
8
|
+
jest.mock('@mui/material/Dialog', function () {
|
|
9
|
+
return {
|
|
10
|
+
__esModule: true,
|
|
11
|
+
"default": function _default(_ref) {
|
|
12
|
+
var children = _ref.children,
|
|
13
|
+
open = _ref.open,
|
|
14
|
+
id = _ref.id;
|
|
15
|
+
return open && /*#__PURE__*/_react["default"].createElement("div", {
|
|
16
|
+
id: id
|
|
17
|
+
}, children);
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
});
|
|
21
|
+
jest.mock('@mui/material/DialogContent', function () {
|
|
22
|
+
return {
|
|
23
|
+
__esModule: true,
|
|
24
|
+
"default": function _default(_ref2) {
|
|
25
|
+
var children = _ref2.children;
|
|
26
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, children);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
jest.mock('@mui/material/DialogActions', function () {
|
|
31
|
+
return {
|
|
32
|
+
__esModule: true,
|
|
33
|
+
"default": function _default(_ref3) {
|
|
34
|
+
var children = _ref3.children;
|
|
35
|
+
return /*#__PURE__*/_react["default"].createElement("div", null, children);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
});
|
|
39
|
+
jest.mock('@mui/material/Button', function () {
|
|
40
|
+
return {
|
|
41
|
+
__esModule: true,
|
|
42
|
+
"default": function _default(_ref4) {
|
|
43
|
+
var children = _ref4.children,
|
|
44
|
+
onClick = _ref4.onClick;
|
|
45
|
+
return /*#__PURE__*/_react["default"].createElement("button", {
|
|
46
|
+
onClick: onClick
|
|
47
|
+
}, children);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
jest.mock('@mui/material/TextField', function () {
|
|
52
|
+
return {
|
|
53
|
+
__esModule: true,
|
|
54
|
+
"default": function _default(_ref5) {
|
|
55
|
+
var value = _ref5.value,
|
|
56
|
+
onChange = _ref5.onChange,
|
|
57
|
+
placeholder = _ref5.placeholder,
|
|
58
|
+
helperText = _ref5.helperText,
|
|
59
|
+
FormHelperTextProps = _ref5.FormHelperTextProps,
|
|
60
|
+
multiline = _ref5.multiline;
|
|
61
|
+
return /*#__PURE__*/_react["default"].createElement("div", {
|
|
62
|
+
className: "MuiTextField-root"
|
|
63
|
+
}, /*#__PURE__*/_react["default"].createElement("textarea", {
|
|
64
|
+
value: value || '',
|
|
65
|
+
onChange: onChange,
|
|
66
|
+
placeholder: placeholder,
|
|
67
|
+
"data-multiline": multiline
|
|
68
|
+
}), helperText && /*#__PURE__*/_react["default"].createElement("div", {
|
|
69
|
+
style: FormHelperTextProps === null || FormHelperTextProps === void 0 ? void 0 : FormHelperTextProps.style
|
|
70
|
+
}, helperText));
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
});
|
|
74
|
+
jest.mock('@mui/icons-material/ArrowBackIos', function () {
|
|
75
|
+
return {
|
|
76
|
+
__esModule: true,
|
|
77
|
+
"default": function _default() {
|
|
78
|
+
return /*#__PURE__*/_react["default"].createElement("svg", {
|
|
79
|
+
"data-testid": "arrow-back-icon"
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
});
|
|
84
|
+
describe('AltDialog', function () {
|
|
85
|
+
var defaultProps = {
|
|
86
|
+
onDone: jest.fn(),
|
|
87
|
+
alt: 'Initial alt text'
|
|
88
|
+
};
|
|
89
|
+
beforeEach(function () {
|
|
90
|
+
jest.clearAllMocks();
|
|
91
|
+
document.body.innerHTML = '';
|
|
92
|
+
});
|
|
93
|
+
it('renders without crashing', function () {
|
|
94
|
+
var _render = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
95
|
+
container = _render.container;
|
|
96
|
+
expect(container).toBeInTheDocument();
|
|
97
|
+
});
|
|
98
|
+
it('renders with initial alt text', function () {
|
|
99
|
+
var _render2 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
100
|
+
container = _render2.container;
|
|
101
|
+
var textarea = container.querySelector('textarea');
|
|
102
|
+
expect(textarea.value).toBe('Initial alt text');
|
|
103
|
+
});
|
|
104
|
+
it('renders placeholder text', function () {
|
|
105
|
+
var _render3 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, (0, _extends2["default"])({}, defaultProps, {
|
|
106
|
+
alt: ""
|
|
107
|
+
}))),
|
|
108
|
+
getByPlaceholderText = _render3.getByPlaceholderText;
|
|
109
|
+
expect(getByPlaceholderText('Enter an Alt Text description of this image')).toBeInTheDocument();
|
|
110
|
+
});
|
|
111
|
+
it('renders helper text', function () {
|
|
112
|
+
var _render4 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
113
|
+
getByText = _render4.getByText;
|
|
114
|
+
expect(getByText('Users with visual limitations rely on Alt Text, since screen readers cannot otherwise describe the contents of an image.')).toBeInTheDocument();
|
|
115
|
+
});
|
|
116
|
+
it('renders Done button', function () {
|
|
117
|
+
var _render5 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
118
|
+
getByText = _render5.getByText;
|
|
119
|
+
expect(getByText('Done')).toBeInTheDocument();
|
|
120
|
+
});
|
|
121
|
+
it('renders ArrowBackIos icon', function () {
|
|
122
|
+
var _render6 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
123
|
+
getByTestId = _render6.getByTestId;
|
|
124
|
+
expect(getByTestId('arrow-back-icon')).toBeInTheDocument();
|
|
125
|
+
});
|
|
126
|
+
it('updates value on text field change', function () {
|
|
127
|
+
var _render7 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
128
|
+
container = _render7.container;
|
|
129
|
+
var textarea = container.querySelector('textarea');
|
|
130
|
+
_react2.fireEvent.change(textarea, {
|
|
131
|
+
target: {
|
|
132
|
+
value: 'New alt text'
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
expect(textarea.value).toBe('New alt text');
|
|
136
|
+
});
|
|
137
|
+
it('calls onDone with value when Done button is clicked', function () {
|
|
138
|
+
var onDone = jest.fn();
|
|
139
|
+
// Mock document.querySelectorAll to avoid DOM manipulation issues
|
|
140
|
+
var mockQuerySelectorAll = jest.spyOn(document, 'querySelectorAll').mockReturnValue([]);
|
|
141
|
+
var _render8 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, (0, _extends2["default"])({}, defaultProps, {
|
|
142
|
+
onDone: onDone
|
|
143
|
+
}))),
|
|
144
|
+
getByText = _render8.getByText,
|
|
145
|
+
container = _render8.container;
|
|
146
|
+
var textarea = container.querySelector('textarea');
|
|
147
|
+
_react2.fireEvent.change(textarea, {
|
|
148
|
+
target: {
|
|
149
|
+
value: 'Updated alt text'
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
_react2.fireEvent.click(getByText('Done'));
|
|
153
|
+
expect(onDone).toHaveBeenCalledWith('Updated alt text');
|
|
154
|
+
mockQuerySelectorAll.mockRestore();
|
|
155
|
+
});
|
|
156
|
+
it('closes dialog when Done button is clicked', function () {
|
|
157
|
+
// Mock document.querySelectorAll to avoid DOM manipulation issues
|
|
158
|
+
var mockQuerySelectorAll = jest.spyOn(document, 'querySelectorAll').mockReturnValue([]);
|
|
159
|
+
var _render9 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
160
|
+
getByText = _render9.getByText,
|
|
161
|
+
container = _render9.container;
|
|
162
|
+
var dialog = container.querySelector('#text-dialog');
|
|
163
|
+
expect(dialog).toBeInTheDocument();
|
|
164
|
+
_react2.fireEvent.click(getByText('Done'));
|
|
165
|
+
mockQuerySelectorAll.mockRestore();
|
|
166
|
+
});
|
|
167
|
+
it('dialog is open', function () {
|
|
168
|
+
var _render0 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
169
|
+
container = _render0.container;
|
|
170
|
+
var dialog = container.querySelector('[id="text-dialog"]');
|
|
171
|
+
expect(dialog).toBeInTheDocument();
|
|
172
|
+
});
|
|
173
|
+
it('has correct dialog props', function () {
|
|
174
|
+
var _render1 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
175
|
+
container = _render1.container;
|
|
176
|
+
var dialog = container.querySelector('[id="text-dialog"]');
|
|
177
|
+
expect(dialog).toBeInTheDocument();
|
|
178
|
+
});
|
|
179
|
+
it('text field is multiline', function () {
|
|
180
|
+
var _render10 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, defaultProps)),
|
|
181
|
+
container = _render10.container;
|
|
182
|
+
var textarea = container.querySelector('textarea');
|
|
183
|
+
expect(textarea.getAttribute('data-multiline')).toBe('true');
|
|
184
|
+
});
|
|
185
|
+
it('renders without alt text', function () {
|
|
186
|
+
var _render11 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, (0, _extends2["default"])({}, defaultProps, {
|
|
187
|
+
alt: undefined
|
|
188
|
+
}))),
|
|
189
|
+
getByPlaceholderText = _render11.getByPlaceholderText;
|
|
190
|
+
expect(getByPlaceholderText('Enter an Alt Text description of this image')).toBeInTheDocument();
|
|
191
|
+
});
|
|
192
|
+
it('handles empty alt text', function () {
|
|
193
|
+
var _render12 = (0, _react2.render)(/*#__PURE__*/_react["default"].createElement(_AltDialog.AltDialog, (0, _extends2["default"])({}, defaultProps, {
|
|
194
|
+
alt: ""
|
|
195
|
+
}))),
|
|
196
|
+
container = _render12.container;
|
|
197
|
+
var textarea = container.querySelector('textarea');
|
|
198
|
+
expect(textarea.value).toBe('');
|
|
199
|
+
});
|
|
200
|
+
});
|
|
201
|
+
//# sourceMappingURL=AltDialog.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AltDialog.test.js","names":["_react","_interopRequireDefault","require","_react2","_AltDialog","jest","mock","__esModule","default","_ref","children","open","id","createElement","_ref2","_ref3","_ref4","onClick","_ref5","value","onChange","placeholder","helperText","FormHelperTextProps","multiline","className","style","describe","defaultProps","onDone","fn","alt","beforeEach","clearAllMocks","document","body","innerHTML","it","_render","render","AltDialog","container","expect","toBeInTheDocument","_render2","textarea","querySelector","toBe","_render3","_extends2","getByPlaceholderText","_render4","getByText","_render5","_render6","getByTestId","_render7","fireEvent","change","target","mockQuerySelectorAll","spyOn","mockReturnValue","_render8","click","toHaveBeenCalledWith","mockRestore","_render9","dialog","_render0","_render1","_render10","getAttribute","_render11","undefined","_render12"],"sources":["../../../src/components/__tests__/AltDialog.test.jsx"],"sourcesContent":["import React from 'react';\nimport { fireEvent, render } from '@testing-library/react';\nimport { AltDialog } from '../image/AltDialog';\n\njest.mock('@mui/material/Dialog', () => ({\n __esModule: true,\n default: ({ children, open, id }) => open && <div id={id}>{children}</div>,\n}));\n\njest.mock('@mui/material/DialogContent', () => ({\n __esModule: true,\n default: ({ children }) => <div>{children}</div>,\n}));\n\njest.mock('@mui/material/DialogActions', () => ({\n __esModule: true,\n default: ({ children }) => <div>{children}</div>,\n}));\n\njest.mock('@mui/material/Button', () => ({\n __esModule: true,\n default: ({ children, onClick }) => <button onClick={onClick}>{children}</button>,\n}));\n\njest.mock('@mui/material/TextField', () => ({\n __esModule: true,\n default: ({ value, onChange, placeholder, helperText, FormHelperTextProps, multiline }) => (\n <div className=\"MuiTextField-root\">\n <textarea value={value || ''} onChange={onChange} placeholder={placeholder} data-multiline={multiline} />\n {helperText && <div style={FormHelperTextProps?.style}>{helperText}</div>}\n </div>\n ),\n}));\n\njest.mock('@mui/icons-material/ArrowBackIos', () => ({\n __esModule: true,\n default: () => <svg data-testid=\"arrow-back-icon\" />,\n}));\n\ndescribe('AltDialog', () => {\n const defaultProps = {\n onDone: jest.fn(),\n alt: 'Initial alt text',\n };\n\n beforeEach(() => {\n jest.clearAllMocks();\n document.body.innerHTML = '';\n });\n\n it('renders without crashing', () => {\n const { container } = render(<AltDialog {...defaultProps} />);\n expect(container).toBeInTheDocument();\n });\n\n it('renders with initial alt text', () => {\n const { container } = render(<AltDialog {...defaultProps} />);\n const textarea = container.querySelector('textarea');\n expect(textarea.value).toBe('Initial alt text');\n });\n\n it('renders placeholder text', () => {\n const { getByPlaceholderText } = render(<AltDialog {...defaultProps} alt=\"\" />);\n expect(getByPlaceholderText('Enter an Alt Text description of this image')).toBeInTheDocument();\n });\n\n it('renders helper text', () => {\n const { getByText } = render(<AltDialog {...defaultProps} />);\n expect(\n getByText(\n 'Users with visual limitations rely on Alt Text, since screen readers cannot otherwise describe the contents of an image.',\n ),\n ).toBeInTheDocument();\n });\n\n it('renders Done button', () => {\n const { getByText } = render(<AltDialog {...defaultProps} />);\n expect(getByText('Done')).toBeInTheDocument();\n });\n\n it('renders ArrowBackIos icon', () => {\n const { getByTestId } = render(<AltDialog {...defaultProps} />);\n expect(getByTestId('arrow-back-icon')).toBeInTheDocument();\n });\n\n it('updates value on text field change', () => {\n const { container } = render(<AltDialog {...defaultProps} />);\n const textarea = container.querySelector('textarea');\n fireEvent.change(textarea, { target: { value: 'New alt text' } });\n expect(textarea.value).toBe('New alt text');\n });\n\n it('calls onDone with value when Done button is clicked', () => {\n const onDone = jest.fn();\n // Mock document.querySelectorAll to avoid DOM manipulation issues\n const mockQuerySelectorAll = jest.spyOn(document, 'querySelectorAll').mockReturnValue([]);\n\n const { getByText, container } = render(<AltDialog {...defaultProps} onDone={onDone} />);\n const textarea = container.querySelector('textarea');\n fireEvent.change(textarea, { target: { value: 'Updated alt text' } });\n fireEvent.click(getByText('Done'));\n expect(onDone).toHaveBeenCalledWith('Updated alt text');\n\n mockQuerySelectorAll.mockRestore();\n });\n\n it('closes dialog when Done button is clicked', () => {\n // Mock document.querySelectorAll to avoid DOM manipulation issues\n const mockQuerySelectorAll = jest.spyOn(document, 'querySelectorAll').mockReturnValue([]);\n\n const { getByText, container } = render(<AltDialog {...defaultProps} />);\n const dialog = container.querySelector('#text-dialog');\n expect(dialog).toBeInTheDocument();\n fireEvent.click(getByText('Done'));\n\n mockQuerySelectorAll.mockRestore();\n });\n\n it('dialog is open', () => {\n const { container } = render(<AltDialog {...defaultProps} />);\n const dialog = container.querySelector('[id=\"text-dialog\"]');\n expect(dialog).toBeInTheDocument();\n });\n\n it('has correct dialog props', () => {\n const { container } = render(<AltDialog {...defaultProps} />);\n const dialog = container.querySelector('[id=\"text-dialog\"]');\n expect(dialog).toBeInTheDocument();\n });\n\n it('text field is multiline', () => {\n const { container } = render(<AltDialog {...defaultProps} />);\n const textarea = container.querySelector('textarea');\n expect(textarea.getAttribute('data-multiline')).toBe('true');\n });\n\n it('renders without alt text', () => {\n const { getByPlaceholderText } = render(<AltDialog {...defaultProps} alt={undefined} />);\n expect(getByPlaceholderText('Enter an Alt Text description of this image')).toBeInTheDocument();\n });\n\n it('handles empty alt text', () => {\n const { container } = render(<AltDialog {...defaultProps} alt=\"\" />);\n const textarea = container.querySelector('textarea');\n expect(textarea.value).toBe('');\n });\n});\n"],"mappings":"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","ignoreList":[]}
|