diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt new file mode 100644 index 0000000..64a264c --- /dev/null +++ b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingRepository.kt @@ -0,0 +1,17 @@ +package no.nav.helse.sprik.db + +import org.jetbrains.exposed.sql.insert +import org.jetbrains.exposed.sql.transactions.transaction + +class FeilmeldingRepository { + fun lagre(tittel: String, beskrivelse: String){ + transaction { + FeilmeldingTable.run { + insert { + it[FeilmeldingTable.tittel] = tittel + it[FeilmeldingTable.beskrivelse] = beskrivelse + } + } + } + } +} \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingTable.kt b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingTable.kt new file mode 100644 index 0000000..ab85da7 --- /dev/null +++ b/backend/src/main/kotlin/no/nav/helse/sprik/db/FeilmeldingTable.kt @@ -0,0 +1,8 @@ +package no.nav.helse.sprik.db + +import org.jetbrains.exposed.sql.Table + +object FeilmeldingTable : Table("feilmelding") { + val tittel = text("tittel") + val beskrivelse = text("beskrivelse") +} \ No newline at end of file diff --git a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt index ebf241d..ec72c75 100644 --- a/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt +++ b/backend/src/main/kotlin/no/nav/helse/sprik/modell/Feilmelding.kt @@ -18,6 +18,7 @@ import java.time.LocalDate class Feilmelding( val tittel: String, val beskrivelse: String, + @Serializable(LocalDateSerializer::class) val dato: LocalDate? = null, //Krever en spesiallaget serialiserer i KotlinX val tags: ArrayList = arrayListOf() diff --git a/backend/src/main/resources/db/migration/V2__feilmelding.sql b/backend/src/main/resources/db/migration/V2__feilmelding.sql new file mode 100644 index 0000000..6f8e61a --- /dev/null +++ b/backend/src/main/resources/db/migration/V2__feilmelding.sql @@ -0,0 +1,4 @@ +CREATE TABLE feilmelding ( + tittel VARCHAR NOT NULL, + beskrivelse VARCHAR NOT NULL +) \ No newline at end of file diff --git a/backend/src/test/kotlin/no/nav/helse/sprik/DbTest.kt b/backend/src/test/kotlin/no/nav/helse/sprik/DbTest.kt deleted file mode 100644 index 29684f0..0000000 --- a/backend/src/test/kotlin/no/nav/helse/sprik/DbTest.kt +++ /dev/null @@ -1,14 +0,0 @@ -package no.nav.helse.sprik - -import org.junit.jupiter.api.Test -import kotlin.test.assertEquals - - -class DbTest { - @Test - fun `Tester noe rart for å sjekke om junit funker`() { - val a = 2 - assertEquals(2, a) - } - -} \ No newline at end of file diff --git a/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt new file mode 100644 index 0000000..d69bc52 --- /dev/null +++ b/backend/src/test/kotlin/no/nav/helse/sprik/FeilmeldingTest.kt @@ -0,0 +1,54 @@ +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 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 `Lagrer feilmelding i databasen`() { + feilmeldingRepository.lagre("test", "testesen") + transaction { + val actual = FeilmeldingTable.selectAll().single() + assertEquals("test", actual[FeilmeldingTable.tittel]) + assertEquals("testesen", actual[FeilmeldingTable.beskrivelse]) + } + } + + @Test + fun `Sett opp testdatabasen riktig`(){ + feilmeldingRepository.lagre("Hællæ", "skjera bagera") + transaction { + assertEquals(1, FeilmeldingTable.selectAll().map { + it + }.size) + } + } +} \ No newline at end of file