Skip to content

Commit b20202a

Browse files
abdelhamid-f-nassera7medev
authored andcommitted
feat: add session replay mode argument to reprosteps api
1 parent 17f2c8d commit b20202a

File tree

8 files changed

+32
-10
lines changed

8 files changed

+32
-10
lines changed

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);

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: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@ export interface ReproConfig {
1515
*/
1616
crash?: ReproStepsMode;
1717

18+
/**
19+
*e Repro steps mode for session replay.
20+
*
21+
* @default ReproStepsMode.enabledWithNoScreenshots
22+
*/
23+
sessionReplay?: ReproStepsMode;
24+
1825
/**
1926
* Repro steps mode for both bug and crash reporting.
2027
*

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;

test/modules/Instabug.spec.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -415,26 +415,28 @@ describe('Instabug Module', () => {
415415

416416
const bug = ReproStepsMode.disabled;
417417
const crash = ReproStepsMode.enabled;
418-
const config = { bug, crash };
418+
const sessionReplay = ReproStepsMode.enabledWithNoScreenshots;
419+
const config = { bug, crash, sessionReplay };
419420

420421
Instabug.setReproStepsConfig(config);
421422

422423
expect(NativeInstabug.setReproStepsConfig).toBeCalledTimes(1);
423-
expect(NativeInstabug.setReproStepsConfig).toBeCalledWith(bug, crash);
424+
expect(NativeInstabug.setReproStepsConfig).toBeCalledWith(bug, crash, sessionReplay);
424425
});
425426

426427
it('setReproStepsConfig should prioritize `all` over `bug` and `crash`', () => {
427428
Platform.OS = 'android';
428429

429430
const bug = ReproStepsMode.disabled;
430431
const crash = ReproStepsMode.enabled;
432+
const sessionReplay = ReproStepsMode.enabledWithNoScreenshots;
431433
const all = ReproStepsMode.enabledWithNoScreenshots;
432-
const config = { all, bug, crash };
434+
const config = { all, bug, crash, sessionReplay };
433435

434436
Instabug.setReproStepsConfig(config);
435437

436438
expect(NativeInstabug.setReproStepsConfig).toBeCalledTimes(1);
437-
expect(NativeInstabug.setReproStepsConfig).toBeCalledWith(all, all);
439+
expect(NativeInstabug.setReproStepsConfig).toBeCalledWith(all, all, all);
438440
});
439441

440442
it('setReproStepsConfig should use defaults for `bug` and `crash`', () => {
@@ -448,6 +450,7 @@ describe('Instabug Module', () => {
448450
expect(NativeInstabug.setReproStepsConfig).toBeCalledWith(
449451
ReproStepsMode.enabled,
450452
ReproStepsMode.enabledWithNoScreenshots,
453+
ReproStepsMode.enabled,
451454
);
452455
});
453456

0 commit comments

Comments
 (0)