Skip to content
This repository was archived by the owner on Aug 30, 2023. It is now read-only.

Commit

Permalink
fix: Timber adds breadcrumb even if event level is < minEventLevel (#480
Browse files Browse the repository at this point in the history
)
  • Loading branch information
marandaneto authored Jul 6, 2020
1 parent 5f6bea5 commit 44ef671
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,6 @@ class SentryTimberTree(
*/
private fun isLoggable(level: SentryLevel, minLevel: SentryLevel): Boolean = level.ordinal >= minLevel.ordinal

/**
* Compares the minLevel given by the user and the level given by the event
* to capture an event or not.
*/
override fun isLoggable(tag: String?, priority: Int): Boolean {
val level = getSentryLevel(priority)

// checks only the event level
return isLoggable(level, minEventLevel)
}

/**
* Captures a Sentry Event if the min. level is equal or higher than the min. required level.
*/
Expand All @@ -47,26 +36,28 @@ class SentryTimberTree(
* Captures an event with the given attributes
*/
private fun captureEvent(sentryLevel: SentryLevel, tag: String?, msg: String, throwable: Throwable?) {
val sentryEvent = SentryEvent().apply {
if (isLoggable(sentryLevel, minEventLevel)) {
val sentryEvent = SentryEvent().apply {

level = sentryLevel
level = sentryLevel

throwable?.let {
setThrowable(it)
}
throwable?.let {
setThrowable(it)
}

message = Message().apply {
formatted = msg
}
message = Message().apply {
formatted = msg
}

tag?.let {
setTag("TimberTag", it)
tag?.let {
setTag("TimberTag", it)
}

logger = "Timber"
}

logger = "Timber"
hub.captureEvent(sentryEvent)
}

hub.captureEvent(sentryEvent)
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,28 +171,28 @@ class SentryTimberTreeTest {

@Test
fun `Tree adds a breadcrumb if min level is equal`() {
val sut = fixture.getSut(minEventLevel = SentryLevel.INFO)
val sut = fixture.getSut()
sut.i(Throwable("test"))
verify(fixture.hub).addBreadcrumb(any<Breadcrumb>())
}

@Test
fun `Tree adds a breadcrumb if min level is higher`() {
val sut = fixture.getSut(minEventLevel = SentryLevel.INFO)
val sut = fixture.getSut()
sut.e(Throwable("test"))
verify(fixture.hub).addBreadcrumb(any<Breadcrumb>())
}

@Test
fun `Tree won't add a breadcrumb if min level is lower`() {
val sut = fixture.getSut(minEventLevel = SentryLevel.DEBUG, minBreadcrumbLevel = SentryLevel.ERROR)
val sut = fixture.getSut(minBreadcrumbLevel = SentryLevel.ERROR)
sut.i(Throwable("test"))
verify(fixture.hub, never()).addBreadcrumb(any<Breadcrumb>())
}

@Test
fun `Tree adds a breadcrumb with given level`() {
val sut = fixture.getSut(minEventLevel = SentryLevel.INFO)
val sut = fixture.getSut()
sut.e(Throwable("test"))
verify(fixture.hub).addBreadcrumb(check<Breadcrumb> {
assertEquals(SentryLevel.ERROR, it.level)
Expand All @@ -201,7 +201,7 @@ class SentryTimberTreeTest {

@Test
fun `Tree adds a breadcrumb with Timber category`() {
val sut = fixture.getSut(minEventLevel = SentryLevel.INFO)
val sut = fixture.getSut()
sut.e(Throwable("test"))
verify(fixture.hub).addBreadcrumb(check<Breadcrumb> {
assertEquals("Timber", it.category)
Expand All @@ -210,7 +210,7 @@ class SentryTimberTreeTest {

@Test
fun `Tree adds a breadcrumb with exception message`() {
val sut = fixture.getSut(minEventLevel = SentryLevel.INFO)
val sut = fixture.getSut()
sut.e(Throwable("test"))
verify(fixture.hub).addBreadcrumb(check<Breadcrumb> {
assertTrue(it.message!!.contains("test"))
Expand Down

0 comments on commit 44ef671

Please sign in to comment.