Søk er case-insensitive

Co-authored-by: Markus A. R. Johansen <markus.aleksander.rakil.johansen@nav.no>
Co-authored-by: Amalie Erdal Mansåker <amalie.erdal.mansaker@nav.no>
This commit is contained in:
Sindre Kjelsrud 2023-07-26 13:26:17 +02:00
parent 0271b96cbf
commit 7c7115dfe9
2 changed files with 13 additions and 11 deletions

View file

@ -34,16 +34,11 @@ class FeilmeldingRepository {
} }
fun hentSokteFeilmeldinger(sokeord: String): List<Feilmelding> = transaction { fun hentSokteFeilmeldinger(sokeord: String): List<Feilmelding> = transaction {
/* val query = FeilmeldingTable.selectAll() val sok = "%${sokeord.lowercase()}%"
tittel?.let {
query.andWhere { FeilmeldingTable.tittel like sokeord }
}
beskrivelse?.let {
query.andWhere { FeilmeldingTable.beskrivelse like sokeord }
} */
val sok = "%${sokeord}%"
FeilmeldingTable.select((FeilmeldingTable.tittel like sok) or (FeilmeldingTable.beskrivelse like sok)).map(::radTilFeilmelding) FeilmeldingTable.select((FeilmeldingTable.tittel.lowerCase() like sok)
or (FeilmeldingTable.beskrivelse.lowerCase() like sok))
.map(::radTilFeilmelding)
} }
} }

View file

@ -17,7 +17,6 @@ import java.time.LocalDateTime
import kotlin.test.assertEquals import kotlin.test.assertEquals
import org.jetbrains.exposed.sql.Database as ExposedDatabase import org.jetbrains.exposed.sql.Database as ExposedDatabase
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)
class FeilmeldingTest { class FeilmeldingTest {
private val database = Database(dbconfig()).configureFlyway() private val database = Database(dbconfig()).configureFlyway()
@ -83,7 +82,7 @@ class FeilmeldingTest {
@Test @Test
fun `Henter feilmeldinger som har søkestreng som substreng`() { fun `Henter feilmeldinger som har søkestreng som substreng`() {
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("Teste") val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("este")
assertEquals(1, sokeresultat.size) assertEquals(1, sokeresultat.size)
assertEquals("Test", sokeresultat[0].tittel) assertEquals("Test", sokeresultat[0].tittel)
assertEquals("Testesen", sokeresultat[0].beskrivelse) assertEquals("Testesen", sokeresultat[0].beskrivelse)
@ -94,4 +93,12 @@ class FeilmeldingTest {
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("abrakadabra") val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("abrakadabra")
assertEquals(0, sokeresultat.size) assertEquals(0, sokeresultat.size)
} }
@Test
fun `Søk er ikke case sensitivt`() {
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("test")
assertEquals(1, sokeresultat.size)
assertEquals("Test", sokeresultat[0].tittel)
assertEquals("Testesen", sokeresultat[0].beskrivelse)
}
} }