From 3f97a9fb69dcfd04a3ee3d6aaea67a2841e429d2 Mon Sep 17 00:00:00 2001 From: Andrey Lushnikov Date: Wed, 27 May 2020 22:52:34 -0700 Subject: [PATCH] test: add failing test for event source (#2382) References #2189 --- test/network.spec.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/test/network.spec.js b/test/network.spec.js index f539e87234e5c..f74372b60b4c2 100644 --- a/test/network.spec.js +++ b/test/network.spec.js @@ -259,6 +259,33 @@ describe('Response.statusText', function() { }); }); +describe('Request.resourceType', function() { + it.fail(FFOX || WEBKIT)('should return event source', async ({page, server}) => { + const SSE_MESSAGE = {foo: 'bar'}; + // 1. Setup server-sent events on server that immediately sends a message to the client. + server.setRoute('/sse', (req, res) => { + res.writeHead(200, { + 'Content-Type': 'text/event-stream', + 'Connection': 'keep-alive', + 'Cache-Control': 'no-cache', + }); + res.write(`data: ${JSON.stringify(SSE_MESSAGE)}\n\n`); + }); + // 2. Subscribe to page request events. + await page.goto(server.EMPTY_PAGE); + const requests = []; + page.on('request', request => requests.push(request)); + // 3. Connect to EventSource in browser and return first message. + expect(await page.evaluate(() => { + const eventSource = new EventSource('/sse'); + return new Promise(resolve => { + eventSource.onmessage = e => resolve(JSON.parse(e.data)); + }); + })).toEqual(SSE_MESSAGE); + expect(requests[0].resourceType()).toBe('eventsource'); + }); +}); + describe('Network Events', function() { it('Page.Events.Request', async({page, server}) => { const requests = [];