Skip to content

Commit b8e19eb

Browse files
abdelhamid-f-nasserHeshamMegid
authored andcommitted
feat: add new session replay argument for repro steps api (#1033)
Jira ID: IBGCRASH-20025
1 parent 1fdbd40 commit b8e19eb

File tree

11 files changed

+41
-20
lines changed

11 files changed

+41
-20
lines changed

android/src/main/java/com/instabug/reactlibrary/ArgsRegistry.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import com.instabug.bug.BugReporting;
66
import com.instabug.bug.invocation.Option;
77
import com.instabug.featuresrequest.ActionType;
8-
98
import com.instabug.library.InstabugColorTheme;
109
import com.instabug.library.InstabugCustomTextPlaceHolder.Key;
1110
import com.instabug.library.OnSdkDismissCallback.DismissType;

android/src/main/java/com/instabug/reactlibrary/RNInstabugAPMModule.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,6 @@ public String getName() {
3939

4040
/**
4141
* Sets the printed logs priority. Filter to one of the following levels.
42-
*
43-
* @param logLevel the priority level.
4442
*/
4543
@ReactMethod
4644
public void ibgSleep() {

android/src/main/java/com/instabug/reactlibrary/RNInstabugReactnativeModule.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -742,17 +742,19 @@ public void run() {
742742
}
743743

744744
@ReactMethod
745-
public void setReproStepsConfig(final String bugMode, final String crashMode) {
745+
public void setReproStepsConfig(final String bugMode, final String crashMode, final String sessionReplayMode) {
746746
MainThreadHandler.runOnMainThread(new Runnable() {
747747
@Override
748748
public void run() {
749749
try {
750750
final Integer resolvedBugMode = ArgsRegistry.reproModes.get(bugMode);
751751
final Integer resolvedCrashMode = ArgsRegistry.reproModes.get(crashMode);
752+
final Integer resolvedSessionReplayMode = ArgsRegistry.reproModes.get(sessionReplayMode);
752753

753754
final ReproConfigurations config = new ReproConfigurations.Builder()
754755
.setIssueMode(IssueType.Bug, resolvedBugMode)
755756
.setIssueMode(IssueType.Crash, resolvedCrashMode)
757+
.setIssueMode(IssueType.SessionReplay, resolvedSessionReplayMode)
756758
.build();
757759

758760
Instabug.setReproConfigurations(config);

android/src/test/java/com/instabug/reactlibrary/RNInstabugReactnativeModuleTest.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -261,19 +261,21 @@ public void tearDown() {
261261
public void givenArg$setReproStepsConfig_whenQuery_thenShouldCallNativeApiWithArg() {
262262
String bug = "reproStepsEnabled";
263263
String crash = "reproStepsDisabled";
264+
String sessionReplay = "reproStepsEnabled";
264265

265266
ReproConfigurations config = mock(ReproConfigurations.class);
266267
MockedConstruction<ReproConfigurations.Builder> mReproConfigurationsBuilder = mockConstruction(ReproConfigurations.Builder.class, (mock, context) -> {
267268
when(mock.setIssueMode(anyInt(), anyInt())).thenReturn(mock);
268269
when(mock.build()).thenReturn(config);
269270
});
270271

271-
rnModule.setReproStepsConfig(bug, crash);
272+
rnModule.setReproStepsConfig(bug, crash, sessionReplay);
272273

273274
ReproConfigurations.Builder builder = mReproConfigurationsBuilder.constructed().get(0);
274275

275276
verify(builder).setIssueMode(IssueType.Bug, ReproMode.EnableWithScreenshots);
276277
verify(builder).setIssueMode(IssueType.Crash, ReproMode.Disable);
278+
verify(builder).setIssueMode(IssueType.SessionReplay, ReproMode.EnableWithScreenshots);
277279
verify(builder).build();
278280

279281
mockInstabug.verify(() -> Instabug.setReproConfigurations(config));

examples/default/ios/InstabugTests/InstabugSampleTests.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,11 +214,13 @@ - (void)testSetReproStepsConfig {
214214
id mock = OCMClassMock([Instabug class]);
215215
IBGUserStepsMode bugMode = IBGUserStepsModeDisable;
216216
IBGUserStepsMode crashMode = IBGUserStepsModeEnable;
217+
IBGUserStepsMode sessionReplayMode = IBGUserStepsModeEnabledWithNoScreenshots;
217218

218-
[self.instabugBridge setReproStepsConfig:bugMode :crashMode];
219+
[self.instabugBridge setReproStepsConfig:bugMode :crashMode :sessionReplayMode];
219220

220221
OCMVerify([mock setReproStepsFor:IBGIssueTypeBug withMode:bugMode]);
221222
OCMVerify([mock setReproStepsFor:IBGIssueTypeCrash withMode:crashMode]);
223+
OCMVerify([mock setReproStepsFor:IBGIssueTypeSessionReplay withMode:sessionReplayMode]);
222224
}
223225

224226
- (void)testSetUserAttribute {

ios/RNInstabug/InstabugReactBridge.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@
5757

5858
- (void)logVerbose:(NSString *)log;
5959

60-
- (void)setReproStepsConfig:(IBGUserStepsMode)bugMode:(IBGUserStepsMode)crashMode;
60+
- (void)setReproStepsConfig:(IBGUserStepsMode)bugMode:(IBGUserStepsMode)crashMode:(IBGUserStepsMode)sessionReplayMode;
6161

6262
- (void)setUserAttribute:(NSString *)key withValue:(NSString *)value;
6363

ios/RNInstabug/InstabugReactBridge.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,10 @@ - (dispatch_queue_t)methodQueue {
6767
IBGAPM.hotAppLaunchEnabled = NO;
6868
}
6969

70-
RCT_EXPORT_METHOD(setReproStepsConfig:(IBGUserStepsMode)bugMode :(IBGUserStepsMode)crashMode) {
70+
RCT_EXPORT_METHOD(setReproStepsConfig:(IBGUserStepsMode)bugMode :(IBGUserStepsMode)crashMode:(IBGUserStepsMode)sessionReplayMode) {
7171
[Instabug setReproStepsFor:IBGIssueTypeBug withMode:bugMode];
7272
[Instabug setReproStepsFor:IBGIssueTypeCrash withMode:crashMode];
73+
[Instabug setReproStepsFor:IBGIssueTypeSessionReplay withMode:sessionReplayMode];
7374
}
7475

7576
RCT_EXPORT_METHOD(setFileAttachment:(NSString *)fileLocation) {

src/models/ReproConfig.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,30 @@ import type { ReproStepsMode } from '../utils/Enums';
22

33
export interface ReproConfig {
44
/**
5-
* Repro steps mode for bug reporting.
5+
* Repro steps mode for Bug Reporting.
66
*
77
* @default ReproStepsMode.enabled
88
*/
99
bug?: ReproStepsMode;
1010

1111
/**
12-
* Repro steps mode for crash reporting.
12+
* Repro steps mode for Crash Reporting.
1313
*
1414
* @default ReproStepsMode.enabledWithNoScreenshots
1515
*/
1616
crash?: ReproStepsMode;
1717

1818
/**
19-
* Repro steps mode for both bug and crash reporting.
19+
* Repro steps mode for Session Replay.
2020
*
21-
* When this is set, `bug` and `crash` will be ignored.
21+
* @default ReproStepsMode.enabled
22+
*/
23+
sessionReplay?: ReproStepsMode;
24+
25+
/**
26+
* Repro steps mode for Bug Reporting, Crash Reporting, and Session Replay.
27+
*
28+
* When this is set, `bug`, `crash`, and `sessionReplay` will be ignored.
2229
*/
2330
all?: ReproStepsMode;
2431
}

src/modules/Instabug.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,16 +313,19 @@ export const clearLogs = () => {
313313
* Instabug.setReproStepsConfig({
314314
* bug: ReproStepsMode.enabled,
315315
* crash: ReproStepsMode.disabled,
316+
* sessionReplay: ReproStepsMode.enabled,
316317
* });
317318
* ```
318319
*/
319320
export const setReproStepsConfig = (config: ReproConfig) => {
320321
let bug = config.bug ?? ReproStepsMode.enabled;
321322
let crash = config.crash ?? ReproStepsMode.enabledWithNoScreenshots;
323+
let sessionReplay = config.sessionReplay ?? ReproStepsMode.enabled;
322324

323325
if (config.all != null) {
324326
bug = config.all;
325327
crash = config.all;
328+
sessionReplay = config.all;
326329
}
327330

328331
// There's an issue with crashes repro steps with screenshots in the iOS SDK
@@ -334,7 +337,7 @@ export const setReproStepsConfig = (config: ReproConfig) => {
334337
crash = ReproStepsMode.enabledWithNoScreenshots;
335338
}
336339

337-
NativeInstabug.setReproStepsConfig(bug, crash);
340+
NativeInstabug.setReproStepsConfig(bug, crash, sessionReplay);
338341
};
339342

340343
/**

src/native/NativeInstabug.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,11 @@ export interface InstabugNativeModule extends NativeModule {
3737
setNetworkLoggingEnabled(isEnabled: boolean): void;
3838

3939
// Repro Steps APIs //
40-
setReproStepsConfig(bugMode: ReproStepsMode, crashMode: ReproStepsMode): void;
40+
setReproStepsConfig(
41+
bugMode: ReproStepsMode,
42+
crashMode: ReproStepsMode,
43+
sessionReplay: ReproStepsMode,
44+
): void;
4145
setTrackUserSteps(isEnabled: boolean): void;
4246
reportScreenChange(firstScreen: string): void;
4347
addPrivateView(nativeTag: number | null): void;

0 commit comments

Comments
 (0)