У меня есть контроллер, который защищен признаком аутентификации. Черта выглядит следующим образом:FakeRequest отбрасывается в RequestHeader
def isAuthenticated(f: => AccountDTO => Request[AnyContent] => Result) =
Security.Authenticated(username, onUnauthorized) { user =>
Action.async {
request => {
Future.successful(f(user)(request))
}
}
}
Все работает хорошо, когда делает обычный запрос, но при выполнении модульных тестов я сталкивалась с проблемами. Я создаю следующий поддельный запрос:
val goodRequest = FakeRequest("POST", "/platform/api/v1/files")
.withBody(Json.toJson(ScalaMockingUtil.fileValidMetadataJson))
.withHeaders((HeaderNames.AUTHORIZATION, "4322tertf2643t34t34"))
Далее, я получаю свой объект контроллера и вызова метода, применяя который FakeRequest:
val result: Iteratee[Array[Byte], Result] = filesController.createFileMetadata()(goodRequest)
проблема, с которой я столкнулся в том, что где-то вдоль линии FakeReuqest сбрасывается в RequestHeader. Проблема заключается в том, что описанная здесь: Unable to test controller using Action.async, где Action имеет два применяемых метода вместо одного. однако я, похоже, не могу заставить тот, который мне нужен.
Любая помощь приветствуется.