-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy pathautoScroll.withPostBack.activity.html
More file actions
175 lines (160 loc) · 7.4 KB
/
autoScroll.withPostBack.activity.html
File metadata and controls
175 lines (160 loc) · 7.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<!DOCTYPE html>
<html lang="en-US">
<head>
<link href="/assets/index.css" rel="stylesheet" type="text/css" />
<script crossorigin="anonymous" src="/test-harness.js"></script>
<script crossorigin="anonymous" src="/test-page-object.js"></script>
<script crossorigin="anonymous" src="/__dist__/webchat-es5.js"></script>
</head>
<body>
<main id="webchat"></main>
<script>
function createActivity(text) {
return {
from: { role: 'bot' },
id: Math.random().toString(36).substr(2, 5),
text,
timestamp: new Date().toISOString(),
type: 'message'
};
}
run(async function () {
const directLine = await testHelpers.createDirectLineWithTranscript(
[
createActivity(
'Lorem culpa excepteur quis commodo qui mollit. Laboris laboris excepteur esse fugiat sunt id eu esse id fugiat sint. Veniam qui quis mollit ad magna elit ex laborum occaecat labore.'
),
createActivity(
'Aute deserunt id ullamco excepteur excepteur sint magna deserunt quis. Pariatur excepteur minim aliquip laboris quis eiusmod elit ut. Commodo dolor eu enim sint ex ex voluptate. Consequat duis laboris ad tempor aliqua aliquip et elit dolore do ea. Deserunt aute sit magna dolor sit elit dolor anim. Et reprehenderit adipisicing ea aute et exercitation est excepteur tempor cupidatat occaecat eiusmod eu.'
),
createActivity(
'Minim deserunt ut tempor minim eiusmod duis labore minim occaecat duis adipisicing proident cupidatat nisi. Aute aliquip qui culpa incididunt. Mollit consequat reprehenderit ex velit ipsum eu anim reprehenderit ad eiusmod veniam.'
),
createActivity(
'Eiusmod magna eiusmod proident dolor mollit mollit sit cupidatat consectetur est exercitation labore do quis. Esse incididunt duis consectetur consequat aliquip. Exercitation proident ut reprehenderit irure minim incididunt in sint anim.'
),
createActivity(
'Id cillum ut non quis commodo ex officia consequat duis mollit occaecat proident anim aliqua. Ex commodo anim adipisicing id fugiat adipisicing ut dolor nulla culpa aliquip adipisicing sit laboris. Esse non Lorem aute veniam quis esse quis ipsum reprehenderit deserunt ut do culpa ut. Laborum officia consectetur ad et non aute et nostrud reprehenderit deserunt elit sint.'
),
{
attachments: [
{
contentType: 'application/vnd.microsoft.card.adaptive',
content: {
$schema: 'http://adaptivecards.io/schemas/adaptive-card.json',
type: 'AdaptiveCard',
version: '1.3',
body: [
{
type: 'TextBlock',
text: 'Adaptive Card design session',
size: 'Large',
weight: 'Bolder',
wrap: true
},
{
type: 'TextBlock',
text: ' Conf Room 112/3377 (10) ',
isSubtle: true,
wrap: true
},
{
type: 'TextBlock',
text: '12:30 - 01:30',
isSubtle: true,
spacing: 'None',
wrap: true
},
{
type: 'Input.ChoiceSet',
id: 'snooze',
label: 'Snooze for',
value: '5',
choices: [
{
title: '5 minutes',
value: '5'
},
{
title: '15 minutes',
value: '15'
},
{
title: '30 minutes',
value: '30'
}
]
}
],
actions: [
{
type: 'Action.Submit',
title: 'Snooze'
},
{
type: 'Action.Submit',
title: "I'll be late"
}
]
}
}
],
from: {
role: 'bot'
},
id: '1',
timestamp: new Date().toISOString(),
type: 'message'
}
],
{
overridePostActivity: activity => {
// console.log(activity);
const id = Math.random().toString(36).substr(2, 5);
directLine.activityDeferredObservable.next({
...activity,
id,
timestamp: new Date().toISOString()
});
return Observable.from([id]);
}
}
);
WebChat.renderWebChat(
{
directLine,
store: testHelpers.createStore(),
styleOptions: {
autoScrollSnapOnActivity: 1
}
},
document.getElementById('webchat')
);
await pageConditions.uiConnected();
await pageConditions.numActivitiesShown(6);
await pageConditions.scrollToBottomCompleted();
// We need to send a message to mark all activities as read.
await host.click(document.getElementsByClassName('ac-pushButton')[0]);
directLine.activityDeferredObservable.next(
createActivity(
'Minim voluptate officia nisi excepteur pariatur tempor duis enim aute consectetur ex ipsum id. Exercitation voluptate proident sunt ad Lorem tempor ex dolore culpa aliquip ipsum eu. Sunt nisi esse esse consequat mollit exercitation incididunt incididunt deserunt culpa incididunt consectetur in. Magna proident aliquip sunt proident in velit cillum commodo minim proident cillum officia mollit consequat.'
)
);
await pageConditions.numActivitiesShown(7);
// EXPECT: Transcript should continue scroll to reveal "Minim voluptate" activity.
await pageConditions.scrollToBottomCompleted();
// SETUP: Transcript already reached snap point (1 activity), remember the "scrollTop", transcript should not scroll further anymore.
const { scrollTop } = pageElements.transcriptScrollable();
directLine.activityDeferredObservable.next(
createActivity(
'Voluptate occaecat sunt est incididunt qui duis in adipisicing. Eu exercitation duis labore reprehenderit. Consectetur elit quis exercitation Lorem quis velit sunt. Irure anim labore officia tempor anim veniam est quis. Cillum et fugiat amet eu. Et sunt non voluptate ea irure dolore elit non ex commodo aute veniam.'
)
);
await pageConditions.numActivitiesShown(8);
// EXPECT: Transcript already reached snap point (1 activity), it should not scroll further below.
await pageConditions.scrollStabilized(scrollTop);
await host.snapshot('local');
});
</script>
</body>
</html>