Skip to content

Commit 4f9f0e8

Browse files
author
Ali Abdelfattah
authored
Merge pull request #460 from Instabug/custom/ios-sdk-debug-logs
Mapping for `Instabug.setSdkDebugLogsLevel` [MOB-4367]
2 parents 6f8c16b + 1391d3d commit 4f9f0e8

File tree

8 files changed

+69
-2
lines changed

8 files changed

+69
-2
lines changed

InstabugSample/ios/InstabugSampleTests/InstabugSampleTests.m

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ - (void)testSetReproStepsMode {
207207
OCMVerify([mock setReproStepsMode:reproStepsMode]);
208208
}
209209

210+
- (void)testSetSdkDebugLogsLevel {
211+
id mock = OCMClassMock([Instabug class]);
212+
IBGSDKDebugLogsLevel sdkDebugLogsLevel = IBGSDKDebugLogsLevelVerbose;
213+
214+
OCMStub([mock setSdkDebugLogsLevel:sdkDebugLogsLevel]);
215+
[self.instabugBridge setSdkDebugLogsLevel:sdkDebugLogsLevel];
216+
OCMVerify([mock setSdkDebugLogsLevel:sdkDebugLogsLevel]);
217+
}
218+
210219
- (void)testSetUserAttribute {
211220
id mock = OCMClassMock([Instabug class]);
212221
NSString *key = @"key";

__tests__/index.spec.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ describe('Instabug Module', () => {
4646
const logDebug = sinon.spy(NativeModules.Instabug, 'logDebug');
4747
const clearLogs = sinon.spy(NativeModules.Instabug, 'clearLogs');
4848
const setReproStepsMode = sinon.spy(NativeModules.Instabug, 'setReproStepsMode');
49+
const setSdkDebugLogsLevel = sinon.spy(NativeModules.Instabug, 'setSdkDebugLogsLevel');
4950
const setUserAttribute = sinon.spy(NativeModules.Instabug, 'setUserAttribute');
5051
const getUserAttribute = sinon.spy(NativeModules.Instabug, 'getUserAttribute');
5152
const removeUserAttribute = sinon.spy(NativeModules.Instabug, 'removeUserAttribute');
@@ -351,6 +352,13 @@ describe('Instabug Module', () => {
351352

352353
});
353354

355+
it('should call the native method setSdkDebugLogsLevel', () => {
356+
const debugLevel = Instabug.sdkDebugLogsLevel.sdkDebugLogsLevelVerbose;
357+
Instabug.setSdkDebugLogsLevel(debugLevel);
358+
359+
expect(setSdkDebugLogsLevel.calledOnceWithExactly(debugLevel)).toBe(true);
360+
});
361+
354362
it('should call the native method setUserAttribute', () => {
355363

356364
const key = 'age';

index.d.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,9 @@ export function setDidSelectPromptOptionHandler(
146146
export function setSessionProfilerEnabled(
147147
sessionProfilerEnabled: boolean
148148
): void;
149+
export function setSdkDebugLogsLevel(
150+
sdkDebugLogsLevel: sdkDebugLogsLevel
151+
): void;
149152
export function getUnreadMessagesCount(
150153
messageCountCallback: (count: number) => void
151154
): void;
@@ -248,6 +251,12 @@ export enum invocationOptions {
248251
invocationOptionsCommentFieldRequired,
249252
invocationOptionsDisablePostSendingDialog
250253
}
254+
export enum sdkDebugLogsLevel {
255+
sdkDebugLogsLevelVerbose,
256+
sdkDebugLogsLevelDebug,
257+
sdkDebugLogsLevelError,
258+
sdkDebugLogsLevelNone,
259+
}
251260
export enum extendedBugReportMode {
252261
enabledWithRequiredFields,
253262
enabledWithOptionalFields,

index.js

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,16 @@ const InstabugModule = {
144144
Instabug.setSessionProfilerEnabled(sessionProfilerEnabled);
145145
},
146146

147+
/**
148+
* This API sets the verbosity level of logs used to debug The SDK. The defualt value in debug
149+
* mode is sdkDebugLogsLevelVerbose and in production is sdkDebugLogsLevelError.
150+
* @param {sdkDebugLogsLevel} sdkDebugLogsLevel - The verbosity level of logs.
151+
*
152+
*/
153+
setSdkDebugLogsLevel(sdkDebugLogsLevel) {
154+
Instabug.setSdkDebugLogsLevel(sdkDebugLogsLevel);
155+
},
156+
147157
/* istanbul ignore next */
148158
/**
149159
* @deprecated use {@link Replies.getUnreadRepliesCount}
@@ -811,6 +821,19 @@ const InstabugModule = {
811821
invocationOptionsDisablePostSendingDialog: Instabug.disablePostSendingDialog
812822
},
813823

824+
/**
825+
* Verbosity level of the SDK debug logs. This has nothing to do with IBGLog,
826+
* and only affect the logs used to debug the SDK itself.
827+
* @readonly
828+
* @enum {number}
829+
*/
830+
sdkDebugLogsLevel: {
831+
sdkDebugLogsLevelVerbose: Instabug.sdkDebugLogsLevelVerbose,
832+
sdkDebugLogsLevelDebug: Instabug.sdkDebugLogsLevelDebug,
833+
sdkDebugLogsLevelError: Instabug.sdkDebugLogsLevelError,
834+
sdkDebugLogsLevelNone: Instabug.sdkDebugLogsLevelNone,
835+
},
836+
814837
/**
815838
* The extended bug report mode
816839
* @readonly

ios/RNInstabug/InstabugReactBridge.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@
3232

3333
- (void)setSessionProfilerEnabled:(BOOL)sessionProfilerEnabled;
3434

35+
- (void)setSdkDebugLogsLevel:(IBGSDKDebugLogsLevel)sdkDebugLogsLevel;
36+
3537
- (void)setLocale:(IBGLocale)locale;
3638

3739
- (void)setColorTheme:(IBGColorTheme)colorTheme;
@@ -98,5 +100,4 @@
98100
- (void)logError:(NSString *)log;
99101
- (void)clearLogs;
100102

101-
102103
@end

ios/RNInstabug/InstabugReactBridge.m

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,10 @@ - (dispatch_queue_t)methodQueue {
202202
currentReport = nil;
203203
}
204204

205+
RCT_EXPORT_METHOD(setSdkDebugLogsLevel:(IBGSDKDebugLogsLevel)sdkDebugLogsLevel) {
206+
[Instabug setSdkDebugLogsLevel:sdkDebugLogsLevel];
207+
}
208+
205209
RCT_EXPORT_METHOD(setLocale:(IBGLocale)locale) {
206210
[Instabug setLocale:locale];
207211
}
@@ -448,7 +452,12 @@ - (NSDictionary *)constantsToExport
448452
@"localeSwedish": @(IBGLocaleSwedish),
449453
@"localeTurkish": @(IBGLocaleTurkish),
450454

451-
455+
@"sdkDebugLogsLevelVerbose": @(IBGSDKDebugLogsLevelVerbose),
456+
@"sdkDebugLogsLevelDebug": @(IBGSDKDebugLogsLevelDebug),
457+
@"sdkDebugLogsLevelError": @(IBGSDKDebugLogsLevelError),
458+
@"sdkDebugLogsLevelNone": @(IBGSDKDebugLogsLevelNone),
459+
460+
452461
@"emailFieldHidden": @(IBGBugReportingInvocationOptionEmailFieldHidden),
453462
@"emailFieldOptional": @(IBGBugReportingInvocationOptionEmailFieldOptional),
454463
@"commentFieldRequired": @(IBGBugReportingInvocationOptionCommentFieldRequired),

ios/RNInstabug/RCTConvert+InstabugEnums.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@ @implementation RCTConvert (InstabugEnums)
4747
@"reproStepsEnabledWithNoScreenshots": @(IBGUserStepsModeEnabledWithNoScreenshots)
4848
}), IBGUserStepsModeEnabledWithNoScreenshots, integerValue)
4949

50+
RCT_ENUM_CONVERTER(IBGSDKDebugLogsLevel, (@{
51+
@"sdkDebugLogsLevelVerbose": @(IBGSDKDebugLogsLevelVerbose),
52+
@"sdkDebugLogsLevelDebug": @(IBGSDKDebugLogsLevelDebug),
53+
@"sdkDebugLogsLevelError": @(IBGSDKDebugLogsLevelError),
54+
@"sdkDebugLogsLevelNone": @(IBGSDKDebugLogsLevelNone),
55+
}), IBGSDKDebugLogsLevelError, integerValue)
56+
5057
RCT_ENUM_CONVERTER(IBGExtendedBugReportMode, (@{
5158
@"enabledWithRequiredFields": @(IBGExtendedBugReportModeEnabledWithRequiredFields),
5259
@"enabledWithOptionalFields": @(IBGExtendedBugReportModeEnabledWithOptionalFields),

jest/mockInstabug.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ jest.mock('NativeModules', () => {
2626
logDebug: jest.fn(),
2727
clearLogs: jest.fn(),
2828
setReproStepsMode: jest.fn(),
29+
setSdkDebugLogsLevel: jest.fn(),
2930
setUserAttribute: jest.fn(),
3031
getUserAttribute: jest.fn((_, cb) => cb('24')),
3132
removeUserAttribute: jest.fn(),

0 commit comments

Comments
 (0)