🚧 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:
		
							parent
							
								
									8134cfc239
								
							
						
					
					
						commit
						d0164c2688
					
				
					 6 changed files with 49 additions and 92 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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()
 | 
			
		||||
    }
 | 
			
		||||
    */
 | 
			
		||||
}
 | 
			
		||||
		Reference in a new issue