-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #13619 from getsentry/prepare-release/8.29.0
meta(changelog): Update changelog for 8.29.0
- Loading branch information
Showing
84 changed files
with
1,929 additions
and
865 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
17 changes: 17 additions & 0 deletions
17
dev-packages/browser-integration-tests/suites/feedback/attachTo/init.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
import * as Sentry from '@sentry/browser'; | ||
// Import this separately so that generatePlugin can handle it for CDN scenarios | ||
import { feedbackIntegration } from '@sentry/browser'; | ||
|
||
const feedback = feedbackIntegration({ | ||
autoInject: false, | ||
}); | ||
|
||
window.Sentry = Sentry; | ||
window.feedback = feedback; | ||
|
||
Sentry.init({ | ||
dsn: 'https://[email protected]/1337', | ||
integrations: [feedback], | ||
}); | ||
|
||
feedback.attachTo('#custom-feedback-buttom'); |
9 changes: 9 additions & 0 deletions
9
dev-packages/browser-integration-tests/suites/feedback/attachTo/template.html
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="utf-8" /> | ||
</head> | ||
<body> | ||
<button type="button" id="custom-feedback-buttom">Show feedback!</button> | ||
</body> | ||
</html> |
82 changes: 82 additions & 0 deletions
82
dev-packages/browser-integration-tests/suites/feedback/attachTo/test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
import { expect } from '@playwright/test'; | ||
|
||
import { TEST_HOST, sentryTest } from '../../../utils/fixtures'; | ||
import { envelopeRequestParser, getEnvelopeType, shouldSkipFeedbackTest } from '../../../utils/helpers'; | ||
|
||
sentryTest('should capture feedback with custom button', async ({ getLocalTestUrl, page }) => { | ||
if (shouldSkipFeedbackTest()) { | ||
sentryTest.skip(); | ||
} | ||
|
||
const feedbackRequestPromise = page.waitForResponse(res => { | ||
const req = res.request(); | ||
|
||
const postData = req.postData(); | ||
if (!postData) { | ||
return false; | ||
} | ||
|
||
try { | ||
return getEnvelopeType(req) === 'feedback'; | ||
} catch (err) { | ||
return false; | ||
} | ||
}); | ||
|
||
await page.route('https://dsn.ingest.sentry.io/**/*', route => { | ||
return route.fulfill({ | ||
status: 200, | ||
contentType: 'application/json', | ||
body: JSON.stringify({ id: 'test-id' }), | ||
}); | ||
}); | ||
|
||
const url = await getLocalTestUrl({ testDir: __dirname }); | ||
|
||
await page.goto(url); | ||
await page.locator('#custom-feedback-buttom').click(); | ||
await page.waitForSelector(':visible:text-is("Report a Bug")'); | ||
|
||
expect(await page.locator(':visible:text-is("Report a Bug")').count()).toEqual(1); | ||
await page.locator('[name="name"]').fill('Jane Doe'); | ||
await page.locator('[name="email"]').fill('[email protected]'); | ||
await page.locator('[name="message"]').fill('my example feedback'); | ||
await page.locator('[data-sentry-feedback] .btn--primary').click(); | ||
|
||
const feedbackEvent = envelopeRequestParser((await feedbackRequestPromise).request()); | ||
expect(feedbackEvent).toEqual({ | ||
type: 'feedback', | ||
breadcrumbs: expect.any(Array), | ||
contexts: { | ||
feedback: { | ||
contact_email: '[email protected]', | ||
message: 'my example feedback', | ||
name: 'Jane Doe', | ||
source: 'widget', | ||
url: `${TEST_HOST}/index.html`, | ||
}, | ||
trace: { | ||
trace_id: expect.stringMatching(/\w{32}/), | ||
span_id: expect.stringMatching(/\w{16}/), | ||
}, | ||
}, | ||
level: 'info', | ||
timestamp: expect.any(Number), | ||
event_id: expect.stringMatching(/\w{32}/), | ||
environment: 'production', | ||
tags: {}, | ||
sdk: { | ||
integrations: expect.arrayContaining(['Feedback']), | ||
version: expect.any(String), | ||
name: 'sentry.javascript.browser', | ||
packages: expect.anything(), | ||
}, | ||
request: { | ||
url: `${TEST_HOST}/index.html`, | ||
headers: { | ||
'User-Agent': expect.stringContaining(''), | ||
}, | ||
}, | ||
platform: 'javascript', | ||
}); | ||
}); |
19 changes: 19 additions & 0 deletions
19
dev-packages/browser-integration-tests/suites/feedback/logger/init.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import * as Sentry from '@sentry/browser'; | ||
// Import this separately so that generatePlugin can handle it for CDN scenarios | ||
import { feedbackIntegration } from '@sentry/browser'; | ||
|
||
const feedback = feedbackIntegration({ | ||
autoInject: false, | ||
}); | ||
|
||
window.Sentry = Sentry; | ||
window.feedback = feedback; | ||
|
||
Sentry.init({ | ||
dsn: 'https://[email protected]/1337', | ||
debug: true, | ||
integrations: [feedback], | ||
}); | ||
|
||
// This should log an error! | ||
feedback.attachTo('#does-not-exist'); |
36 changes: 36 additions & 0 deletions
36
dev-packages/browser-integration-tests/suites/feedback/logger/test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
import { expect } from '@playwright/test'; | ||
|
||
import { sentryTest } from '../../../utils/fixtures'; | ||
import { shouldSkipFeedbackTest } from '../../../utils/helpers'; | ||
|
||
/** | ||
* This test is mostly relevant for ensuring that the logger works in all combinations of CDN bundles. | ||
* Even if feedback is included via the CDN, this test ensures that the logger is working correctly. | ||
*/ | ||
sentryTest('should log error correctly', async ({ getLocalTestUrl, page }) => { | ||
// In minified bundles we do not have logger messages, so we skip the test | ||
if (shouldSkipFeedbackTest() || (process.env.PW_BUNDLE || '').includes('_min')) { | ||
sentryTest.skip(); | ||
} | ||
|
||
const messages: string[] = []; | ||
|
||
page.on('console', message => { | ||
messages.push(message.text()); | ||
}); | ||
|
||
await page.route('https://dsn.ingest.sentry.io/**/*', route => { | ||
return route.fulfill({ | ||
status: 200, | ||
contentType: 'application/json', | ||
body: JSON.stringify({ id: 'test-id' }), | ||
}); | ||
}); | ||
|
||
const url = await getLocalTestUrl({ testDir: __dirname }); | ||
|
||
await page.goto(url); | ||
|
||
expect(messages).toContain('Sentry Logger [log]: Integration installed: Feedback'); | ||
expect(messages).toContain('Sentry Logger [error]: [Feedback] Unable to attach to target element'); | ||
}); |
20 changes: 20 additions & 0 deletions
20
dev-packages/browser-integration-tests/suites/integrations/httpContext/init.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
import * as Sentry from '@sentry/browser'; | ||
|
||
window.Sentry = Sentry; | ||
|
||
const integrations = Sentry.getDefaultIntegrations({}).filter( | ||
defaultIntegration => defaultIntegration.name === 'HttpContext', | ||
); | ||
|
||
const client = new Sentry.BrowserClient({ | ||
dsn: 'https://[email protected]/1337', | ||
transport: Sentry.makeFetchTransport, | ||
stackParser: Sentry.defaultStackParser, | ||
integrations: integrations, | ||
}); | ||
|
||
const scope = new Sentry.Scope(); | ||
scope.setClient(client); | ||
client.init(); | ||
|
||
window._sentryScope = scope; |
1 change: 1 addition & 0 deletions
1
dev-packages/browser-integration-tests/suites/integrations/httpContext/subject.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
window._sentryScope.captureException(new Error('client init')); |
26 changes: 26 additions & 0 deletions
26
dev-packages/browser-integration-tests/suites/integrations/httpContext/test.ts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
import { expect } from '@playwright/test'; | ||
import type { Event } from '@sentry/types'; | ||
|
||
import { sentryTest } from '../../../utils/fixtures'; | ||
import { getFirstSentryEnvelopeRequest } from '../../../utils/helpers'; | ||
|
||
sentryTest('httpContextIntegration captures user-agent and referrer', async ({ getLocalTestPath, page }) => { | ||
const url = await getLocalTestPath({ testDir: __dirname }); | ||
|
||
const errorEventPromise = getFirstSentryEnvelopeRequest<Event>(page); | ||
|
||
// Simulate document.referrer being set to test full functionality of the integration | ||
await page.goto(url, { referer: 'https://sentry.io/' }); | ||
|
||
const errorEvent = await errorEventPromise; | ||
|
||
expect(errorEvent.exception?.values).toHaveLength(1); | ||
|
||
expect(errorEvent.request).toEqual({ | ||
headers: { | ||
'User-Agent': expect.any(String), | ||
Referer: 'https://sentry.io/', | ||
}, | ||
url: expect.any(String), | ||
}); | ||
}); |
11 changes: 0 additions & 11 deletions
11
...es/browser-integration-tests/suites/integrations/httpclient/httpClientIntegration/init.js
This file was deleted.
Oops, something went wrong.
8 changes: 0 additions & 8 deletions
8
...browser-integration-tests/suites/integrations/httpclient/httpClientIntegration/subject.js
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.