The test is as simple as: ``` class Authenticatio...
# koin-contributors
m
The test is as simple as:
Copy code
class 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()
                }
            }
        }
    }
}