package no.nav.helse.sprik
import com.zaxxer.hikari.HikariConfig
import no.nav.helse.sprik.db.Database
import no.nav.helse.sprik.db.FeilmeldingRepository
import no.nav.helse.sprik.db.FeilmeldingTable
import org.jetbrains.exposed.sql.deleteAll
import org.jetbrains.exposed.sql.selectAll
import org.jetbrains.exposed.sql.transactions.transaction
import org.junit.jupiter.api.AfterAll
import org.junit.jupiter.api.AfterEach
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 FeilmeldingTest {
private val database = Database(dbconfig()).configureFlyway()
private val feilmeldingRepository = FeilmeldingRepository()
@BeforeAll
fun setup() {
ExposedDatabase.connect(database.dataSource)
}
@AfterEach
fun wipe() {
transaction {
FeilmeldingTable.deleteAll()
@Test
fun `Sett opp testdatabasen riktig`(){
feilmeldingRepository.lagre("Hællæ", "skjera bagera", LocalDateTime.of(2023,1,1,8,0))
assertEquals(1, FeilmeldingTable.selectAll().map {
it
}.size)
fun `Lagrer feilmelding i databasen`() {
feilmeldingRepository.lagre("test", "testesen", LocalDateTime.of(2023,1,1,8,0))
val actual = FeilmeldingTable.selectAll().single()
assertEquals("test", actual[FeilmeldingTable.tittel])
assertEquals("testesen", actual[FeilmeldingTable.beskrivelse])
assertEquals(LocalDateTime.of(2023, 1, 1, 8, 0), actual[FeilmeldingTable.dato])