in src/it/scala/com/gu/kinesis/KinesisTestComponents.scala [115:122]
private def liftMaterializedValue[A, Mat](source: Source[A, Mat]): (Source[A, NotUsed], Future[Mat]) = {
val promise = Promise[Mat]
val sourceWithoutMat = source.mapMaterializedValue { mat =>
promise.trySuccess(mat)
NotUsed
}
(sourceWithoutMat, promise.future)
}