AbsaOSS / AbsaOSS/hyperdrive-trigger

Using pattern matchers in tests

Aberta
#796 3 comentários 0 reações 0 responsáveis Ver no GitHub
backend refactoring
Linguagem predominante
TypeScript
Estrelas
8
Forks
5
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

## Context
In PR [https://github.com/AbsaOSS/hyperdrive-trigger/pull/791#discussion_r1130222033](https://github.com/AbsaOSS/hyperdrive-trigger/pull/791#discussion_r1130222033) we discussed with @jozefbakus an option to use pattern matching in scala test. This will reduce the boilerplate for testing that `Option`, `Try`, `Either`, or any other sum type has a good result.

Here is an actual example taken from `ChekpointServiceTest`
```scala
result.size shouldBe 2
result.head._1 shouldBe "my.topic"
result.head._2 should contain theSameElementsAs Map(2 -> 2021L, 1 -> 1021L, 3 -> 3021L, 0 -> 21L)
result.toSeq(1)._1 shouldBe "my.other.topic"
result.toSeq(1)._2 should contain theSameElementsAs Map(0 -> 0L)
```
which could be reduced to
```scala
result shouldBe Seq(
("my.topic", Map(0 -> 21L, 1 -> 1021L, 2 -> 2021L, 3 -> 3021L)),
("my.other.topic", Map(0 -> 0L))
)
```
or if we don't care about exact values, we can use `should matchPatter { case => }
```scala
val result = underTest.getLatestCommittedOffset(params)(ugi)

result.get.isDefined shouldBe true
result.get shouldBe Some(offsets)
```
which will become
```scala
result should matchPattern { case Success(Some(_)) => }
```

## Objective
* Rewrite tests to use appropriate matchers [https://www.scalatest.org/user_guide/using_matchers](https://www.scalatest.org/user_guide/using_matchers)
* Ensure that all the cases as covered as they were before refactoring

Guia de contribuição

Abrir o guia de contribuição

Avaliação

Esta issue ainda não foi avaliada.

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.