Skip to content

Commit

Permalink
Merge pull request #1988 from bugsnag/PLAT-9448/rename-request-to-url
Browse files Browse the repository at this point in the history
  • Loading branch information
yousif-bugsnag authored Jul 17, 2023
2 parents 5cdef6c + 738816f commit 28d9670
Show file tree
Hide file tree
Showing 12 changed files with 132 additions and 42 deletions.
7 changes: 5 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,11 @@

### Changed

- (plugin-navigation-breadcrumbs) calling `pushState` or `replaceState` no longer triggers a new session when `autoTrackSessions` is enabled [#1820](/~https://github.com/bugsnag/bugsnag-js/pull/1820)
- (plugin-contextualize) reimplement without relying on the deprecated node Domain API. From Node 16+ unhandled promise rejections are also supported [#1924](/~https://github.com/bugsnag/bugsnag-js/pull/1924)
- (plugin-navigation-breadcrumbs) Calling `pushState` or `replaceState` no longer triggers a new session when `autoTrackSessions` is enabled [#1820](/~https://github.com/bugsnag/bugsnag-js/pull/1820)
- (plugin-contextualize) Reimplement without relying on the deprecated node Domain API. From Node 16+ unhandled promise rejections are also supported [#1924](/~https://github.com/bugsnag/bugsnag-js/pull/1924)
- (plugin-network-breadcrumbs, plugin-electron-net-breadcrumbs) *Breaking change*: The `request` metadata field in network breadcrumbs has been renamed to `url` and is no longer pre-pended with the HTTP method [#1988](/~https://github.com/bugsnag/bugsnag-js/pull/1988)
- (plugin-network-breadcrumbs, plugin-electron-net-breadcrumbs) Added `method` metadata field to network breadcrumbs [#1988](/~https://github.com/bugsnag/bugsnag-js/pull/1988)
- (plugin-network-breadcrumbs, plugin-electron-net-breadcrumbs) Added `duration` metadata field to network breadcrumbs [#1903](/~https://github.com/bugsnag/bugsnag-js/pull/1903)

## TBD

Expand Down
20 changes: 17 additions & 3 deletions packages/plugin-electron-net-breadcrumbs/net-breadcrumbs.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,23 +53,37 @@ module.exports = net => ({

client.leaveBreadcrumb(
`net.request ${success ? 'succeeded' : 'failed'}`,
{ request: `${method} ${url}`, status: response.statusCode, duration: getDuration(requestStart) },
{
method: String(method),
url: String(url),
status: response.statusCode,
duration: getDuration(requestStart)
},
BREADCRUMB_REQUEST
)
})

request.on('abort', () => {
client.leaveBreadcrumb(
'net.request aborted',
{ request: `${method} ${url}`, duration: getDuration(requestStart) },
{
method: String(method),
url: String(url),
duration: getDuration(requestStart)
},
BREADCRUMB_REQUEST
)
})

request.on('error', (error) => {
client.leaveBreadcrumb(
'net.request error',
{ request: `${method} ${url}`, error: error.message, duration: getDuration(requestStart) },
{
method: String(method),
url: String(url),
error: error.message,
duration: getDuration(requestStart)
},
BREADCRUMB_REQUEST
)
})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,16 @@ describe.skip('plugin: electron net breadcrumbs', () => {
request.end()
})

const expectedMetadata = expect.objectContaining({
method: 'GET',
url: `${url}/`,
status,
duration: expect.any(Number)
})

const expected = new Breadcrumb(
`net.request ${successOrFailure}`,
{ request: `GET ${url}/`, status, duration: expect.any(Number) },
expectedMetadata,
'request'
)

Expand Down Expand Up @@ -72,9 +79,16 @@ describe.skip('plugin: electron net breadcrumbs', () => {
request.end()
})

const expectedMetadata = expect.objectContaining({
method,
url,
status,
duration: expect.any(Number)
})

const expected = new Breadcrumb(
`net.request ${successOrFailure}`,
{ request: `${method} ${url}`, status, duration: expect.any(Number) },
expectedMetadata,
'request'
)

Expand Down Expand Up @@ -105,9 +119,16 @@ describe.skip('plugin: electron net breadcrumbs', () => {
request.end()
})

const expectedMetadata = expect.objectContaining({
method: 'GET',
url: `http://localhost:${currentServer.port}/`,
status,
duration: expect.any(Number)
})

const expected = new Breadcrumb(
`net.request ${successOrFailure}`,
{ request: `GET http://localhost:${currentServer.port}/`, status, duration: expect.any(Number) },
expectedMetadata,
'request'
)

Expand All @@ -128,9 +149,11 @@ describe.skip('plugin: electron net breadcrumbs', () => {
request.abort()
})

const expectedMetadata = expect.objectContaining({ url: `${url}/`, method: 'GET' })

const expected = new Breadcrumb(
'net.request aborted',
{ request: `GET ${url}/` },
expectedMetadata,
'request'
)

Expand All @@ -151,9 +174,11 @@ describe.skip('plugin: electron net breadcrumbs', () => {
request.abort()
})

const expectedMetadata = expect.objectContaining({ url: `${url}/`, method: 'GET' })

const expected = new Breadcrumb(
'net.request aborted',
{ request: `GET ${url}/` },
expectedMetadata,
'request'
)

Expand All @@ -180,9 +205,16 @@ describe.skip('plugin: electron net breadcrumbs', () => {
request.end()
})

const expectedMetadata = expect.objectContaining({
method: 'GET',
url,
error: "Attempted to redirect, but redirect policy was 'error'",
duration: expect.any(Number)
})

const expected = new Breadcrumb(
'net.request error',
{ request: `GET ${url}`, error: "Attempted to redirect, but redirect policy was 'error'", duration: expect.any(Number) },
expectedMetadata,
'request'
)

Expand Down Expand Up @@ -302,9 +334,16 @@ describe.skip('plugin: electron net breadcrumbs', () => {
}, 500)
})

const expectedMetadata = expect.objectContaining({
method: 'POST',
url,
status: 200,
duration: expect.any(Number)
})

const expected = new Breadcrumb(
'net.request succeeded',
{ request: `POST ${url}`, status: 200, duration: expect.any(Number) },
expectedMetadata,
'request'
)

Expand Down Expand Up @@ -340,9 +379,16 @@ describe.skip('plugin: electron net breadcrumbs', () => {
}, 500)
})

const expectedMetadata = expect.objectContaining({
method: 'POST',
url,
status: 200,
duration: expect.any(Number)
})

const expected = new Breadcrumb(
'net.request succeeded',
{ request: `POST ${url}`, status: 200, duration: expect.any(Number) },
expectedMetadata,
'request'
)

Expand Down
13 changes: 8 additions & 5 deletions packages/plugin-network-breadcrumbs/network-breadcrumbs.js
Original file line number Diff line number Diff line change
Expand Up @@ -77,8 +77,9 @@ module.exports = (_ignoredUrls = [], win = window) => {
return
}
const metadata = {
status: status,
request: `${method} ${url}`,
status,
method: String(method),
url: String(url),
duration: duration
}
if (status >= 400) {
Expand All @@ -102,7 +103,8 @@ module.exports = (_ignoredUrls = [], win = window) => {

// failed to contact server
client.leaveBreadcrumb('XMLHttpRequest error', {
request: `${method} ${url}`,
method: String(method),
url: String(url),
duration: duration
}, BREADCRUMB_TYPE)
}
Expand Down Expand Up @@ -165,8 +167,9 @@ module.exports = (_ignoredUrls = [], win = window) => {

const handleFetchSuccess = (response, method, url, duration) => {
const metadata = {
method: String(method),
status: response.status,
request: `${method} ${url}`,
url: String(url),
duration: duration
}
if (response.status >= 400) {
Expand All @@ -178,7 +181,7 @@ module.exports = (_ignoredUrls = [], win = window) => {
}

const handleFetchError = (method, url, duration) => {
client.leaveBreadcrumb('fetch() error', { request: `${method} ${url}`, duration: duration }, BREADCRUMB_TYPE)
client.leaveBreadcrumb('fetch() error', { method: String(method), url: String(url), duration: duration }, BREADCRUMB_TYPE)
}
}
}
Expand Down
Loading

0 comments on commit 28d9670

Please sign in to comment.