From b1904cbcc3b248fd51d313ef0a37509204ada5f0 Mon Sep 17 00:00:00 2001 From: Yousif <74918474+yousif-bugsnag@users.noreply.github.com> Date: Thu, 6 Jul 2023 09:50:16 +0100 Subject: [PATCH] Revert "add requestContentLength breadcrumb metadata for xhr and fetch requests" --- .../network-breadcrumbs.js | 69 ++++--------------- .../test/network-breadcrumbs.test.ts | 43 ++++-------- test/browser/Gemfile | 2 +- test/browser/Gemfile.lock | 41 +++++------ .../json/fetch_post_arraybuffer.json | 11 --- .../json/fetch_post_blob.json | 11 --- .../json/fetch_post_dataview.json | 11 --- .../json/fetch_post_text.json | 11 --- .../json/fetch_post_typedarray.json | 11 --- .../json/fetch_post_urlsearchparams.json | 11 --- .../json/fetch_success.json | 2 +- .../json/xhr_post_arraybuffer.json | 11 --- .../json/xhr_post_blob.json | 11 --- .../json/xhr_post_dataview.json | 11 --- .../json/xhr_post_text.json | 11 --- .../json/xhr_post_typedarray.json | 11 --- .../json/xhr_post_urlsearchparams.json | 11 --- .../network_breadcrumbs/json/xhr_success.json | 2 +- .../script/fetch_post_arraybuffer.html | 37 ---------- .../script/fetch_post_blob.html | 37 ---------- .../script/fetch_post_dataview.html | 37 ---------- .../script/fetch_post_text.html | 37 ---------- .../script/fetch_post_typedarray.html | 37 ---------- .../script/fetch_post_urlsearchparams.html | 37 ---------- .../script/fetch_success.html | 4 +- .../script/xhr_failure.html | 2 +- .../script/xhr_post_arraybuffer.html | 42 ----------- .../script/xhr_post_blob.html | 42 ----------- .../script/xhr_post_dataview.html | 42 ----------- .../script/xhr_post_text.html | 42 ----------- .../script/xhr_post_typedarray.html | 42 ----------- .../script/xhr_post_urlsearchparams.html | 42 ----------- .../script/xhr_success.html | 4 +- .../features/network_breadcrumbs.feature | 30 ++------ test/browser/features/support/env.rb | 3 +- 35 files changed, 56 insertions(+), 752 deletions(-) delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_arraybuffer.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_blob.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_dataview.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_text.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_typedarray.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_urlsearchparams.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_arraybuffer.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_blob.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_dataview.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_text.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_typedarray.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_urlsearchparams.json delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_arraybuffer.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_blob.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_dataview.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_text.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_typedarray.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_urlsearchparams.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_arraybuffer.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_blob.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_dataview.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_text.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_typedarray.html delete mode 100644 test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_urlsearchparams.html diff --git a/packages/plugin-network-breadcrumbs/network-breadcrumbs.js b/packages/plugin-network-breadcrumbs/network-breadcrumbs.js index 13913062dc..5524e8535d 100644 --- a/packages/plugin-network-breadcrumbs/network-breadcrumbs.js +++ b/packages/plugin-network-breadcrumbs/network-breadcrumbs.js @@ -28,8 +28,8 @@ module.exports = (_ignoredUrls = [], win = window) => { win.XMLHttpRequest.prototype.open = function open (method, url) { let requestSetupKey = false - const error = () => handleXHRError(method, url, getDuration(requestStart), requestContentLength) - const load = () => handleXHRLoad(method, url, this.status, getDuration(requestStart), requestContentLength) + const error = () => handleXHRError(method, url, getDuration(requestStart)) + const load = () => handleXHRLoad(method, url, this.status, getDuration(requestStart)) // if we have already setup listeners, it means open() was called twice, we need to remove // the listeners and recreate them @@ -47,11 +47,9 @@ module.exports = (_ignoredUrls = [], win = window) => { const oldSend = this.send let requestStart - let requestContentLength // override send() for this XMLHttpRequest instance - this.send = function send (body) { - requestContentLength = getByteLength(body) + this.send = function send () { requestStart = new Date() oldSend.apply(this, arguments) } @@ -66,7 +64,7 @@ module.exports = (_ignoredUrls = [], win = window) => { } } - function handleXHRLoad (method, url, status, duration, requestContentLength) { + function handleXHRLoad (method, url, status, duration) { if (url === undefined) { client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.') return @@ -81,8 +79,7 @@ module.exports = (_ignoredUrls = [], win = window) => { const metadata = { status: status, request: `${method} ${url}`, - duration: duration, - requestContentLength: requestContentLength + duration: duration } if (status >= 400) { // contacted server but got an error response @@ -92,7 +89,7 @@ module.exports = (_ignoredUrls = [], win = window) => { } } - function handleXHRError (method, url, duration, requestContentLength) { + function handleXHRError (method, url, duration) { if (url === undefined) { client._logger.warn('The request URL is no longer present on this XMLHttpRequest. A breadcrumb cannot be left for this request.') return @@ -106,8 +103,7 @@ module.exports = (_ignoredUrls = [], win = window) => { // failed to contact server client.leaveBreadcrumb('XMLHttpRequest error', { request: `${method} ${url}`, - duration: duration, - requestContentLength: requestContentLength + duration: duration }, BREADCRUMB_TYPE) } @@ -125,7 +121,6 @@ module.exports = (_ignoredUrls = [], win = window) => { let method let url = null - let requestContentLength if (urlOrRequest && typeof urlOrRequest === 'object') { url = urlOrRequest.url @@ -145,21 +140,17 @@ module.exports = (_ignoredUrls = [], win = window) => { method = 'GET' } - if (options && 'body' in options) { - requestContentLength = getByteLength(options.body) - } - return new Promise((resolve, reject) => { const requestStart = new Date() // pass through to native fetch oldFetch(...arguments) .then(response => { - handleFetchSuccess(response, method, url, getDuration(requestStart), requestContentLength) + handleFetchSuccess(response, method, url, getDuration(requestStart)) resolve(response) }) .catch(error => { - handleFetchError(method, url, getDuration(requestStart), requestContentLength) + handleFetchError(method, url, getDuration(requestStart)) reject(error) }) }) @@ -172,12 +163,11 @@ module.exports = (_ignoredUrls = [], win = window) => { } } - const handleFetchSuccess = (response, method, url, duration, requestContentLength) => { + const handleFetchSuccess = (response, method, url, duration) => { const metadata = { status: response.status, request: `${method} ${url}`, - duration: duration, - requestContentLength: requestContentLength + duration: duration } if (response.status >= 400) { // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise, @@ -187,12 +177,8 @@ module.exports = (_ignoredUrls = [], win = window) => { } } - const handleFetchError = (method, url, duration, requestContentLength) => { - client.leaveBreadcrumb('fetch() error', { - request: `${method} ${url}`, - duration: duration, - requestContentLength: requestContentLength - }, BREADCRUMB_TYPE) + const handleFetchError = (method, url, duration) => { + client.leaveBreadcrumb('fetch() error', { request: `${method} ${url}`, duration: duration }, BREADCRUMB_TYPE) } } } @@ -204,35 +190,6 @@ module.exports = (_ignoredUrls = [], win = window) => { } } - const getByteLength = (body) => { - // body could be any of the types listed here: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/send#parameters - // ReadableStreams cannot be read safely and it's difficult to get an accurate byte length for FormData and Document inputs - if ((body === null || typeof body === 'undefined') || - (win.ReadableStream && body instanceof win.ReadableStream) || - (win.FormData && body instanceof win.FormData) || - (win.Document && body instanceof win.Document)) return undefined - - // Try to read the byte length directly - if (typeof body.byteLength === 'number') { - // ArrayBuffer, DataView, TypedArray - return body.byteLength - } else if (win.Blob && body instanceof win.Blob) { - return body.size - } else if (!win.Blob) { - return undefined - } - - try { - // do a simple stringification - this may fail if the input object has no prototype or a broken toString - const stringified = String(body) - - // use a Blob to get the utf-8 encoded byte length - return new win.Blob([stringified]).size - } catch (e) { - return undefined - } - } - return plugin } diff --git a/packages/plugin-network-breadcrumbs/test/network-breadcrumbs.test.ts b/packages/plugin-network-breadcrumbs/test/network-breadcrumbs.test.ts index 0d8db1b91e..9ad87fc32b 100644 --- a/packages/plugin-network-breadcrumbs/test/network-breadcrumbs.test.ts +++ b/packages/plugin-network-breadcrumbs/test/network-breadcrumbs.test.ts @@ -16,7 +16,7 @@ class XMLHttpRequest { open (method: string, url: string | { toString: () => any }) { } - send (body: any, fail: boolean = false, status: number | null = null) { + send (fail: boolean, status: number | null = null) { if (fail) { this._listeners.error.call(this) } else { @@ -73,7 +73,7 @@ describe('plugin: network breadcrumbs', () => { const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest request.open('GET', '/') // tell the mock request to succeed with status code 200 - request.send(undefined, false, 200) + request.send(false, 200) expect(client._breadcrumbs.length).toBe(1) expect(client._breadcrumbs[0]).toEqual(expect.objectContaining({ @@ -85,7 +85,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() }) it('should not leave duplicate breadcrumbs if open() is called twice', () => { @@ -97,7 +96,7 @@ describe('plugin: network breadcrumbs', () => { const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest request.open('GET', '/') request.open('GET', '/') - request.send(undefined, false, 200) + request.send(false, 200) expect(client._breadcrumbs.length).toBe(1) }) @@ -109,7 +108,7 @@ describe('plugin: network breadcrumbs', () => { const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest request.open('GET', '/this-does-not-exist') - request.send(undefined, false, 404) + request.send(false, 404) expect(client._breadcrumbs.length).toBe(1) expect(client._breadcrumbs[0]).toEqual(expect.objectContaining({ @@ -121,7 +120,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() }) it('should leave a breadcrumb when an XMLHTTPRequest has a network error', () => { @@ -133,7 +131,7 @@ describe('plugin: network breadcrumbs', () => { const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest request.open('GET', 'https://another-domain.xyz/') - request.send(undefined, true) + request.send(true) expect(client._breadcrumbs.length).toBe(1) expect(client._breadcrumbs[0]).toEqual(expect.objectContaining({ @@ -144,7 +142,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() }) it('should not leave a breadcrumb for request to bugsnag notify endpoint', () => { @@ -155,7 +152,7 @@ describe('plugin: network breadcrumbs', () => { const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest request.open('GET', client._config.endpoints!.notify) - request.send(undefined, false, 200) + request.send(false, 200) expect(client._breadcrumbs.length).toBe(0) }) @@ -168,7 +165,7 @@ describe('plugin: network breadcrumbs', () => { const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest request.open('GET', client._config.endpoints!.sessions) - request.send(undefined, false, 200) + request.send(false, 200) expect(client._breadcrumbs.length).toBe(0) }) @@ -187,7 +184,7 @@ describe('plugin: network breadcrumbs', () => { const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest request.open('GET', { toString: () => 'https://example.com' }) - request.send(undefined, false, 200) + request.send(false, 200) expect(client._breadcrumbs.length).toBe(1) expect(client._breadcrumbs[0]).toEqual(expect.objectContaining({ @@ -199,7 +196,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() }) it('should leave a breadcrumb when the request URL is not a string for a request that errors', () => { @@ -217,7 +213,7 @@ describe('plugin: network breadcrumbs', () => { const request = new window.XMLHttpRequest() as unknown as XMLHttpRequest request.open('GET', { toString: () => 'https://example.com' }) - request.send(undefined, true) + request.send(true) expect(client._breadcrumbs.length).toBe(1) expect(client._breadcrumbs[0]).toEqual(expect.objectContaining({ @@ -248,7 +244,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -271,7 +266,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -296,7 +290,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -321,7 +314,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -344,7 +336,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -433,7 +424,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -456,7 +446,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -479,7 +468,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -501,7 +489,6 @@ describe('plugin: network breadcrumbs', () => { duration: expect.any(Number) } })) - expect(client._breadcrumbs[0].metadata.requestContentLength).toBeUndefined() done() }) }) @@ -514,7 +501,7 @@ describe('plugin: network breadcrumbs', () => { const request = new XMLHttpRequest() request.open('GET', '/') - request.send(undefined, false, 200) + request.send(false, 200) expect(client._breadcrumbs.length).toBe(0) }) @@ -527,7 +514,7 @@ describe('plugin: network breadcrumbs', () => { const request = new XMLHttpRequest() request.open('GET', '/') - request.send(undefined, false, 200) + request.send(false, 200) expect(client._breadcrumbs.length).toBe(1) }) @@ -540,7 +527,7 @@ describe('plugin: network breadcrumbs', () => { const request = new XMLHttpRequest() request.open('GET', '/') - request.send(undefined, false, 200) + request.send(false, 200) expect(client._breadcrumbs.length).toBe(1) }) @@ -553,15 +540,15 @@ describe('plugin: network breadcrumbs', () => { const request0 = new XMLHttpRequest() request0.open('GET', '/') - request0.send(undefined, false, 200) + request0.send(false, 200) const request1 = new XMLHttpRequest() request1.open('GET', '/ignoreme?123') - request1.send(undefined, false, 200) + request1.send(false, 200) const request2 = new XMLHttpRequest() request2.open('GET', '/ignoremeno') - request2.send(undefined, false, 200) + request2.send(false, 200) expect(client._breadcrumbs.length).toBe(2) }) diff --git a/test/browser/Gemfile b/test/browser/Gemfile index e8ee006fb5..91abe7711a 100644 --- a/test/browser/Gemfile +++ b/test/browser/Gemfile @@ -1,6 +1,6 @@ source 'https://rubygems.org' -gem 'bugsnag-maze-runner', git: 'https://github.com/bugsnag/maze-runner', tag: 'v7.17.0' +gem 'bugsnag-maze-runner', git: 'https://github.com/bugsnag/maze-runner', tag: 'v7.8.0' # Use a branch of Maze Runner #gem 'bugsnag-maze-runner', git: 'https://github.com/bugsnag/maze-runner', branch: 'tms/use-maze-check' diff --git a/test/browser/Gemfile.lock b/test/browser/Gemfile.lock index 4ff23c878a..ab062bdf49 100644 --- a/test/browser/Gemfile.lock +++ b/test/browser/Gemfile.lock @@ -1,19 +1,18 @@ GIT remote: https://github.com/bugsnag/maze-runner - revision: 01596b90f65a11759e4bd307242e46b1f4c240b2 - tag: v7.17.0 + revision: 4d6e5a515fab519342fdb3c5da2fa10451213c0a + tag: v7.8.0 specs: - bugsnag-maze-runner (7.17.0) + bugsnag-maze-runner (7.8.0) appium_lib (~> 12.0.0) appium_lib_core (~> 5.4.0) bugsnag (~> 6.24) cucumber (~> 7.1) cucumber-expressions (~> 6.0.0) curb (~> 0.9.6) - json_schemer (~> 0.2.24) + json-schema (~> 2.8.1) optimist (~> 3.0.1) os (~> 1.0.0) - rack (~> 2.2) rake (~> 12.3.3) rubyzip (~> 2.3.2) selenium-webdriver (~> 4.0) @@ -23,6 +22,8 @@ GIT GEM remote: https://rubygems.org/ specs: + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) appium_lib (12.0.1) appium_lib_core (~> 5.0) nokogiri (~> 1.8, >= 1.8.1) @@ -30,11 +31,11 @@ GEM appium_lib_core (5.4.0) faye-websocket (~> 0.11.0) selenium-webdriver (~> 4.2, < 4.6) - bugsnag (6.25.2) + bugsnag (6.25.0) concurrent-ruby (~> 1.0) builder (3.2.4) childprocess (4.1.0) - concurrent-ruby (1.2.0) + concurrent-ruby (1.1.10) cucumber (7.1.0) builder (~> 3.2, >= 3.2.4) cucumber-core (~> 10.1, >= 10.1.0) @@ -68,34 +69,27 @@ GEM cucumber-cucumber-expressions (~> 14.0, >= 14.0.0) curb (0.9.11) diff-lcs (1.5.0) - ecma-re-validator (0.4.0) - regexp_parser (~> 2.2) eventmachine (1.2.7) faye-websocket (0.11.1) eventmachine (>= 0.12.0) websocket-driver (>= 0.5.1) ffi (1.15.5) - hana (1.3.7) - json_schemer (0.2.24) - ecma-re-validator (~> 0.3) - hana (~> 1.3) - regexp_parser (~> 2.0) - uri_template (~> 0.7) + json-schema (2.8.1) + addressable (>= 2.4) mime-types (3.4.1) mime-types-data (~> 3.2015) mime-types-data (3.2022.0105) - mini_portile2 (2.8.1) + mini_portile2 (2.8.0) multi_test (0.1.2) - nokogiri (1.14.1) + nokogiri (1.13.10) mini_portile2 (~> 2.8.0) racc (~> 1.4) optimist (3.0.1) os (1.0.1) - power_assert (2.0.3) - racc (1.6.2) - rack (2.2.6.2) + power_assert (2.0.2) + public_suffix (5.0.1) + racc (1.6.1) rake (12.3.3) - regexp_parser (2.7.0) rexml (3.2.5) rubyzip (2.3.2) selenium-webdriver (4.5.0) @@ -105,10 +99,9 @@ GEM websocket (~> 1.0) sys-uname (1.2.2) ffi (~> 1.1) - test-unit (3.5.7) + test-unit (3.5.5) power_assert tomlrb (2.0.3) - uri_template (0.7.0) webrick (1.7.0) websocket (1.2.9) websocket-driver (0.7.5) @@ -122,4 +115,4 @@ DEPENDENCIES bugsnag-maze-runner! BUNDLED WITH - 2.3.0 + 2.2.20 diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_arraybuffer.json b/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_arraybuffer.json deleted file mode 100644 index 4660ed60e5..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_arraybuffer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "fetch() succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "^POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 16 - } -} \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_blob.json b/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_blob.json deleted file mode 100644 index 4525522ec2..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_blob.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "fetch() succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "^POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 14 - } -} \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_dataview.json b/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_dataview.json deleted file mode 100644 index d754078c19..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_dataview.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "fetch() succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "^POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 8 - } -} \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_text.json b/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_text.json deleted file mode 100644 index 4525522ec2..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_text.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "fetch() succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "^POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 14 - } -} \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_typedarray.json b/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_typedarray.json deleted file mode 100644 index 4660ed60e5..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_typedarray.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "fetch() succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "^POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 16 - } -} \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_urlsearchparams.json b/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_urlsearchparams.json deleted file mode 100644 index 64375e7758..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_post_urlsearchparams.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "fetch() succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "^POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 22 - } -} \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_success.json b/test/browser/features/fixtures/network_breadcrumbs/json/fetch_success.json index f67c7ceb77..42a0a7ade2 100644 --- a/test/browser/features/fixtures/network_breadcrumbs/json/fetch_success.json +++ b/test/browser/features/fixtures/network_breadcrumbs/json/fetch_success.json @@ -4,7 +4,7 @@ "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", "metaData": { "status": 200, - "request": "GET http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", + "request": "GET fetch_success.html", "duration": "NUMBER" } } diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_arraybuffer.json b/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_arraybuffer.json deleted file mode 100644 index 730f2aabd8..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_arraybuffer.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "XMLHttpRequest succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 16 - } -} diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_blob.json b/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_blob.json deleted file mode 100644 index 0b8989ca8e..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_blob.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "XMLHttpRequest succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 14 - } -} diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_dataview.json b/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_dataview.json deleted file mode 100644 index 0499bf3901..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_dataview.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "XMLHttpRequest succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 8 - } -} diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_text.json b/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_text.json deleted file mode 100644 index 0b8989ca8e..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_text.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "XMLHttpRequest succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 14 - } -} diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_typedarray.json b/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_typedarray.json deleted file mode 100644 index 730f2aabd8..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_typedarray.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "XMLHttpRequest succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 16 - } -} diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_urlsearchparams.json b/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_urlsearchparams.json deleted file mode 100644 index 6b517e0f0d..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_post_urlsearchparams.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "type": "request", - "name": "XMLHttpRequest succeeded", - "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", - "metaData": { - "status": 200, - "request": "POST http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", - "duration": "NUMBER", - "requestContentLength": 22 - } -} diff --git a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_success.json b/test/browser/features/fixtures/network_breadcrumbs/json/xhr_success.json index 85b5761f72..20d1672803 100644 --- a/test/browser/features/fixtures/network_breadcrumbs/json/xhr_success.json +++ b/test/browser/features/fixtures/network_breadcrumbs/json/xhr_success.json @@ -4,7 +4,7 @@ "timestamp": "^\\d{4}\\-\\d{2}\\-\\d{2}T\\d{2}:\\d{2}:[\\d\\.]+Z?$", "metaData": { "status": 200, - "request": "GET http:\\/\\/.*:\\d{4}\\/reflect\\?status=200\\&delay_ms=0$", + "request": "GET xhr_success.html", "duration": "NUMBER" } } diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_arraybuffer.html b/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_arraybuffer.html deleted file mode 100644 index a8c85ff781..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_arraybuffer.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - Fetch success - - - - - -
PENDING
- - - diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_blob.html b/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_blob.html deleted file mode 100644 index 55a19a0ea2..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_blob.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - Fetch success - - - - - -
PENDING
- - - diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_dataview.html b/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_dataview.html deleted file mode 100644 index 09e749e539..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_dataview.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - Fetch success - - - - - -
PENDING
- - - diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_text.html b/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_text.html deleted file mode 100644 index 2973adf212..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_text.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - Fetch success - - - - - -
PENDING
- - - diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_typedarray.html b/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_typedarray.html deleted file mode 100644 index dcd732398c..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_typedarray.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - Fetch success - - - - - -
PENDING
- - - diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_urlsearchparams.html b/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_urlsearchparams.html deleted file mode 100644 index 767fb4e921..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_post_urlsearchparams.html +++ /dev/null @@ -1,37 +0,0 @@ - - - - Fetch success - - - - - -
PENDING
- - - diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_success.html b/test/browser/features/fixtures/network_breadcrumbs/script/fetch_success.html index 071154ee15..857dad675c 100644 --- a/test/browser/features/fixtures/network_breadcrumbs/script/fetch_success.html +++ b/test/browser/features/fixtures/network_breadcrumbs/script/fetch_success.html @@ -8,15 +8,13 @@ var NOTIFY = decodeURIComponent(window.location.search.match(/NOTIFY=([^&]+)/)[1]) var SESSIONS = decodeURIComponent(window.location.search.match(/SESSIONS=([^&]+)/)[1]) var API_KEY = decodeURIComponent(window.location.search.match(/API_KEY=([^&]+)/)[1]) - var REFLECT = decodeURIComponent(window.location.search.match(/REFLECT=([^&]+)/)[1]) - var url = `${REFLECT}?status=200&delay_ms=0` Bugsnag.start({ apiKey: API_KEY, endpoints: { notify: NOTIFY, sessions: SESSIONS }, }) - fetch(url).then(function () { + fetch("fetch_success.html").then(function () { Bugsnag.notify(new Error("This error should have network breadcrumbs attached")) }) diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_failure.html b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_failure.html index 70c22c905a..6c02f4632b 100644 --- a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_failure.html +++ b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_failure.html @@ -32,7 +32,7 @@
PENDING
diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_arraybuffer.html b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_arraybuffer.html deleted file mode 100644 index 05996913ba..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_arraybuffer.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - XHR Success - - - - - - -
PENDING
- - - - \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_blob.html b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_blob.html deleted file mode 100644 index a0ecd4439b..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_blob.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - XHR Success - - - - - - -
PENDING
- - - - \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_dataview.html b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_dataview.html deleted file mode 100644 index 1efe1158db..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_dataview.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - XHR Success - - - - - - -
PENDING
- - - - \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_text.html b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_text.html deleted file mode 100644 index 8b578b4ccc..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_text.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - XHR Success - - - - - - -
PENDING
- - - - \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_typedarray.html b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_typedarray.html deleted file mode 100644 index adfa6ce9dc..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_typedarray.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - XHR Success - - - - - - -
PENDING
- - - - \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_urlsearchparams.html b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_urlsearchparams.html deleted file mode 100644 index a80a7a77e1..0000000000 --- a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_post_urlsearchparams.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - XHR Success - - - - - - -
PENDING
- - - - \ No newline at end of file diff --git a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_success.html b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_success.html index aaaea8594f..64c4cb93e8 100644 --- a/test/browser/features/fixtures/network_breadcrumbs/script/xhr_success.html +++ b/test/browser/features/fixtures/network_breadcrumbs/script/xhr_success.html @@ -9,8 +9,6 @@ var NOTIFY = decodeURIComponent(window.location.search.match(/NOTIFY=([^&]+)/)[1]) var SESSIONS = decodeURIComponent(window.location.search.match(/SESSIONS=([^&]+)/)[1]) var API_KEY = decodeURIComponent(window.location.search.match(/API_KEY=([^&]+)/)[1]) - var REFLECT = decodeURIComponent(window.location.search.match(/REFLECT=([^&]+)/)[1]) - var url = REFLECT + "?status=200&delay_ms=0" Bugsnag.start({ apiKey: API_KEY, @@ -23,7 +21,7 @@ var xhr = new XMLHttpRequest() xhr.onloadend = notify - xhr.open("GET", url) + xhr.open("GET", "xhr_success.html") xhr.send() diff --git a/test/browser/features/network_breadcrumbs.feature b/test/browser/features/network_breadcrumbs.feature index d5868fcb43..cbe93df489 100644 --- a/test/browser/features/network_breadcrumbs.feature +++ b/test/browser/features/network_breadcrumbs.feature @@ -3,52 +3,30 @@ Feature: Network breadcrumbs Bugsnag error reports should include breadcrumbs for network requests, including those made using fetch, and xml http requests. - Scenario: A GET fetch request succeeds + Scenario: A fetch request succeeds When I navigate to the test URL "/network_breadcrumbs/script/fetch_success.html" And the test should run in this browser And I wait to receive an error Then the error is a valid browser payload for the error reporting API And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/network_breadcrumbs/json/fetch_success.json" - Scenario: A GET fetch request fails + Scenario: A fetch request fails When I navigate to the test URL "/network_breadcrumbs/script/fetch_failure.html" And the test should run in this browser And I wait to receive an error Then the error is a valid browser payload for the error reporting API And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/network_breadcrumbs/json/fetch_failure.json" - Scenario: A GET XMLHttpRequest succeeds + Scenario: An xmlHttpRequest succeeds When I navigate to the test URL "/network_breadcrumbs/script/xhr_success.html" And the test should run in this browser And I wait to receive an error Then the error is a valid browser payload for the error reporting API And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/network_breadcrumbs/json/xhr_success.json" - Scenario: A GET XMLHttpRequest fails + Scenario: An xmlHttpRequest fails When I navigate to the test URL "/network_breadcrumbs/script/xhr_failure.html" And the test should run in this browser And I wait to receive an error Then the error is a valid browser payload for the error reporting API And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/network_breadcrumbs/json/xhr_failure.json" - - Scenario Outline: Network breadcrumbs are left for successful POST requests - When I navigate to the test URL "/network_breadcrumbs/script/_post_.html" - And the test should run in this browser - And I wait to receive an error - Then the error is a valid browser payload for the error reporting API - And the event contains a breadcrumb matching the JSON fixture in "features/fixtures/network_breadcrumbs/json/_post_.json" - - Examples: - | requestType | dataType | - | xhr | text | - | xhr | blob | - | xhr | arraybuffer | - | xhr | typedarray | - | xhr | dataview | - | xhr | urlsearchparams | - | fetch | text | - | fetch | blob | - | fetch | arraybuffer | - | fetch | typedarray | - | fetch | dataview | - | fetch | urlsearchparams | diff --git a/test/browser/features/support/env.rb b/test/browser/features/support/env.rb index f365683a1a..2c184324cd 100644 --- a/test/browser/features/support/env.rb +++ b/test/browser/features/support/env.rb @@ -5,8 +5,7 @@ def get_test_url(path) notify = "http://#{ENV['API_HOST']}:#{Maze.config.port}/notify" sessions = "http://#{ENV['API_HOST']}:#{Maze.config.port}/sessions" logs = "http://#{ENV['API_HOST']}:#{Maze.config.port}/logs" - reflect = "http://#{ENV['API_HOST']}:#{Maze.config.port}/reflect" - config_query_string = "NOTIFY=#{notify}&SESSIONS=#{sessions}&API_KEY=#{$api_key}&LOGS=#{logs}&REFLECT=#{reflect}" + config_query_string = "NOTIFY=#{notify}&SESSIONS=#{sessions}&API_KEY=#{$api_key}&LOGS=#{logs}" uri = URI("http://#{host}:#{FIXTURES_SERVER_PORT}#{path}")