🚧 Skrevet bedre søkefunksjon som putter mindre press på database

Co-authored-by: Sindre Kjelsrud <sindre.kjelsrud@nav.no>
Co-authored-by: Markus A. R. Johansen <markus.aleksander.rakil.johansen@nav.no>
This commit is contained in:
Amalie Mansåker 2023-07-26 12:18:03 +02:00
parent 8134cfc239
commit d0164c2688
6 changed files with 49 additions and 92 deletions

View file

@ -23,10 +23,13 @@ class FeilmeldingTest {
private val database = Database(dbconfig()).configureFlyway()
private val feilmeldingRepository = FeilmeldingRepository()
private val feilmelding = Feilmelding("Test", "Testesen", LocalDateTime.of(2023,1,1,8,0))
private val feilmelding2 = Feilmelding("Tittel", "Beskrivelse", LocalDateTime.of(2023,2,1,8,0))
@BeforeAll
fun setup() {
ExposedDatabase.connect(database.dataSource)
feilmeldingRepository.lagre(feilmelding)
}
@AfterEach
fun wipe() {
@ -36,7 +39,6 @@ class FeilmeldingTest {
}
@Test
fun `Sett opp testdatabasen riktig`(){
feilmeldingRepository.lagre(feilmelding)
transaction {
assertEquals(1, FeilmeldingTable.selectAll().map {
it
@ -46,7 +48,6 @@ class FeilmeldingTest {
@Test
fun `Lagrer feilmelding i databasen`() {
feilmeldingRepository.lagre(feilmelding)
transaction {
val actual = FeilmeldingTable.selectAll().single()
assertEquals("Test", actual[FeilmeldingTable.tittel])
@ -57,14 +58,35 @@ class FeilmeldingTest {
@Test
fun `Henter alle feilmeldinger i databasen`() {
feilmeldingRepository.lagre(feilmelding)
transaction {
val res: List<Feilmelding> = feilmeldingRepository.hentAlleFeilmeldinger()
val resultat: List<Feilmelding> = feilmeldingRepository.hentAlleFeilmeldinger()
val actual = FeilmeldingTable.selectAll()
assertEquals(actual.map { it }.size, res.size)
assertEquals("Test", res[0].tittel)
assertEquals("Testesen", res[0].beskrivelse)
assertEquals(LocalDateTime.of(2023, 1, 1, 8, 0), res[0].dato)
assertEquals(actual.map { it }.size, resultat.size)
assertEquals("Test", resultat[0].tittel)
assertEquals("Testesen", resultat[0].beskrivelse)
assertEquals(LocalDateTime.of(2023, 1, 1, 8, 0), resultat[0].dato)
}
}
@Test
fun `Henter feilmeldinger som matcher søk`() {
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("Test")
assertEquals(1, sokeresultat.size)
assertEquals("Test", sokeresultat[0].tittel)
assertEquals("Testesen", sokeresultat[0].beskrivelse)
}
@Test
fun `Henter feilmeldinger som har søkestreng som substreng`() {
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("Teste")
assertEquals(1, sokeresultat.size)
assertEquals("Test", sokeresultat[0].tittel)
assertEquals("Testesen", sokeresultat[0].beskrivelse)
}
@Test
fun `Finner ingen feilmeldinger som matcher søk`() {
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("abrakadabra")
assertEquals(0, sokeresultat.size)
}
}

View file

@ -1,49 +0,0 @@
package no.nav.helse.sprik
import no.nav.helse.sprik.db.Database
import no.nav.helse.sprik.db.FeilmeldingRepository
import no.nav.helse.sprik.modell.Feilmelding
import no.nav.helse.sprik.modell.Sokemotor
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
import java.time.LocalDateTime
import kotlin.test.assertEquals
import org.jetbrains.exposed.sql.Database as ExposedDatabase
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
class SokTest {
private val database = Database(dbconfig()).configureFlyway()
private val sokemotor = Sokemotor()
private val feilmeldingRepository = FeilmeldingRepository()
private val feilmelding = Feilmelding("Test", "Testesen", LocalDateTime.of(2023,1,1,8,0))
private val feilmelding2 = Feilmelding("Tittel", "Beskrivelse", LocalDateTime.of(2023,2,1,8,0))
@BeforeAll
fun setup() {
ExposedDatabase.connect(database.dataSource)
feilmeldingRepository.lagre(feilmelding)
feilmeldingRepository.lagre(feilmelding2)
}
@Test
fun `Søk etter nøkkelord i titler`() {
val sokeresultat = sokemotor.sok("Test")
assertEquals(1, sokeresultat.size)
assertEquals(sokeresultat[0].tittel, "Test")
}
@Test
fun `Søk etter nøkkelord i beskrivelser`() {
val sokeresultat = sokemotor.sok("Beskrivelse")
assertEquals(1, sokeresultat.size)
assertEquals(sokeresultat[0].beskrivelse, "Beskrivelse")
}
/*
@Test
fun `Søk etter kategorier`() {
TODO()
}
*/
}