Skip to content

Commit 0a0c6cf

Browse files
committed
test(smoke): webdriverio v7 migration
1 parent a2f5a37 commit 0a0c6cf

File tree

4 files changed

+204
-169
lines changed

4 files changed

+204
-169
lines changed

test/journeys/specs/smoke/demo.js

Lines changed: 39 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -4,61 +4,54 @@ import {setupOneOnOneUsers} from '../../lib/test-users';
44
import {elements, saveToken} from '../../lib/test-helpers/demo';
55
import {elements as spaceElements} from '../../lib/test-helpers/space-widget/main';
66
import {sendMessage, verifyMessageReceipt} from '../../lib/test-helpers/space-widget/messaging';
7-
import {jobNames, renameJob, updateJobStatus} from '../../lib/test-helpers';
87

98
describe('demo widget', () => {
10-
const browserLocal = browser.select('browserLocal');
11-
const browserRemote = browser.select('browserRemote');
12-
const jobName = jobNames.smokeDemo;
139
let allPassed = true;
1410
let mccoy, spock, local, remote;
1511

16-
it('start new sauce session', () => {
17-
browser.reload();
18-
browser.call(() => renameJob(jobName, browser));
12+
before('loads the page', () => {
13+
browser.refresh();
1914

2015
browserLocal.url('/dist-demo/index.html?local');
2116
browserRemote.url('/dist-demo/index.html?remote');
2217
});
2318

24-
it('create test users', () => {
19+
before('create test users', () => {
2520
[mccoy, spock] = setupOneOnOneUsers();
2621
local = {browser: browserLocal, user: mccoy, displayName: mccoy.displayName};
2722
remote = {browser: browserRemote, user: spock, displayName: spock.displayName};
28-
// Refresh the browsers so an input timeout shouldn't happen
29-
browser.refresh();
3023
});
3124

3225
describe('access token authentication', () => {
33-
it('saves token for local user', () => {
26+
before('saves token for local user', () => {
3427
saveToken(browserLocal, mccoy.token.access_token);
35-
});
28+
}, 3);
3629

37-
it('saves token for remote user', () => {
30+
before('saves token for remote user', () => {
3831
saveToken(browserRemote, spock.token.access_token);
39-
});
32+
}, 3);
4033

4134
describe('space widget', () => {
4235
it('opens space widget for mccoy in local', () => {
43-
browserLocal.click(elements.toPersonRadioButton);
44-
browserLocal.element(elements.toPersonInput).setValue(spock.email);
45-
browserLocal.click(elements.openSpaceWidgetButton);
36+
browserLocal.$(elements.toPersonRadioButton).click();
37+
browserLocal.$(elements.toPersonInput).setValue(spock.email);
38+
browserLocal.$(elements.openSpaceWidgetButton).click();
4639
// Wait for conversation to be ready
4740
const textInputField = `[placeholder="Send a message to ${spock.displayName}"]`;
4841

49-
browserLocal.waitForVisible(textInputField);
50-
browserLocal.scroll(textInputField);
42+
browserLocal.$(textInputField).waitForDisplayed();
43+
browserLocal.$(textInputField).scrollIntoView();
5144
});
5245

5346
it('opens space widget for spock in remote', () => {
54-
browserRemote.click(elements.toPersonRadioButton);
55-
browserRemote.element(elements.toPersonInput).setValue(mccoy.email);
56-
browserRemote.click(elements.openSpaceWidgetButton);
47+
browserRemote.$(elements.toPersonRadioButton).click();
48+
browserRemote.$(elements.toPersonInput).setValue(mccoy.email);
49+
browserRemote.$(elements.openSpaceWidgetButton).click();
5750
// Wait for conversation to be ready
5851
const textInputFieldRemote = `[placeholder="Send a message to ${mccoy.displayName}"]`;
5952

60-
browserRemote.waitForVisible(textInputFieldRemote);
61-
browserRemote.scroll(textInputFieldRemote);
53+
browserRemote.$(textInputFieldRemote).waitForDisplayed();
54+
browserRemote.$(textInputFieldRemote).scrollIntoView();
6255
});
6356

6457
describe('space widget functionality', () => {
@@ -76,61 +69,63 @@ describe('demo widget', () => {
7669

7770
describe('external control', () => {
7871
it('can change current activity', () => {
79-
assert.isTrue(browserLocal.isVisible(spaceElements.messageWidget));
80-
browserLocal.click(elements.changeActivityMeetButton);
81-
browserLocal.click(elements.updateSpaceWidgetButton);
82-
browserLocal.waitForVisible(spaceElements.meetWidget, 6000);
72+
assert.isTrue(browserLocal.$(spaceElements.messageWidget).isDisplayed());
73+
browserLocal.$(elements.changeActivityMeetButton).click();
74+
browserLocal.$(elements.updateSpaceWidgetButton).click();
75+
browserLocal.$(spaceElements.meetWidget).waitForDisplayed({
76+
timeout: 6000
77+
});
8378
});
8479
});
8580
});
8681
});
8782

8883
describe('recents widget', () => {
8984
it('opens recents widget for mccoy in local', () => {
90-
browserLocal.click(elements.openRecentsWidgetButton);
91-
browserLocal.waitForVisible(elements.recentsWidgetContainer);
85+
browserLocal.$(elements.openRecentsWidgetButton).click();
86+
browserLocal.$(elements.recentsWidgetContainer).waitForDisplayed();
9287
});
9388
});
9489
});
9590

9691
describe('sdk instance authentication', () => {
9792
it('reloads demo page and stores access token with sdk for local', () => {
9893
// Widget demo uses cookies to save info
99-
browserLocal.deleteCookie();
94+
browserLocal.deleteCookies();
10095
browserLocal.refresh();
10196

10297
saveToken(browserLocal, mccoy.token.access_token, true);
10398
});
10499

105100
it('reloads demo page and stores access token with sdk for browser', () => {
106101
// Widget demo uses cookies to save info
107-
browserRemote.deleteCookie();
102+
browserRemote.deleteCookies();
108103
browserRemote.refresh();
109104

110105
saveToken(browserRemote, spock.token.access_token, true);
111106
});
112107

113108
describe('space widget', () => {
114109
it('opens space widget for mccoy in local', () => {
115-
browserLocal.click(elements.toPersonRadioButton);
116-
browserLocal.element(elements.toPersonInput).setValue(spock.email);
117-
browserLocal.click(elements.openSpaceWidgetButton);
110+
browserLocal.$(elements.toPersonRadioButton).click();
111+
browserLocal.$(elements.toPersonInput).setValue(spock.email);
112+
browserLocal.$(elements.openSpaceWidgetButton).click();
118113
// Wait for conversation to be ready
119114
const textInputField = `[placeholder="Send a message to ${spock.displayName}"]`;
120115

121-
browserLocal.waitForVisible(textInputField);
122-
browserLocal.scroll(textInputField);
116+
browserLocal.$(textInputField).waitForDisplayed();
117+
browserLocal.$(textInputField).scrollIntoView();
123118
});
124119

125120
it('opens space widget for spock in remote', () => {
126-
browserRemote.click(elements.toPersonRadioButton);
127-
browserRemote.element(elements.toPersonInput).setValue(mccoy.email);
128-
browserRemote.click(elements.openSpaceWidgetButton);
121+
browserRemote.$(elements.toPersonRadioButton).click();
122+
browserRemote.$(elements.toPersonInput).setValue(mccoy.email);
123+
browserRemote.$(elements.openSpaceWidgetButton).click();
129124
// Wait for conversation to be ready
130125
const textInputFieldRemote = `[placeholder="Send a message to ${mccoy.displayName}"]`;
131126

132-
browserRemote.waitForVisible(textInputFieldRemote);
133-
browserRemote.scroll(textInputFieldRemote);
127+
browserRemote.$(textInputFieldRemote).waitForDisplayed();
128+
browserRemote.$(textInputFieldRemote).scrollIntoView();
134129
});
135130

136131
describe('messaging', () => {
@@ -148,8 +143,8 @@ describe('demo widget', () => {
148143

149144
describe('recents widget', () => {
150145
it('opens recents widget for mccoy in local', () => {
151-
browserLocal.click(elements.openRecentsWidgetButton);
152-
browserLocal.waitForVisible(elements.recentsWidgetContainer);
146+
browserLocal.$(elements.openRecentsWidgetButton).click();
147+
browserLocal.$(elements.recentsWidgetContainer).waitForDisplayed();
153148
});
154149
});
155150
});
@@ -158,6 +153,4 @@ describe('demo widget', () => {
158153
afterEach(function () {
159154
allPassed = allPassed && (this.currentTest.state === 'passed');
160155
});
161-
162-
after(() => browser.call(() => updateJobStatus(jobName, allPassed)));
163156
});

test/journeys/specs/smoke/multiple/index.js

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import {assert} from 'chai';
22

33
import {createSpace, disconnectDevices, registerDevices, setupGroupTestUsers} from '../../../lib/test-users';
44
import waitForPromise from '../../../lib/wait-for-promise';
5-
import {jobNames, renameJob, updateJobStatus} from '../../../lib/test-helpers';
65
import {elements as spaceElements} from '../../../lib/test-helpers/space-widget/main';
76
import {sendMessage, verifyMessageReceipt} from '../../../lib/test-helpers/space-widget/messaging';
87

@@ -13,23 +12,18 @@ import {
1312
} from '../../../lib/test-helpers/recents-widget';
1413

1514
describe('Multiple Widgets', () => {
16-
const browserLocal = browser.select('browserLocal');
17-
const browserRemote = browser.select('browserRemote');
18-
const jobName = jobNames.smokeMultiple;
19-
2015
let docbrown, lorraine, marty, participants;
2116
let conversation;
2217
let local, remote;
2318
let allPassed = true;
2419

25-
it('start new sauce session', () => {
26-
browser.reload();
27-
browser.call(() => renameJob(jobName, browser));
20+
before('loads the page', () => {
21+
browser.refresh();
2822
browserLocal.url('/multiple.html?local');
2923
browserRemote.url('/multiple.html?remote');
3024
});
3125

32-
it('create test users and spaces', () => {
26+
before('create test users and spaces', () => {
3327
participants = setupGroupTestUsers();
3428
[docbrown, lorraine, marty] = participants;
3529
assert.lengthOf(participants, 3, 'Test users were not created');
@@ -49,7 +43,7 @@ describe('Multiple Widgets', () => {
4943

5044
window.openRecentsWidget(options);
5145
}, marty.token.access_token);
52-
browserLocal.waitForVisible(recentsElements.recentsWidget);
46+
browserLocal.$(recentsElements.recentsWidget).waitForDisplayed();
5347

5448
browserLocal.execute((localAccessToken, spaceId) => {
5549
const options = {
@@ -63,7 +57,7 @@ describe('Multiple Widgets', () => {
6357

6458
window.openSpaceWidget(options);
6559
}, marty.token.access_token, conversation.hydraId);
66-
browserLocal.waitForVisible(spaceElements.spaceWidget);
60+
browserLocal.$(spaceElements.spaceWidget).waitForDisplayed();
6761
});
6862

6963
it('open widgets remote', () => {
@@ -78,7 +72,7 @@ describe('Multiple Widgets', () => {
7872

7973
window.openRecentsWidget(options);
8074
}, docbrown.token.access_token);
81-
browserRemote.waitForVisible(recentsElements.recentsWidget);
75+
browserRemote.$(recentsElements.recentsWidget).waitForDisplayed();
8276

8377
browserRemote.execute((localAccessToken, spaceId) => {
8478
const options = {
@@ -92,7 +86,7 @@ describe('Multiple Widgets', () => {
9286

9387
window.openSpaceWidget(options);
9488
}, docbrown.token.access_token, conversation.hydraId);
95-
browserRemote.waitForVisible(spaceElements.spaceWidget);
89+
browserRemote.$(spaceElements.spaceWidget).waitForDisplayed();
9690
});
9791

9892
it('has the page loaded', () => {
@@ -119,38 +113,49 @@ describe('Multiple Widgets', () => {
119113
before('wait for conversation to be ready', () => {
120114
const textInputField = `[placeholder="Send a message to ${conversation.displayName}"]`;
121115

122-
browserLocal.waitForVisible(textInputField);
116+
browserLocal.$(textInputField).waitForDisplayed();
123117
});
124118

125119
describe('Activity Section', () => {
126120
it('has a message button', () => {
127-
browserLocal.waitForVisible(spaceElements.messageActivityButton);
121+
browserLocal.$(spaceElements.messageActivityButton).waitForDisplayed();
128122
});
129123

130124
it('switches to message widget', () => {
131-
browserLocal.click(spaceElements.messageActivityButton);
132-
assert.isTrue(browserLocal.isVisible(spaceElements.messageWidget));
125+
browserLocal.$(spaceElements.messageActivityButton).click();
126+
assert.isTrue(browserLocal.$(spaceElements.messageWidget).isDisplayed());
133127
});
134128
});
135129

136130
describe('messaging', () => {
137-
it('sends and receives messages', () => {
138-
const martyText = 'Wait a minute. Wait a minute, Doc. Ah... Are you telling me that you built a time machine... out of a DeLorean?';
139-
const docText = 'The way I see it, if you\'re gonna build a time machine into a car, why not do it with some style?';
140-
const lorraineText = 'Marty, will we ever see you again?';
141-
const martyText2 = 'I guarantee it.';
131+
const martyText = 'Wait a minute. Wait a minute, Doc. Ah... Are you telling me that you built a time machine... out of a DeLorean?';
132+
const docText = 'The way I see it, if you\'re gonna build a time machine into a car, why not do it with some style?';
133+
const lorraineText = 'Marty, will we ever see you again?';
134+
const martyText2 = 'I guarantee it.';
142135

136+
it('marty sends a message', () => {
143137
sendMessage(remote, local, martyText);
144138
verifyMessageReceipt(local, remote, martyText);
139+
});
140+
141+
it('docbrown receives a message', () => {
145142
sendMessage(remote, local, docText);
146143
verifyMessageReceipt(local, remote, docText);
147-
// Send a message from a 'client'
144+
});
145+
146+
it('lorraine sends a message and verifies it was sent', () => {
147+
// This request is flaky for some reason
148+
// and the message won't get sent and the function doesn't throw if there's an error
148149
waitForPromise(lorraine.spark.internal.conversation.post(conversation, {
149150
displayName: lorraineText
150151
}));
152+
// Send a message from a 'client'
151153
// Wait for both widgets to receive client message
152154
verifyMessageReceipt(local, remote, lorraineText);
153155
verifyMessageReceipt(remote, local, lorraineText);
156+
}, 5);
157+
158+
it('marty sends another message', () => {
154159
sendMessage(local, remote, martyText2);
155160
verifyMessageReceipt(remote, local, martyText2);
156161
});
@@ -163,6 +168,4 @@ describe('Multiple Widgets', () => {
163168
afterEach(function () {
164169
allPassed = allPassed && (this.currentTest.state === 'passed');
165170
});
166-
167-
after(() => browser.call(() => updateJobStatus(jobName, allPassed)));
168171
});

0 commit comments

Comments
 (0)