diff --git a/server/src/main/kotlin/de/bollwerk/server/db/DatabaseFactory.kt b/server/src/main/kotlin/de/bollwerk/server/db/DatabaseFactory.kt index 8af74da..16f893b 100644 --- a/server/src/main/kotlin/de/bollwerk/server/db/DatabaseFactory.kt +++ b/server/src/main/kotlin/de/bollwerk/server/db/DatabaseFactory.kt @@ -53,6 +53,7 @@ internal object DatabaseFactory { EncryptionService.init(encryptionKey) migrateEncryptData() seedAdmin(adminPassword) + seedTestUsers() } private fun runFlyway(dataSource: HikariDataSource, jdbcUrl: String, user: String, password: String) { @@ -190,4 +191,31 @@ internal object DatabaseFactory { } } } + + private fun seedTestUsers() { + val testPassword = "15z3QA7mtosybQKSplhi" + val testUsers = listOf("alice", "bob") + transaction { + for (name in testUsers) { + val exists = Users.selectAll().where { Users.username eq name }.count() > 0 + if (!exists) { + val userId = UUID.randomUUID().toString() + val inventoryId = UUID.randomUUID().toString() + Inventories.insert { + it[id] = inventoryId + it[createdAt] = System.currentTimeMillis() + } + Users.insert { + it[id] = userId + it[username] = name + it[passwordHash] = BCrypt.hashpw(testPassword, BCrypt.gensalt()) + it[createdAt] = System.currentTimeMillis() + it[isAdmin] = false + it[Users.inventoryId] = inventoryId + } + logger.info("Created test user: $name") + } + } + } + } }