Skip to content

Commit e03e92e

Browse files
authored
Merge pull request #285 from GoogleChrome/missing-prerender-tests
Add missing prerender tests
2 parents 89affdf + be1df46 commit e03e92e

File tree

3 files changed

+68
-0
lines changed

3 files changed

+68
-0
lines changed

test/e2e/onCLS-test.js

+22
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,28 @@ describe('onCLS()', async function() {
632632
assert.strictEqual(cls.navigationType, 'back-forward-cache');
633633
});
634634

635+
it('reports prerender as nav type for prerender', async function() {
636+
if (!browserSupportsCLS) this.skip();
637+
638+
await browser.url('/test/cls?prerender=1');
639+
640+
// Wait until all images are loaded and rendered, then change to hidden.
641+
await imagesPainted();
642+
await stubVisibilityChange('hidden');
643+
644+
645+
await beaconCountIs(1);
646+
const [cls] = await getBeacons();
647+
648+
assert(cls.value >= 0);
649+
assert(cls.id.match(/^v3-\d+-\d+$/));
650+
assert.strictEqual(cls.name, 'CLS');
651+
assert.strictEqual(cls.value, cls.delta);
652+
assert.strictEqual(cls.rating, 'good');
653+
assert.strictEqual(cls.entries.length, 2);
654+
assert.strictEqual(cls.navigationType, 'prerender');
655+
});
656+
635657
it('reports restore as nav type for wasDiscarded', async function() {
636658
if (!browserSupportsCLS) this.skip();
637659

test/e2e/onFID-test.js

+21
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,27 @@ describe('onFID()', async function() {
194194
assert.match(fid2.entries[0].name, /(mouse|pointer)down/);
195195
});
196196

197+
it('reports prerender as nav type for prerender', async function() {
198+
if (!browserSupportsFID) this.skip();
199+
200+
await browser.url('/test/fid?prerender=1');
201+
202+
// Click on the <h1>.
203+
const h1 = await $('h1');
204+
await h1.click();
205+
206+
await beaconCountIs(1);
207+
208+
const [fid] = await getBeacons();
209+
assert(fid.value >= 0);
210+
assert(fid.id.match(/^v3-\d+-\d+$/));
211+
assert.strictEqual(fid.name, 'FID');
212+
assert.strictEqual(fid.value, fid.delta);
213+
assert.strictEqual(fid.rating, 'good');
214+
assert.strictEqual(fid.navigationType, 'prerender');
215+
assert.match(fid.entries[0].name, /(mouse|pointer)down/);
216+
});
217+
197218
it('reports restore as nav type for wasDiscarded', async function() {
198219
if (!browserSupportsFID) this.skip();
199220

test/e2e/onINP-test.js

+25
Original file line numberDiff line numberDiff line change
@@ -316,6 +316,31 @@ describe('onINP()', async function() {
316316
assert.strictEqual(beacons.length, 0);
317317
});
318318

319+
it('reports prerender as nav type for prerender', async function() {
320+
if (!browserSupportsINP) this.skip();
321+
322+
await browser.url('/test/inp?click=100&prerender=1');
323+
324+
325+
const h1 = await $('h1');
326+
await h1.click();
327+
328+
await stubVisibilityChange('hidden');
329+
330+
await beaconCountIs(1);
331+
332+
const [inp] = await getBeacons();
333+
assert(inp.value >= 0);
334+
assert(inp.id.match(/^v3-\d+-\d+$/));
335+
assert.strictEqual(inp.name, 'INP');
336+
assert.strictEqual(inp.value, inp.delta);
337+
assert.strictEqual(inp.rating, 'good');
338+
assert(containsEntry(inp.entries, 'click', 'h1'));
339+
assert(interactionIDsMatch(inp.entries));
340+
assert(inp.entries[0].interactionId > 0);
341+
assert.strictEqual(inp.navigationType, 'prerender');
342+
});
343+
319344
it('reports restore as nav type for wasDiscarded', async function() {
320345
if (!browserSupportsINP) this.skip();
321346

0 commit comments

Comments
 (0)