Skip to content

Commit 70ce204

Browse files
committed
Merge branch 'main' into antonis/3859-newCaptureFeedbackAPI-hint
# Conflicts: # CHANGELOG.md # samples/react-native-macos/src/components/UserFeedbackModal.tsx # samples/react-native/src/components/UserFeedbackModal.tsx
2 parents 3ec17bd + 6c56eb1 commit 70ce204

File tree

6 files changed

+77
-11
lines changed

6 files changed

+77
-11
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,11 +38,16 @@
3838
### Fixes
3939

4040
- Return `lastEventId` export from `@sentry/core` ([#4315](https://github.com/getsentry/sentry-react-native/pull/4315))
41+
- Navigation Span should have no parent by default ([#4326](https://github.com/getsentry/sentry-react-native/pull/4326))
42+
4143
### Dependencies
4244

4345
- Bump CLI from v2.38.2 to v2.39.1 ([#4305](https://github.com/getsentry/sentry-react-native/pull/4305), [#4316](https://github.com/getsentry/sentry-react-native/pull/4316))
4446
- [changelog](https://github.com/getsentry/sentry-cli/blob/master/CHANGELOG.md#2391)
4547
- [diff](https://github.com/getsentry/sentry-cli/compare/2.38.2...2.39.1)
48+
- Bump Android SDK from v7.18.0 to v7.18.1 ([#4329](https://github.com/getsentry/sentry-react-native/pull/4329))
49+
- [changelog](https://github.com/getsentry/sentry-java/blob/main/CHANGELOG.md#7181)
50+
- [diff](https://github.com/getsentry/sentry-java/compare/7.18.0...7.18.1)
4651

4752
## 6.4.0-beta.1
4853

packages/core/android/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,5 @@ android {
5454

5555
dependencies {
5656
implementation 'com.facebook.react:react-native:+'
57-
api 'io.sentry:sentry-android:7.18.0'
57+
api 'io.sentry:sentry-android:7.18.1'
5858
}

packages/core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
"@sentry-internal/eslint-config-sdk": "8.40.0",
8282
"@sentry-internal/eslint-plugin-sdk": "8.40.0",
8383
"@sentry-internal/typescript": "8.40.0",
84-
"@sentry/wizard": "3.34.4",
84+
"@sentry/wizard": "3.36.0",
8585
"@testing-library/react-native": "^12.7.2",
8686
"@types/jest": "^29.5.3",
8787
"@types/node": "^20.9.3",

packages/core/src/js/tracing/span.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ export const startIdleNavigationSpan = (
5757
}
5858

5959
const activeSpan = getActiveSpan();
60+
clearActiveSpanFromScope(getCurrentScope());
6061
if (activeSpan && isRootSpan(activeSpan) && isSentryInteractionSpan(activeSpan)) {
6162
logger.log(
6263
`[startIdleNavigationSpan] Canceling ${
@@ -128,9 +129,9 @@ export function isSentryInteractionSpan(span: Span): boolean {
128129
return [SPAN_ORIGIN_AUTO_INTERACTION, SPAN_ORIGIN_MANUAL_INTERACTION].includes(spanToJSON(span).origin);
129130
}
130131

131-
const SCOPE_SPAN_FIELD = '_sentrySpan';
132+
export const SCOPE_SPAN_FIELD = '_sentrySpan';
132133

133-
type ScopeWithMaybeSpan = Scope & {
134+
export type ScopeWithMaybeSpan = Scope & {
134135
[SCOPE_SPAN_FIELD]?: Span;
135136
};
136137

packages/core/test/tracing/idleNavigationSpan.test.ts

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
1-
import { getActiveSpan, spanToJSON } from '@sentry/core';
1+
import { getActiveSpan, getCurrentScope, spanToJSON, startSpanManual } from '@sentry/core';
2+
import type { Span } from '@sentry/types';
23
import type { AppState, AppStateStatus } from 'react-native';
34

4-
import { startIdleNavigationSpan } from '../../src/js/tracing/span';
5+
import type { ScopeWithMaybeSpan } from '../../src/js/tracing/span';
6+
import { SCOPE_SPAN_FIELD, startIdleNavigationSpan } from '../../src/js/tracing/span';
57
import { NATIVE } from '../../src/js/wrapper';
68
import { setupTestClient } from '../mocks/client';
79

@@ -79,4 +81,62 @@ describe('startIdleNavigationSpan', () => {
7981

8082
expect(spanToJSON(transaction!).timestamp).toBeDefined();
8183
});
84+
85+
describe('Start a new active root span (without parent)', () => {
86+
it('Starts a new span when there is no active span', () => {
87+
const span = startIdleNavigationSpan({
88+
name: 'test',
89+
});
90+
91+
expect(span).toBe(getActiveSpan());
92+
});
93+
94+
it('Starts a new span when current active navigation span not ended', () => {
95+
startIdleNavigationSpan({
96+
name: 'test',
97+
});
98+
99+
const secondSpan = startIdleNavigationSpan({
100+
name: 'test',
101+
});
102+
103+
expect(secondSpan).toBe(getActiveSpan());
104+
expect(spanToJSON(secondSpan!).parent_span_id).toBeUndefined();
105+
});
106+
107+
it('Starts a new span when current active navigation span is ended', () => {
108+
const firstSpan = startIdleNavigationSpan({
109+
name: 'test',
110+
});
111+
112+
firstSpan.end();
113+
114+
const secondSpan = startIdleNavigationSpan({
115+
name: 'test',
116+
});
117+
118+
expect(secondSpan).toBe(getActiveSpan());
119+
expect(spanToJSON(secondSpan!).parent_span_id).toBeUndefined();
120+
});
121+
122+
it('Starts a new span when current active span is not a navigation span', () => {
123+
const span = startSpanManual(
124+
{
125+
name: 'test',
126+
},
127+
(span: Span) => span,
128+
);
129+
setActiveSpanOnScope(getCurrentScope(), span);
130+
131+
const newSpan = startIdleNavigationSpan({
132+
name: 'test',
133+
});
134+
expect(newSpan).toBe(getActiveSpan());
135+
expect(spanToJSON(newSpan!).parent_span_id).toBeUndefined();
136+
});
137+
});
82138
});
139+
140+
export function setActiveSpanOnScope(scope: ScopeWithMaybeSpan, span: Span): void {
141+
scope[SCOPE_SPAN_FIELD] = span;
142+
}

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8342,7 +8342,7 @@ __metadata:
83428342
"@sentry/react": 8.40.0
83438343
"@sentry/types": 8.40.0
83448344
"@sentry/utils": 8.40.0
8345-
"@sentry/wizard": 3.34.4
8345+
"@sentry/wizard": 3.36.0
83468346
"@testing-library/react-native": ^12.7.2
83478347
"@types/jest": ^29.5.3
83488348
"@types/node": ^20.9.3
@@ -8435,9 +8435,9 @@ __metadata:
84358435
languageName: node
84368436
linkType: hard
84378437

8438-
"@sentry/wizard@npm:3.34.4":
8439-
version: 3.34.4
8440-
resolution: "@sentry/wizard@npm:3.34.4"
8438+
"@sentry/wizard@npm:3.36.0":
8439+
version: 3.36.0
8440+
resolution: "@sentry/wizard@npm:3.36.0"
84418441
dependencies:
84428442
"@clack/core": ^0.3.4
84438443
"@clack/prompts": 0.7.0
@@ -8459,7 +8459,7 @@ __metadata:
84598459
yargs: ^16.2.0
84608460
bin:
84618461
sentry-wizard: dist/bin.js
8462-
checksum: 95bd53a1f351f31a20159168e944ef70ea2a4c0c7090c1ececb7e9ff576e376d62d1bdfddbb1ec7a7edf87ac5baba156aa6e46f15615b7b43f2baab399fac98e
8462+
checksum: 39c4e8066ea96f6e128c270cf00ebeb7d9992f9228edbe5ca290efab8b1b4817e54191860a53e917df5428d133b97cec6395ea3ee857e5156c0ed47832f51758
84638463
languageName: node
84648464
linkType: hard
84658465

0 commit comments

Comments
 (0)