Skip to content

Commit

Permalink
BEAKING CHANGE(loggerName): Reintroduced loggerName
Browse files Browse the repository at this point in the history
  • Loading branch information
Leftwitch committed Sep 14, 2020
1 parent 921f15c commit e1483f3
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 25 deletions.
37 changes: 22 additions & 15 deletions plugins/firebase_lumberdash/lib/src/firebase_lumberdash.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,24 +7,27 @@ class FirebaseLumberdash extends LumberdashClient {
final FirebaseAnalytics firebaseAnalyticsClient;
final String releaseVersion;
final String environment;
final String loggerName;

/// Instantiates a [LumberdashClient] with a [FirebaseAnalytics]
/// client, [releaseVersion] and [environment], all parameters
///[loggerName], [releaseVersion] and [environment], all parameters
/// used by the [FirebaseAnalytics] client when sending a log.
FirebaseLumberdash({
@required this.firebaseAnalyticsClient,
@required this.releaseVersion,
@required this.environment,
}) : assert(firebaseAnalyticsClient != null),
FirebaseLumberdash(
{@required this.firebaseAnalyticsClient,
@required this.releaseVersion,
@required this.environment,
@required this.loggerName})
: assert(firebaseAnalyticsClient != null),
assert(releaseVersion != null),
assert(environment != null);
assert(environment != null),
assert(loggerName != null);

/// Sends a log to Firebase Analytics using the given [FirebaseAnalytics] client
@override
void logMessage(String message, [Map<String, String> extras]) {
firebaseAnalyticsClient.logEvent(
name: message,
parameters: _buildParameters('MESSAGE', extras),
name: this.loggerName,
parameters: _buildParameters('MESSAGE', message, extras),
);
}

Expand All @@ -33,8 +36,8 @@ class FirebaseLumberdash extends LumberdashClient {
@override
void logWarning(String message, [Map<String, String> extras]) {
firebaseAnalyticsClient.logEvent(
name: message,
parameters: _buildParameters('WARNING', extras),
name: this.loggerName,
parameters: _buildParameters('WARNING', message, extras),
);
}

Expand All @@ -43,29 +46,33 @@ class FirebaseLumberdash extends LumberdashClient {
@override
void logFatal(String message, [Map<String, String> extras]) {
firebaseAnalyticsClient.logEvent(
name: message,
parameters: _buildParameters('FATAL', extras),
name: this.loggerName,
parameters: _buildParameters('FATAL', message, extras),
);
}

/// Sends a log to Firebase Analytics using the given [FirebaseAnalytics] with level
/// [error]
@override
void logError(dynamic exception, [dynamic stacktrace]) {
String message = exception?.toString() ?? 'firebase_lumberdash_error';
firebaseAnalyticsClient.logEvent(
name: exception?.toString() ?? 'firebase_lumberdash_error',
parameters: _buildParameters('ERROR', {'stacktrace': stacktrace}),
name: this.loggerName,
parameters:
_buildParameters('ERROR', message, {'stacktrace': stacktrace}),
);
}

Map<String, String> _buildParameters(
String logLevel,
String message,
Map<String, String> extras,
) {
Map<String, String> parameters = {
'environment': environment,
'release': releaseVersion,
'level': logLevel,
'message': message
};
if (extras != null) {
parameters.addAll(extras);
Expand Down
47 changes: 37 additions & 10 deletions plugins/firebase_lumberdash/test/firebase_lumberdash_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,20 @@ main() {
FirebaseLumberdash firebaseLumberdash;
String releaseVersion = '1.0.0';
String environment = 'development';
String loggerName = 'FirebaseLumberdashLogger';
Map<String, String> extras = {
'foo': 'bar',
'test': 'passed',
};
String message = 'test-message';

setUp(() {
firebaseAnalytics = MockFirebaseAnalytics();
firebaseLumberdash = FirebaseLumberdash(
firebaseAnalyticsClient: firebaseAnalytics,
releaseVersion: releaseVersion,
environment: environment,
loggerName: loggerName,
);
});

Expand All @@ -32,6 +35,7 @@ main() {
firebaseAnalyticsClient: null,
releaseVersion: releaseVersion,
environment: environment,
loggerName: loggerName,
);
} catch (error) {
expect(error, isAssertionError);
Expand All @@ -44,6 +48,7 @@ main() {
firebaseAnalyticsClient: firebaseAnalytics,
releaseVersion: null,
environment: environment,
loggerName: loggerName,
);
} catch (error) {
expect(error, isAssertionError);
Expand All @@ -56,6 +61,20 @@ main() {
firebaseAnalyticsClient: firebaseAnalytics,
releaseVersion: releaseVersion,
environment: null,
loggerName: loggerName,
);
} catch (error) {
expect(error, isAssertionError);
}
});

test('throws AssertionError when loggerName is null', () {
try {
FirebaseLumberdash(
firebaseAnalyticsClient: firebaseAnalytics,
releaseVersion: releaseVersion,
environment: environment,
loggerName: null,
);
} catch (error) {
expect(error, isAssertionError);
Expand All @@ -64,14 +83,15 @@ main() {
});

test('logMessage w/extras', () {
firebaseLumberdash.logMessage('myMessage', extras);
firebaseLumberdash.logMessage(message, extras);
verify(
firebaseAnalytics.logEvent(
name: 'myMessage',
name: loggerName,
parameters: {
'environment': environment,
'release': releaseVersion,
'level': 'MESSAGE',
'message': message,
'foo': 'bar',
'test': 'passed',
},
Expand All @@ -80,12 +100,13 @@ main() {
});

test('logMessage w/out extras', () {
firebaseLumberdash.logMessage('myMessage', null);
firebaseLumberdash.logMessage(message, null);
verify(
firebaseAnalytics.logEvent(
name: 'myMessage',
name: loggerName,
parameters: {
'environment': environment,
'message': message,
'release': releaseVersion,
'level': 'MESSAGE',
},
Expand All @@ -99,11 +120,12 @@ main() {
firebaseLumberdash.logError(exception, stacktrace);
verify(
firebaseAnalytics.logEvent(
name: exception,
name: loggerName,
parameters: {
'environment': environment,
'release': releaseVersion,
'level': 'ERROR',
'message': exception,
'stacktrace': stacktrace,
},
),
Expand All @@ -115,10 +137,11 @@ main() {
firebaseLumberdash.logError(exception, null);
verify(
firebaseAnalytics.logEvent(
name: exception,
name: loggerName,
parameters: {
'environment': environment,
'release': releaseVersion,
'message': exception,
'level': 'ERROR',
'stacktrace': null,
},
Expand All @@ -130,10 +153,11 @@ main() {
firebaseLumberdash.logFatal('myFatal', extras);
verify(
firebaseAnalytics.logEvent(
name: 'myFatal',
name: loggerName,
parameters: {
'environment': environment,
'release': releaseVersion,
'message': 'myFatal',
'level': 'FATAL',
'foo': 'bar',
'test': 'passed',
Expand All @@ -146,10 +170,11 @@ main() {
firebaseLumberdash.logFatal('myFatal', null);
verify(
firebaseAnalytics.logEvent(
name: 'myFatal',
name: loggerName,
parameters: {
'environment': environment,
'release': releaseVersion,
'message': 'myFatal',
'level': 'FATAL',
},
),
Expand All @@ -160,11 +185,12 @@ main() {
firebaseLumberdash.logWarning('myWarning', extras);
verify(
firebaseAnalytics.logEvent(
name: 'myWarning',
name: loggerName,
parameters: {
'environment': environment,
'release': releaseVersion,
'level': 'WARNING',
'message': 'myWarning',
'foo': 'bar',
'test': 'passed',
},
Expand All @@ -176,10 +202,11 @@ main() {
firebaseLumberdash.logWarning('myWarning', null);
verify(
firebaseAnalytics.logEvent(
name: 'myWarning',
name: loggerName,
parameters: {
'environment': environment,
'release': releaseVersion,
'message': 'myWarning',
'level': 'WARNING',
},
),
Expand Down

0 comments on commit e1483f3

Please sign in to comment.