Mark Malik
06/15/2022, 10:45 AMclass AuthenticationTest : WordSpec(), KoinTest {
val dataSource = install(JdbcTestContainerExtension(container)) {
poolName = "myconnectionpool"
maximumPoolSize = 8
idleTimeout = 10000
}
private val testDbModule = module {
single { dataSource }
single<Jdbi> {
Jdbi.create(get<DataSource>()).installPlugins().registerColumnMapper(LocalDateTimeMapper())
.registerArgument(LocalDateTimeArgumentFactory())
}
}
private val applicationConfig = ApplicationConfig("test-application.conf")
private val testHttpModule = module {
single { setupClient(mockEnginePB, applicationConfig) }
}
override fun extensions(): List<Extension> =
listOf(KoinExtension(listOf(testDbModule, testHttpModule, RepositoryModule)))
lateinit var jwt: JwtToken
init {
"JWT Authorization" should {
"Be unauthorized on incorrect token" {
// when
testApplication {
application { Application::testModule }
environment {
config = ApplicationConfig("test-application.conf")
}
val response = client.get("/api/artworks?artistName=%25Picasso") {
header(HttpHeaders.Authorization, "Bearer 1")
}
// then
response shouldHaveStatus HttpStatusCode.Unauthorized
response.bodyAsText().shouldBeBlank()
}
}
}
}
}