Skip to content

Commit 6859b95

Browse files
committed
latest changes for tests
1 parent cbfe28a commit 6859b95

5 files changed

Lines changed: 71 additions & 125 deletions

File tree

__tests__/html2/activity/feedback.form.activity.html

Lines changed: 27 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,38 @@
5858
await pageConditions.numActivitiesShown(1);
5959

6060
pageElements.byTestId('send box text area').focus();
61-
await host.sendShiftTab(2);
61+
await host.sendShiftTab(3);
6262

6363
await host.sendKeys('ENTER');
6464
await host.sendKeys('ENTER');
6565

66-
// const { activity } = await directLine.actPostActivity(() => Promise.resolve({}));
66+
await pageConditions.became(
67+
'feedback form is open',
68+
() => document.activeElement === pageElements.byTestId('feedback sendbox'),
69+
1000
70+
);
71+
72+
await host.sendKeys('Test feedback');
73+
const { activity } = await directLine.actPostActivity(async () => {
74+
await host.sendTab(1);
75+
await host.sendKeys('ENTER');
76+
});
6777

68-
// expect(activity).toEqual(
69-
// expect.objectContaining({
70-
// name: 'webchat:activity-status/feedback',
71-
// type: 'event',
72-
// channelData: expect.objectContaining({
73-
// feedbackLoop: { type: 'default' }
74-
// })
75-
// })
76-
// );
78+
expect(activity).toEqual(
79+
expect.objectContaining({
80+
type: 'invoke',
81+
name: 'message/submitAction',
82+
value: {
83+
actionName: 'feedback',
84+
actionValue: {
85+
reaction: 'like',
86+
feedback: {
87+
feedbackText: expect.any(String)
88+
}
89+
}
90+
}
91+
})
92+
);
7793
});
7894
</script>
7995
</body>

__tests__/html2/fluentTheme/defaultFeedback.activity.html

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -46,32 +46,38 @@
4646
entities: [],
4747
channelData: {
4848
feedbackLoop: {
49-
type: 'default'
49+
type: 'default',
50+
disclaimer: 'This is a test disclaimer message'
5051
}
5152
}
5253
});
5354

5455
await pageConditions.numActivitiesShown(1);
5556

56-
pageElements.byTestId('send box text area').focus();
57-
await host.sendShiftTab(2);
57+
// pageElements.byTestId('send box text area').focus();
58+
// await host.sendKeys('ENTER');
59+
// await host.sendKeys('Test feedback');
5860

59-
await host.sendKeys('ENTER');
60-
await host.sendKeys('ENTER');
61+
// const { activity } = await directLine.actPostActivity(async () => {
62+
// await host.sendTab(1);
63+
// await host.sendKeys('ENTER');
64+
// });
6165

62-
const { activity } = await directLine.actPostActivity(() => Promise.resolve({}));
63-
64-
expect(activity).toEqual(
65-
expect.objectContaining({
66-
name: 'webchat:activity-status/feedback',
67-
type: 'event',
68-
channelData: expect.objectContaining({
69-
feedbackLoop: { type: 'default' }
70-
})
71-
})
72-
);
73-
74-
await pageConditions.numActivitiesShown(2);
66+
// expect(activity).toEqual(
67+
// expect.objectContaining({
68+
// type: 'invoke',
69+
// name: 'message/submitAction',
70+
// value: {
71+
// actionName: 'feedback',
72+
// actionValue: {
73+
// reaction: 'like',
74+
// feedback: {
75+
// feedbackText: expect.any(String)
76+
// }
77+
// }
78+
// }
79+
// })
80+
// );
7581
});
7682
</script>
7783
</body>

__tests__/html2/fluentTheme/feedbackForm.html

Lines changed: 0 additions & 87 deletions
This file was deleted.

packages/component/src/Activity/ActivityFeedback.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ function ActivityFeedback({ activity }: ActivityFeedbackProps) {
8282
[activity, includeDefaultFeedback]
8383
);
8484

85-
const onFeedbackActionClick = useCallback((feedbackType?: string) => {
85+
const onFeedbackTypeChange = useCallback((feedbackType?: string) => {
8686
if (!feedbackType) {
8787
setFeedbackType(undefined);
8888
setShowFeedbackForm(false);
@@ -98,7 +98,7 @@ function ActivityFeedback({ activity }: ActivityFeedbackProps) {
9898
className={classNames({
9999
'webchat__thumb-button--large': feedbackActionsPlacement === 'activity-actions'
100100
})}
101-
handleFeedbackActionClick={onFeedbackActionClick}
101+
handleFeedbackActionClick={onFeedbackTypeChange}
102102
isFeedbackFormSupported={includeDefaultFeedback}
103103
/>
104104
);
@@ -107,7 +107,7 @@ function ActivityFeedback({ activity }: ActivityFeedbackProps) {
107107
<FeedbackForm
108108
disclaimer={disclaimer}
109109
feedbackType={feedbackType as FeedbackType}
110-
handleCancelClick={onFeedbackActionClick}
110+
handeFeedbackTypeChange={onFeedbackTypeChange}
111111
/>
112112
);
113113

packages/component/src/Activity/private/FeedbackForm.tsx

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { memo, useState, useCallback } from 'react';
1+
import React, { memo, useEffect, useState, useCallback, useRef } from 'react';
22
import { hooks } from 'botframework-webchat-api';
33
import useStyleSet from '../../hooks/useStyleSet';
44
import classNames from 'classnames';
@@ -20,16 +20,18 @@ const MultiLineTextBox = withEmoji(AutoResizeTextArea);
2020
function FeedbackForm({
2121
feedbackType,
2222
disclaimer,
23-
handleCancelClick
23+
handeFeedbackTypeChange
2424
}: Readonly<{
2525
feedbackType: FeedbackType;
2626
disclaimer?: string;
27-
handleCancelClick: () => void;
27+
handeFeedbackTypeChange: () => void;
2828
}>) {
2929
const [{ feedbackForm }] = useStyleSet();
3030
const localize = useLocalizer();
3131
const [feedback, setFeedback] = useState('');
32+
const [hasFocused, setHasFocused] = useState(false);
3233
const postActivity = usePostActivity();
34+
const feedbackTextAreaRef = useRef<HTMLTextAreaElement>(null);
3335

3436
const handleSubmit = useCallback(
3537
event => {
@@ -49,15 +51,23 @@ function FeedbackForm({
4951
}
5052
} as any);
5153
setFeedback('');
54+
handeFeedbackTypeChange();
5255
}
5356
},
54-
[feedback, postActivity, feedbackType]
57+
[feedback, postActivity, feedbackType, handeFeedbackTypeChange]
5558
);
5659

60+
useEffect(() => {
61+
if (feedbackTextAreaRef.current && !hasFocused) {
62+
setHasFocused(true);
63+
feedbackTextAreaRef.current.focus();
64+
}
65+
}, [feedbackTextAreaRef, hasFocused]);
66+
5767
const handleCancel = useCallback(() => {
5868
setFeedback('');
59-
handleCancelClick();
60-
}, [handleCancelClick]);
69+
handeFeedbackTypeChange();
70+
}, [handeFeedbackTypeChange]);
6171

6272
const handleChange = useCallback(
6373
(value: string) => {
@@ -79,6 +89,7 @@ function FeedbackForm({
7989
data-testid={testIds.feedbackSendBox}
8090
onChange={handleChange}
8191
placeholder={localize('FEEDBACK_FORM_PLACEHOLDER')}
92+
ref={feedbackTextAreaRef}
8293
value={feedback}
8394
/>
8495
</div>

0 commit comments

Comments
 (0)