Skip to content

Commit 55bb72d

Browse files
marker-daomarker dao ®
andauthored
HtmlEditor: Get rid of initial text value in the result TextArea
Co-authored-by: marker dao ® <youdontknow@marker-dao.eth>
1 parent ce90b01 commit 55bb72d

4 files changed

Lines changed: 22 additions & 25 deletions

File tree

packages/devextreme/js/__internal/ui/html_editor/ui/aiDialog.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ export default class AIDialog extends BaseDialog<AIDialogResult> {
7272

7373
private _commandOptionsList?: string[];
7474

75+
private _selectedText = '';
76+
7577
private _resultText = '';
7678

7779
private _askAIPrompt = '';
@@ -444,7 +446,7 @@ export default class AIDialog extends BaseDialog<AIDialogResult> {
444446
}: AIDialogShowPayload): Promise<AIDialogResult> | undefined {
445447
this._commandsMap = commandsMap;
446448
this._currentCommand = currentCommand;
447-
this._resultText = text ?? '';
449+
this._selectedText = text ?? '';
448450
this._commandOptionsList = commandsMap[currentCommand]?.options ?? [];
449451
this._currentOption = currentCommandOption;
450452
this._getCustomCommandPrompt = prompt;

packages/devextreme/testing/helpers/aiDialog.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ export const setResultText = (value) => {
8787
textAreaInstance.option('value', value);
8888
};
8989

90-
export const getResultText = () => {
90+
export const getResultTextAreaValue = () => {
9191
const textAreaInstance = $(`.${TEXT_AREA_CLASS}`).eq(1).dxTextArea('instance');
9292
return textAreaInstance.option('value');
9393
};

packages/devextreme/testing/tests/DevExpress.ui.widgets.htmlEditor/htmlEditorParts/aiDialog.tests.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ const SELECT_BOX_CLASS = 'dx-selectbox';
2424
const moduleConfig = {
2525
beforeEach: function() {
2626
this.$element = $('#htmlEditor');
27-
2827
this.aiDialog = new AIDialog(this.$element, {}, { container: this.$element });
29-
3028
this.aiDialogPopup = this.aiDialog._popup;
3129

3230
this.setDialogState = (state) => {
@@ -60,8 +58,8 @@ QUnit.module('AIDialog', moduleConfig, () => {
6058
assert.strictEqual(optionSelectBox.option('value'), 'english', 'correct option selected');
6159
assert.deepEqual(optionSelectBox.option('items'), ['english', 'german'], 'option SelectBox contains correct items');
6260
assert.strictEqual($textAreas.length, 2, 'TextAreas are rendered');
63-
assert.strictEqual(resultTextAreaInstance.option('value'), 'Test text', 'result TextArea contains correct text');
64-
assert.strictEqual(promptTextAreaInstance.option('value'), undefined, 'prompt TextArea contains correct text');
61+
assert.strictEqual(resultTextAreaInstance.option('value'), '', 'result TextArea contains empty text');
62+
assert.strictEqual(promptTextAreaInstance.option('value'), undefined, 'prompt TextArea contains empty text');
6563
assert.strictEqual(promptTextAreaInstance.option('visible'), false, 'prompt TextArea is hidden by default');
6664
});
6765

@@ -122,7 +120,7 @@ QUnit.module('AIDialog', moduleConfig, () => {
122120
const hideSpy = sinon.spy(this.aiDialog, 'hide');
123121

124122
showAIDialog(this).done(({ resultText, event }) => {
125-
assert.strictEqual(resultText, 'Test text', 'resolved text is correct');
123+
assert.strictEqual(resultText, '', 'resolved text is empty');
126124
assert.strictEqual(event.itemData.id, mode, `operation is correct: ${mode}`);
127125
assert.strictEqual(hideSpy.calledOnce, true, 'hide called');
128126
done();
@@ -139,9 +137,14 @@ QUnit.module('AIDialog', moduleConfig, () => {
139137
}
140138

141139
const clipboardStub = sinon.stub(navigator.clipboard, 'writeText');
140+
const resultTextAreaInstance = this.$element
141+
.find(`.${TEXT_AREA_CLASS}`).eq(1)
142+
.dxTextArea('instance');
142143

143144
showAIDialog(this);
144145

146+
resultTextAreaInstance.option({ value: 'Test text' });
147+
145148
const $copyButton = findButtonByText(this.$element, 'Copy');
146149
$copyButton.trigger('dxclick');
147150

packages/devextreme/testing/tests/DevExpress.ui.widgets.htmlEditor/htmlEditorParts/aiDialogIntegration.tests.js

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { openAIDialog } from '../../../helpers/aiToolbarMenu.js';
66
import {
77
clickActionButton,
88
setResultText,
9-
getResultText,
9+
getResultTextAreaValue,
1010
} from '../../../helpers/aiDialog.js';
1111
import { AI_DIALOG_CLASS } from '__internal/ui/html_editor/ui/aiDialog';
1212

@@ -144,31 +144,23 @@ QUnit.module('AI dialog integration', {}, () => {
144144
});
145145
});
146146

147-
QUnit.module('input source based on selection', () => {
148-
QUnit.test('Should use selected text as input', function(assert) {
149-
const instance = setupHtmlEditorWithAi();
150-
151-
instance.setSelection(0, 4);
152-
153-
openAIDialog($('#htmlEditor'));
154-
clickActionButton('replace');
147+
QUnit.module('TextArea', () => {
148+
QUnit.test('should not have any text inside it if nothing is selected', function(assert) {
149+
setupHtmlEditorWithAi();
155150

156-
const resultText = getResultText();
151+
const resultText = getResultTextAreaValue();
157152

158-
assert.strictEqual(resultText, 'Test', 'selected text used in resultTextArea');
153+
assert.strictEqual(resultText, undefined, 'textarea does not contain text');
159154
});
160155

161-
QUnit.test('Should use all text as input if nothing is selected', function(assert) {
156+
QUnit.test('should not have any text inside it if part of the text is selected', function(assert) {
162157
const instance = setupHtmlEditorWithAi();
163158

164-
instance.setSelection(0, 0);
165-
166-
openAIDialog($('#htmlEditor'));
167-
clickActionButton('replace');
159+
instance.setSelection(0, 4);
168160

169-
const resultText = getResultText();
161+
const resultText = getResultTextAreaValue();
170162

171-
assert.strictEqual(resultText, 'Test value\n', 'all text used in resultTextArea');
163+
assert.strictEqual(resultText, undefined, 'textarea does not contain text');
172164
});
173165
});
174166

0 commit comments

Comments
 (0)