Skip to content

Commit b2394d4

Browse files
authored
Fixing CI failures. (#8004)
1 parent ab29f5e commit b2394d4

File tree

2 files changed

+47
-25
lines changed

2 files changed

+47
-25
lines changed

pkg/pub_integration/lib/src/pub_puppeteer_helpers.dart

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -291,3 +291,11 @@ extension PubPageExt on Page {
291291
);
292292
}
293293
}
294+
295+
extension PubElementHandleExt on ElementHandle {
296+
Future<void> clickAndWaitOneResponse() async {
297+
final future = frameManager.networkManager.onResponse.first;
298+
await click();
299+
await future;
300+
}
301+
}

pkg/pub_integration/test/search_update_test.dart

Lines changed: 39 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -75,8 +75,11 @@ void main() {
7575
]);
7676

7777
// click Android
78-
await page.click('#search-form-checkbox-platform-android');
79-
await page.waitForNavigation(wait: Until.networkIdle);
78+
await page.waitAndClick(
79+
'#search-form-checkbox-platform-android',
80+
waitForOneResponse: true,
81+
);
82+
await _waitOneSecond();
8083
final i2 = await listingPageInfo(page);
8184
expect(i2.totalCount, lessThan(80));
8285
expect(i2.totalCount, greaterThan(70));
@@ -93,12 +96,12 @@ void main() {
9396
final flutterCB3 = await page.$('#search-form-checkbox-sdk-flutter');
9497
expect(await flutterCB3.boundingBox, isNull);
9598
await page.click('.search-form-section[data-section-tag="sdks"]');
96-
await Future.delayed(Duration(seconds: 1));
99+
await _waitOneSecond();
97100
expect(await flutterCB3.boundingBox, isNotNull);
98101

99102
// click Flutter
100-
await flutterCB3.click();
101-
await page.waitForNavigation(wait: Until.networkIdle);
103+
await flutterCB3.clickAndWaitOneResponse();
104+
await _waitOneSecond();
102105
final i3 = await listingPageInfo(page);
103106
expect(i3.totalCount, lessThan(70));
104107
expect(i3.totalCount, greaterThan(60));
@@ -115,8 +118,8 @@ void main() {
115118
// unclick Flutter
116119
final flutterCB4 = await page.$('#search-form-checkbox-sdk-flutter');
117120
final flutterLink = await flutterCB4.$x('../following-sibling::*');
118-
await flutterLink.single.click();
119-
await page.waitForNavigation(wait: Until.networkIdle);
121+
await flutterLink.single.clickAndWaitOneResponse();
122+
await _waitOneSecond();
120123
final i4 = await listingPageInfo(page);
121124
expect(i4.totalCount, i2.totalCount);
122125
expect(i4.packageNames, i2.packageNames);
@@ -151,8 +154,8 @@ void main() {
151154

152155
// clear Flutter with a row-level click
153156
final flutterRow = await flutterCB5.$x('../../..');
154-
await flutterRow.single.click();
155-
await page.waitForNavigation(wait: Until.networkIdle);
157+
await flutterRow.single.clickAndWaitOneResponse();
158+
await _waitOneSecond();
156159
final i6 = await listingPageInfo(page);
157160
expect(i6.totalCount, i2.totalCount);
158161
expect(i6.openSections, i5.openSections);
@@ -164,26 +167,32 @@ void main() {
164167
'#search-form-checkbox-is-flutter-favorite',
165168
'#search-form-checkbox-show-unlisted'
166169
]);
167-
await page.click('#search-form-checkbox-show-unlisted');
168-
await page.waitForNavigation(wait: Until.networkIdle);
170+
await page.waitAndClick('#search-form-checkbox-show-unlisted',
171+
waitForOneResponse: true);
172+
await _waitOneSecond();
169173
final i7 = await listingPageInfo(page);
170174
expect(i7.totalCount, i6.totalCount);
171175
expect(i7.openSections, ['sdks', 'advanced']);
172176
expect(page.url,
173177
'$origin/packages?q=platform%3Aandroid+show%3Aunlisted+pkg');
174178

175179
// remove discontinued
176-
await page.click('#search-form-checkbox-show-unlisted');
177-
await page.waitForNavigation(wait: Until.networkIdle);
180+
await page.waitAndClick('#search-form-checkbox-show-unlisted',
181+
waitForOneResponse: true);
182+
await _waitOneSecond();
178183
expect(page.url, '$origin/packages?q=platform%3Aandroid+pkg');
179184

180185
Future<void> toggleMore(String tagPrefix, String tagPostfix) async {
181-
await page.click('#search-form-checkbox-$tagPrefix-$tagPostfix');
182-
await page.waitForNavigation(wait: Until.networkIdle);
186+
await page.waitAndClick(
187+
'#search-form-checkbox-$tagPrefix-$tagPostfix',
188+
waitForOneResponse: true);
189+
await _waitOneSecond();
183190
expect(page.url,
184191
'$origin/packages?q=platform%3Aandroid+$tagPrefix%3A$tagPostfix+pkg');
185-
await page.click('#search-form-checkbox-$tagPrefix-$tagPostfix');
186-
await page.waitForNavigation(wait: Until.networkIdle);
192+
await page.waitAndClick(
193+
'#search-form-checkbox-$tagPrefix-$tagPostfix',
194+
waitForOneResponse: true);
195+
await _waitOneSecond();
187196
expect(page.url, '$origin/packages?q=platform%3Aandroid+pkg');
188197
}
189198

@@ -206,9 +215,9 @@ void main() {
206215
await page.waitForSelector(targetSelector, visible: true);
207216
await Future.delayed(Duration(milliseconds: 50));
208217
await page.waitForSelector(targetSelector, visible: true);
209-
await page.click(targetSelector);
218+
await page.waitAndClick(targetSelector, waitForOneResponse: true);
210219
}
211-
await page.waitForNavigation(wait: Until.networkIdle);
220+
await _waitOneSecond();
212221
expect(
213222
page.url,
214223
allOf(
@@ -221,8 +230,9 @@ void main() {
221230
expect(await page.propertyValue('input[name="q"]', 'value'),
222231
'platform:android platform:web platform:ios pkg');
223232

224-
await page.click('#search-form-checkbox-platform-windows');
225-
await page.waitForNavigation(wait: Until.networkIdle);
233+
await page.waitAndClick('#search-form-checkbox-platform-windows',
234+
waitForOneResponse: true);
235+
await _waitOneSecond();
226236
expect(
227237
page.url,
228238
allOf(
@@ -244,8 +254,9 @@ void main() {
244254

245255
// OSI approved
246256
await page.click('.search-form-section[data-section-tag="license"]');
247-
await page.waitAndClick('#search-form-checkbox-license-osi-approved');
248-
await page.waitForNavigation(wait: Until.networkIdle);
257+
await page.waitAndClick('#search-form-checkbox-license-osi-approved',
258+
waitForOneResponse: true);
259+
await _waitOneSecond();
249260

250261
expect(await page.propertyValue('input[name="q"]', 'value'),
251262
'license:osi-approved');
@@ -267,8 +278,9 @@ void main() {
267278
expect(page.url, '$origin/packages?q=pkg');
268279
expect(await page.propertyValue('input[name="q"]', 'value'), 'pkg');
269280

270-
await page.click('#search-form-checkbox-platform-android');
271-
await page.waitForNavigation(wait: Until.networkIdle);
281+
await page.waitAndClick('#search-form-checkbox-platform-android',
282+
waitForOneResponse: true);
283+
await _waitOneSecond();
272284
expect(page.url, '$origin/packages?q=platform%3Aandroid+pkg');
273285
expect(await page.propertyValue('input[name="q"]', 'value'),
274286
'platform:android pkg');
@@ -318,3 +330,5 @@ void main() {
318330
});
319331
}, timeout: Timeout.factor(testTimeoutFactor));
320332
}
333+
334+
Future _waitOneSecond() => Future.delayed(Duration(seconds: 1));

0 commit comments

Comments
 (0)