♻️ Refaktorere tester og kode

Co-authored-by: Hege Haavaldsen <hege.haavaldsen@nav.no>
This commit is contained in:
Amalie Mansåker 2023-08-04 15:04:01 +02:00
parent 164c554cbc
commit e8d27f85f2
4 changed files with 273 additions and 120 deletions

View file

@ -25,16 +25,15 @@ class FeilmeldingRepository {
it[FeilmeldingTable.dato] = feilmelding.dato
it[FeilmeldingTable.arbeidsstatus] = feilmelding.arbeidsstatus
it[FeilmeldingTable.haster] = feilmelding.haster
if (feilmelding.aktorid != null){
it[FeilmeldingTable.aktorid] = feilmelding.aktorid
feilmelding.aktorid?.also { aktorid ->
it[FeilmeldingTable.aktorid] = aktorid
}
}
}
}
}
private fun radTilFeilmelding(rad: ResultRow) = Feilmelding(
internal fun radTilFeilmelding(rad: ResultRow) = Feilmelding(
id = rad[id],
tittel = rad[tittel],
beskrivelse = rad[beskrivelse],
@ -50,7 +49,7 @@ class FeilmeldingRepository {
}
fun hentSokteFeilmeldinger(sokeord: String): List<Feilmelding> = transaction {
val sok = "%${sokeord.lowercase()}%"
val sok = "%${sokeord.lowercase().trim()}%"
FeilmeldingTable.select(
(FeilmeldingTable.tittel.lowerCase() like sok)
@ -60,14 +59,12 @@ class FeilmeldingRepository {
}
fun oppdaterFeilmelding(feilmelding: Feilmelding) = transaction {
val id = feilmelding.id
if (id != null) {
FeilmeldingTable.update({ FeilmeldingTable.id eq id }) {
it[FeilmeldingTable.tittel] = feilmelding.tittel
it[FeilmeldingTable.beskrivelse] = feilmelding.beskrivelse
it[FeilmeldingTable.arbeidsstatus] = feilmelding.arbeidsstatus
it[FeilmeldingTable.haster] = feilmelding.haster
}
checkNotNull(feilmelding.id) { "Id kan ikke være null når vi skal oppdatere feilmelding" }
FeilmeldingTable.update({ FeilmeldingTable.id eq feilmelding.id }) {
it[FeilmeldingTable.tittel] = feilmelding.tittel
it[FeilmeldingTable.beskrivelse] = feilmelding.beskrivelse
it[FeilmeldingTable.arbeidsstatus] = feilmelding.arbeidsstatus
it[FeilmeldingTable.haster] = feilmelding.haster
}
}

View file

@ -13,7 +13,7 @@ import java.time.LocalDateTime
* Objekt for feilmeldinger i Sprik
* */
@Serializable
class Feilmelding(
data class Feilmelding(
val id: Int?,
val tittel: String,
val beskrivelse: String,

View file

@ -8,20 +8,30 @@ import no.nav.helse.sprik.modell.Feilmelding
import org.jetbrains.exposed.sql.deleteAll
import org.jetbrains.exposed.sql.selectAll
import org.jetbrains.exposed.sql.transactions.transaction
import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.BeforeAll
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.*
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.TestInstance
import java.time.LocalDateTime
import kotlin.test.assertEquals
import kotlin.test.assertFalse
import kotlin.test.assertNull
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()
private companion object {
val feilmelding = Feilmelding(
null,
"Test",
"Testesen",
LocalDateTime.of(2023,1,1,8,0),
0,
true,
null,
null
)
}
fun getId() = transaction {
FeilmeldingTable.selectAll().single()[FeilmeldingTable.id]
@ -32,12 +42,6 @@ class FeilmeldingTest {
ExposedDatabase.connect(database.dataSource)
}
@BeforeEach
fun lagreFeilmelding() {
val feilmelding = Feilmelding(null, "Test", "Testesen", LocalDateTime.of(2023,1,1,8,0), 0, true, null, null)
feilmeldingRepository.lagre(feilmelding)
}
@AfterEach
fun wipe() {
transaction {
@ -45,9 +49,9 @@ class FeilmeldingTest {
}
}
@Test
fun `Sett opp testdatabasen riktig`(){
feilmeldingRepository.lagre(feilmelding)
transaction {
assertEquals(1, FeilmeldingTable.selectAll().map {
it
@ -56,59 +60,94 @@ class FeilmeldingTest {
}
@Test
fun `Lagrer feilmelding i databasen`() {
fun `Lagrer feilmelding uten aktørid i databasen`() {
feilmeldingRepository.lagre(feilmelding)
transaction {
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])
assertEquals(1, actual[FeilmeldingTable.id])
val forventetFeilmelding = Feilmelding(
getId(),
"Test",
"Testesen",
LocalDateTime.of(2023,1,1,8,0),
0,
true,
null,
null
)
val faktiskFeilmelding = feilmeldingRepository.radTilFeilmelding(FeilmeldingTable.selectAll().single())
assertEquals(forventetFeilmelding, faktiskFeilmelding)
}
}
@Test
fun `Lagrer feilmelding med aktørid i databasen`() {
feilmeldingRepository.lagre(feilmelding.copy(aktorid = 12345678))
transaction {
val forventetFeilmelding = Feilmelding(
getId(),
"Test",
"Testesen",
LocalDateTime.of(2023,1,1,8,0),
0,
true,
null,
12345678
)
val faktiskFeilmelding = feilmeldingRepository.radTilFeilmelding(FeilmeldingTable.selectAll().single())
assertEquals(forventetFeilmelding, faktiskFeilmelding)
}
}
@Test
fun `Henter alle feilmeldinger i databasen`() {
feilmeldingRepository.lagre(feilmelding)
feilmeldingRepository.lagre(feilmelding)
transaction {
val resultat: List<Feilmelding> = feilmeldingRepository.hentAlleFeilmeldinger()
val actual = FeilmeldingTable.selectAll()
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)
val forventet = FeilmeldingTable.selectAll().map { it }
assertEquals(forventet.size, resultat.size)
}
}
@Test
fun `Henter feilmeldinger som matcher søk`() {
feilmeldingRepository.lagre(feilmelding)
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`() {
fun `Henter alle feilmeldinger som har søkestreng som substreng`() {
feilmeldingRepository.lagre(feilmelding)
feilmeldingRepository.lagre(feilmelding.copy(tittel = "Heste"))
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("este")
assertEquals(1, sokeresultat.size)
assertEquals("Test", sokeresultat[0].tittel)
assertEquals("Testesen", sokeresultat[0].beskrivelse)
assertEquals(2, sokeresultat.size)
}
@Test
fun `Finner ingen feilmeldinger som matcher søk`() {
feilmeldingRepository.lagre(feilmelding)
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("abrakadabra")
assertEquals(0, sokeresultat.size)
}
@Test
fun `Søk er ikke case sensitivt`() {
feilmeldingRepository.lagre(feilmelding)
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("test")
assertEquals(1, sokeresultat.size)
assertEquals("Test", sokeresultat[0].tittel)
assertEquals("Testesen", sokeresultat[0].beskrivelse)
}
@Test
fun `Søk er ikke mellomrom-sensitiv`() {
feilmeldingRepository.lagre(feilmelding)
val sokeresultat: List<Feilmelding> = feilmeldingRepository.hentSokteFeilmeldinger("Test ")
assertEquals(1, sokeresultat.size)
}
@Test
fun `Oppdaterer en feilmelding`() {
feilmeldingRepository.lagre(feilmelding)
val oppdatertFeilmelding = Feilmelding(getId(), "Oppdatert", "Oppdatert feil", LocalDateTime.of(2023, 1, 1, 8, 0), 1, false, null, null)
feilmeldingRepository.oppdaterFeilmelding(oppdatertFeilmelding)
val actualOppdatert = transaction { FeilmeldingTable.selectAll().single() }
@ -118,10 +157,36 @@ class FeilmeldingTest {
assertEquals(1, actualOppdatert[FeilmeldingTable.arbeidsstatus])
}
@Test
fun `Prøver å oppdatere feilmelding uten id`() {
feilmeldingRepository.lagre(feilmelding)
val oppdatertFeilmelding = Feilmelding(null, "Oppdatert", "Oppdatert feil", LocalDateTime.of(2023, 1, 1, 8, 0), 1, false, null, null)
assertThrows<IllegalStateException> {
feilmeldingRepository.oppdaterFeilmelding(oppdatertFeilmelding)
}
}
@Test
fun `Kommentar er tom når feilmelding opprettes`() {
feilmeldingRepository.lagre(feilmelding)
val initiellKommentar = transaction { FeilmeldingTable.selectAll().single()[FeilmeldingTable.kommentar] }
assertNull(initiellKommentar)
}
@Test
fun `Oppdaterer feilmeldingskommentar`() {
feilmeldingRepository.lagre(feilmelding)
feilmeldingRepository.oppdaterKommentar(getId(), "Feilen fikses nå!")
val actual = transaction { FeilmeldingTable.selectAll().single() }
assertEquals("Feilen fikses nå!", actual[FeilmeldingTable.kommentar])
val oppdatertKommentar = transaction { FeilmeldingTable.selectAll().single()[FeilmeldingTable.kommentar] }
assertEquals("Feilen fikses nå!", oppdatertKommentar)
}
@Test
fun `Ny kommentar skal overskrive gammel`() {
feilmeldingRepository.lagre(feilmelding)
feilmeldingRepository.oppdaterKommentar(getId(), "Initiell kommentar")
feilmeldingRepository.oppdaterKommentar(getId(), "Oppdatert kommentar")
val oppdatertKommentar = transaction { FeilmeldingTable.selectAll().single()[FeilmeldingTable.kommentar] }
assertEquals("Oppdatert kommentar", oppdatertKommentar)
}
}

View file

@ -32,7 +32,7 @@
resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz"
integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ==
"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.22.5":
"@babel/core@^7.22.5":
version "7.22.9"
resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz"
integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w==
@ -281,11 +281,116 @@
debug "^3.1.0"
lodash.once "^4.1.1"
"@esbuild/android-arm64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.14.tgz#d86197e6ff965a187b2ea2704915f596a040ed4b"
integrity sha512-rZ2v+Luba5/3D6l8kofWgTnqE+qsC/L5MleKIKFyllHTKHrNBMqeRCnZI1BtRx8B24xMYxeU32iIddRQqMsOsg==
"@esbuild/android-arm@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.14.tgz#ed59310c0e6ec6df8b17e363d33a954ecf870f4f"
integrity sha512-blODaaL+lngG5bdK/t4qZcQvq2BBqrABmYwqPPcS5VRxrCSGHb9R/rA3fqxh7R18I7WU4KKv+NYkt22FDfalcg==
"@esbuild/android-x64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.14.tgz#e01b387f1db3dd2596a44e8c577aa2609750bc82"
integrity sha512-qSwh8y38QKl+1Iqg+YhvCVYlSk3dVLk9N88VO71U4FUjtiSFylMWK3Ugr8GC6eTkkP4Tc83dVppt2n8vIdlSGg==
"@esbuild/darwin-arm64@0.18.14":
version "0.18.14"
resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.18.14.tgz"
integrity sha512-9Hl2D2PBeDYZiNbnRKRWuxwHa9v5ssWBBjisXFkVcSP5cZqzZRFBUWEQuqBHO4+PKx4q4wgHoWtfQ1S7rUqJ2Q==
"@esbuild/darwin-x64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.14.tgz#bc1884d9f812647e2078fa4c46e4bffec53c7c09"
integrity sha512-ZnI3Dg4ElQ6tlv82qLc/UNHtFsgZSKZ7KjsUNAo1BF1SoYDjkGKHJyCrYyWjFecmXpvvG/KJ9A/oe0H12odPLQ==
"@esbuild/freebsd-arm64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.14.tgz#1fa876f627536b5037f4aed90545ccc330fd509b"
integrity sha512-h3OqR80Da4oQCIa37zl8tU5MwHQ7qgPV0oVScPfKJK21fSRZEhLE4IIVpmcOxfAVmqjU6NDxcxhYaM8aDIGRLw==
"@esbuild/freebsd-x64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.14.tgz#effaa4c5d7bab695b5e6fae459eaf49121fbc7c3"
integrity sha512-ha4BX+S6CZG4BoH9tOZTrFIYC1DH13UTCRHzFc3GWX74nz3h/N6MPF3tuR3XlsNjMFUazGgm35MPW5tHkn2lzQ==
"@esbuild/linux-arm64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.14.tgz#24bb4b1836fe7900e1ffda78aa6875a4eb500e3a"
integrity sha512-IXORRe22In7U65NZCzjwAUc03nn8SDIzWCnfzJ6t/8AvGx5zBkcLfknI+0P+hhuftufJBmIXxdSTbzWc8X/V4w==
"@esbuild/linux-arm@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.14.tgz#7f3490320a4627f4c850a8613385bdf3ffb82285"
integrity sha512-5+7vehI1iqru5WRtJyU2XvTOvTGURw3OZxe3YTdE9muNNIdmKAVmSHpB3Vw2LazJk2ifEdIMt/wTWnVe5V98Kg==
"@esbuild/linux-ia32@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.14.tgz#91f1e82f92ffaff8d72f9d90a0f209022529031a"
integrity sha512-BfHlMa0nibwpjG+VXbOoqJDmFde4UK2gnW351SQ2Zd4t1N3zNdmUEqRkw/srC1Sa1DRBE88Dbwg4JgWCbNz/FQ==
"@esbuild/linux-loong64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.14.tgz#cd5cb806af6361578800af79919c5cfd53401a17"
integrity sha512-j2/Ex++DRUWIAaUDprXd3JevzGtZ4/d7VKz+AYDoHZ3HjJzCyYBub9CU1wwIXN+viOP0b4VR3RhGClsvyt/xSw==
"@esbuild/linux-mips64el@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.14.tgz#c635b6c0b8b4f9b4bff3aaafad59fa8cc07b354a"
integrity sha512-qn2+nc+ZCrJmiicoAnJXJJkZWt8Nwswgu1crY7N+PBR8ChBHh89XRxj38UU6Dkthl2yCVO9jWuafZ24muzDC/A==
"@esbuild/linux-ppc64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.14.tgz#9b2bb80b7e30667a81ffbcddb74ad8e79330cc94"
integrity sha512-aGzXzd+djqeEC5IRkDKt3kWzvXoXC6K6GyYKxd+wsFJ2VQYnOWE954qV2tvy5/aaNrmgPTb52cSCHFE+Z7Z0yg==
"@esbuild/linux-riscv64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.14.tgz#9520d34a4ecbf404e56f4cebdcc686c83b66babc"
integrity sha512-8C6vWbfr0ygbAiMFLS6OPz0BHvApkT2gCboOGV76YrYw+sD/MQJzyITNsjZWDXJwPu9tjrFQOVG7zijRzBCnLw==
"@esbuild/linux-s390x@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.14.tgz#3987e30f807b8faf20815b2b2f0a4919084d4e7c"
integrity sha512-G/Lf9iu8sRMM60OVGOh94ZW2nIStksEcITkXdkD09/T6QFD/o+g0+9WVyR/jajIb3A0LvBJ670tBnGe1GgXMgw==
"@esbuild/linux-x64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.14.tgz#51c727dc7045c47ab8c08fe6c09cda3e170d99f3"
integrity sha512-TBgStYBQaa3EGhgqIDM+ECnkreb0wkcKqL7H6m+XPcGUoU4dO7dqewfbm0mWEQYH3kzFHrzjOFNpSAVzDZRSJw==
"@esbuild/netbsd-x64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.14.tgz#4677bf88b489d5ffe1b5f0abbb85812996455479"
integrity sha512-stvCcjyCQR2lMTroqNhAbvROqRjxPEq0oQ380YdXxA81TaRJEucH/PzJ/qsEtsHgXlWFW6Ryr/X15vxQiyRXVg==
"@esbuild/openbsd-x64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.14.tgz#939902897e533162450f69266f32ef1325ba98fd"
integrity sha512-apAOJF14CIsN5ht1PA57PboEMsNV70j3FUdxLmA2liZ20gEQnfTG5QU0FhENo5nwbTqCB2O3WDsXAihfODjHYw==
"@esbuild/sunos-x64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.14.tgz#a50721d47b93586249bd63250bd4b7496fc9957b"
integrity sha512-fYRaaS8mDgZcGybPn2MQbn1ZNZx+UXFSUoS5Hd2oEnlsyUcr/l3c6RnXf1bLDRKKdLRSabTmyCy7VLQ7VhGdOQ==
"@esbuild/win32-arm64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.14.tgz#d8531d370e6fd0e0e40f40e016f996bbe4fd5ebf"
integrity sha512-1c44RcxKEJPrVj62XdmYhxXaU/V7auELCmnD+Ri+UCt+AGxTvzxl9uauQhrFso8gj6ZV1DaORV0sT9XSHOAk8Q==
"@esbuild/win32-ia32@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.14.tgz#dcbf75e4e65d2921cd4be14ed67cec7360440e46"
integrity sha512-EXAFttrdAxZkFQmpvcAQ2bywlWUsONp/9c2lcfvPUhu8vXBBenCXpoq9YkUvVP639ld3YGiYx0YUQ6/VQz3Maw==
"@esbuild/win32-x64@0.18.14":
version "0.18.14"
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.14.tgz#43f66032e0f189b6f394d4dbc903a188bb0c969f"
integrity sha512-K0QjGbcskx+gY+qp3v4/940qg8JitpXbdxFhRDA1aYoNaPff88+aEwoq45aqJ+ogpxQxmU0ZTjgnrQD/w8iiUg==
"@eslint-community/eslint-utils@^4.2.0":
version "4.4.0"
resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz"
@ -410,16 +515,16 @@
resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz"
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.15"
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@jridgewell/sourcemap-codec@1.4.14":
version "1.4.14"
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz"
integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.15"
resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz"
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
"@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9":
version "0.3.18"
resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz"
@ -475,7 +580,7 @@
"@nodelib/fs.stat" "2.0.5"
run-parallel "^1.1.9"
"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5":
"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2":
version "2.0.5"
resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz"
integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==
@ -689,7 +794,7 @@
resolved "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz"
integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==
"@types/node@*", "@types/node@^14.14.31", "@types/node@>= 14":
"@types/node@*", "@types/node@^14.14.31":
version "14.18.53"
resolved "https://registry.npmjs.org/@types/node/-/node-14.18.53.tgz"
integrity sha512-soGmOpVBUq+gaBMwom1M+krC/NNbWlosh4AtGA03SyWNDiqSKtwp7OulO1M6+mg8YkHMvJ/y0AkCeO8d1hNb7A==
@ -711,7 +816,7 @@
dependencies:
"@types/react" "*"
"@types/react@*", "@types/react@^17.0.30 || ^18.0.0", "@types/react@^18.2.14":
"@types/react@*", "@types/react@^18.2.14":
version "18.2.15"
resolved "https://registry.npmjs.org/@types/react/-/react-18.2.15.tgz"
integrity sha512-oEjE7TQt1fFTFSbf8kkNuc798ahTUzn3Le67/PWjE8MAfYAD/qB7O8hSTcromLFqHCt9bcdOg5GXMokzTjJ5SA==
@ -780,7 +885,7 @@
semver "^7.3.7"
tsutils "^3.21.0"
"@typescript-eslint/parser@^5.0.0", "@typescript-eslint/parser@^5.61.0":
"@typescript-eslint/parser@^5.61.0":
version "5.62.0"
resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.62.0.tgz"
integrity sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==
@ -863,7 +968,7 @@ acorn-jsx@^5.3.2:
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8.9.0:
acorn@^8.9.0:
version "8.10.0"
resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz"
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
@ -984,7 +1089,7 @@ asn1@~0.2.3:
dependencies:
safer-buffer "~2.1.0"
assert-plus@^1.0.0, assert-plus@1.0.0:
assert-plus@1.0.0, assert-plus@^1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==
@ -1031,11 +1136,6 @@ aws4@^1.8.0:
resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz"
integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg==
"axe-core@^3 || ^4":
version "4.7.2"
resolved "https://registry.npmjs.org/axe-core/-/axe-core-4.7.2.tgz"
integrity sha512-zIURGIS1E1Q4pcrMjp+nnEh+16G56eG/MUllJH8yEvw7asDo7Ac9uhC9KIH5jzpITueEZolfYglnCGIuSBz39g==
axios@^1.4.0:
version "1.4.0"
resolved "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz"
@ -1097,7 +1197,7 @@ braces@^3.0.2, braces@~3.0.2:
dependencies:
fill-range "^7.0.1"
browserslist@^4.21.5, browserslist@^4.21.9, "browserslist@>= 4.21.0":
browserslist@^4.21.5, browserslist@^4.21.9:
version "4.21.9"
resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz"
integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg==
@ -1258,16 +1358,16 @@ color-convert@^2.0.1:
dependencies:
color-name "~1.1.4"
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
color-name@1.1.3:
version "1.1.3"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==
color-name@~1.1.4:
version "1.1.4"
resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"
integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
colord@^2.9.3:
version "2.9.3"
resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz"
@ -1374,7 +1474,7 @@ cypress-slow-down@^1.2.1:
dependencies:
cypress-plugin-config "^1.0.0"
"cypress@^10 || ^11 || ^12", cypress@^12.17.2:
cypress@^12.17.2:
version "12.17.2"
resolved "https://registry.npmjs.org/cypress/-/cypress-12.17.2.tgz"
integrity sha512-hxWAaWbqQBzzMuadSGSuQg5PDvIGOovm6xm0hIfpCVcORsCAj/gF2p0EvfnJ4f+jK2PCiDgP6D2eeE9/FK4Mjg==
@ -1429,7 +1529,7 @@ dashdash@^1.12.0:
dependencies:
assert-plus "^1.0.0"
date-fns@^2.28.0, date-fns@2.29.3:
date-fns@2.29.3:
version "2.29.3"
resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz"
integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
@ -1535,7 +1635,7 @@ end-of-stream@^1.1.0:
dependencies:
once "^1.4.0"
enquirer@^2.3.6, "enquirer@>= 2.3.0 < 3":
enquirer@^2.3.6:
version "2.3.6"
resolved "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz"
integrity sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==
@ -1628,7 +1728,7 @@ eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1:
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.1.tgz"
integrity sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==
eslint@*, "eslint@^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", eslint@^8.44.0, eslint@>=7:
eslint@^8.44.0:
version "8.45.0"
resolved "https://registry.npmjs.org/eslint/-/eslint-8.45.0.tgz"
integrity sha512-pd8KSxiQpdYRfYa9Wufvdoct3ZPQQuVuU5O6scNgMuOMYuxvH0IGaYK0wUFjo4UYYQQCUndlXiMbnxopwvvTiw==
@ -1769,16 +1869,16 @@ extract-zip@2.0.1:
optionalDependencies:
"@types/yauzl" "^2.9.1"
extsprintf@^1.2.0:
version "1.4.1"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz"
integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
extsprintf@1.3.0:
version "1.3.0"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==
extsprintf@^1.2.0:
version "1.4.1"
resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz"
integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==
fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
version "3.1.3"
resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
@ -1974,18 +2074,6 @@ glob-parent@^6.0.2:
dependencies:
is-glob "^4.0.3"
glob@^7.1.3:
version "7.2.3"
resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.1.1"
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@7.1.6:
version "7.1.6"
resolved "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz"
@ -1998,6 +2086,18 @@ glob@7.1.6:
once "^1.3.0"
path-is-absolute "^1.0.0"
glob@^7.1.3:
version "7.2.3"
resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.1.1"
once "^1.3.0"
path-is-absolute "^1.0.0"
global-dirs@^3.0.0:
version "3.0.1"
resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-3.0.1.tgz"
@ -2169,16 +2269,16 @@ inherits@2:
resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
ini@^1.3.5:
version "1.3.8"
resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
ini@2.0.0:
version "2.0.0"
resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz"
integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==
ini@^1.3.5:
version "1.3.8"
resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"
integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==
is-arrayish@^0.2.1:
version "0.2.1"
resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
@ -2620,16 +2720,16 @@ minimist@^1.2.8:
resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz"
integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==
ms@^2.1.1:
version "2.1.3"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
ms@2.1.2:
version "2.1.2"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
ms@^2.1.1:
version "2.1.3"
resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
mz@^2.7.0:
version "2.7.0"
resolved "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz"
@ -2879,16 +2979,7 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.2.0:
resolved "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
postcss@^8.0.0, postcss@^8.2.14, postcss@^8.4.21, postcss@^8.4.23, postcss@>=8.0.9:
version "8.4.26"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz"
integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==
dependencies:
nanoid "^3.3.6"
picocolors "^1.0.0"
source-map-js "^1.0.2"
postcss@^8.1.0, postcss@8.4.6:
postcss@8.4.6:
version "8.4.6"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.6.tgz"
integrity sha512-OovjwIzs9Te46vlEx7+uXB0PLijpwjXGKXjVGGPIGubGpq7uh5Xgf6D6FiJ/SzJMBosHDp6a2hiXOS97iBXcaA==
@ -2897,7 +2988,7 @@ postcss@^8.1.0, postcss@8.4.6:
picocolors "^1.0.0"
source-map-js "^1.0.2"
postcss@^8.3.3, postcss@^8.4.25:
postcss@^8.4.23, postcss@^8.4.25:
version "8.4.26"
resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.26.tgz"
integrity sha512-jrXHFF8iTloAenySjM/ob3gSj7pCu0Ji49hnjqzsgSRa50hkWCKD0HQ+gMNJkW38jBI68MpAAg7ZWwHwX8NMMw==
@ -2934,16 +3025,16 @@ prop-types@^15.7.2:
object-assign "^4.1.1"
react-is "^16.13.1"
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
proxy-from-env@1.0.0:
version "1.0.0"
resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz"
integrity sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A==
proxy-from-env@^1.1.0:
version "1.1.0"
resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz"
integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
psl@^1.1.28:
version "1.9.0"
resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz"
@ -2984,7 +3075,7 @@ react-day-picker@8.3.4:
resolved "https://registry.npmjs.org/react-day-picker/-/react-day-picker-8.3.4.tgz"
integrity sha512-UuCbfZ69DhQmd+UhEv8nCPp5PxMk7ioNTuOLMlU0X7q3wd7o8TKDdsjduQoeBYTPTMS3LFdbA1qqbrIpRHo/Vg==
"react-dom@^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18", "react-dom@^16.8 || ^17.0 || ^18.0", react-dom@^18.2.0, react-dom@>=16.8, react-dom@>=16.8.0:
react-dom@^18.2.0:
version "18.2.0"
resolved "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz"
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
@ -3037,7 +3128,7 @@ react-router@6.14.2:
dependencies:
"@remix-run/router" "1.7.2"
"react@^0.14.0 || ^15.0.0 || ^16 || ^17 || ^18", "react@^16.11.0 || ^17.0.0 || ^18.0.0", "react@^16.8 || ^17.0 || ^18.0", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^17.0.0 || ^18.0.0", react@^18.2.0, react@>=16.8, react@>=16.8.0:
react@^18.2.0:
version "18.2.0"
resolved "https://registry.npmjs.org/react/-/react-18.2.0.tgz"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
@ -3608,7 +3699,7 @@ type-fest@^1.0.1, type-fest@^1.2.1, type-fest@^1.2.2:
resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz"
integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==
typescript@^5.0.2, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta":
typescript@^5.0.2:
version "5.1.6"
resolved "https://registry.npmjs.org/typescript/-/typescript-5.1.6.tgz"
integrity sha512-zaWCozRZ6DLEWAWFrVDz1H6FVXzUSfTy5FUMWsQlU8Ym5JP9eO4xkTIROFCQvhQf61z6O/G6ugw3SgAnvvm+HA==
@ -3670,7 +3761,7 @@ verror@1.10.0:
core-util-is "1.0.2"
extsprintf "^1.2.0"
vite@^4.2.0, vite@^4.4.0:
vite@^4.4.0:
version "4.4.4"
resolved "https://registry.npmjs.org/vite/-/vite-4.4.4.tgz"
integrity sha512-4mvsTxjkveWrKDJI70QmelfVqTm+ihFAb6+xf4sjEU2TmUCTlVX87tmg/QooPEMQb/lM9qGHT99ebqPziEd3wg==