From 40047136b527338ad52c227e5adf281f10f7cd6e Mon Sep 17 00:00:00 2001 From: Thomas Bonnin Date: Wed, 19 Oct 2016 12:09:04 +0100 Subject: [PATCH] Refactor port logic in healthcheck and tests Suite --- admin-jobs/app/AppLoader.scala | 13 ++------ admin-jobs/app/controllers/HealthCheck.scala | 6 ++-- admin-jobs/test/AdminJobsTestSuite.scala | 14 ++++----- admin/app/controllers/HealthCheck.scala | 7 ++--- admin/test/package.scala | 10 ++---- .../app/controllers/HealthCheck.scala | 7 ++--- applications/test/package.scala | 13 ++------ archive/app/AppLoader.scala | 15 ++------- archive/app/controllers/HealthCheck.scala | 7 ++--- archive/test/package.scala | 10 ++---- article/app/controllers/HealthCheck.scala | 6 ++-- article/test/CdnHealthCheckTest.scala | 5 ++- article/test/package.scala | 11 +++---- commercial/app/controllers/HealthCheck.scala | 6 ++-- .../test/test/CommercialTestSuite.scala | 14 +++------ common/app/conf/HealthCheck.scala | 31 +++++++++---------- common/test/conf/CachedHealthCheckTest.scala | 2 +- diagnostics/app/controllers/HealthCheck.scala | 7 ++--- diagnostics/test/package.scala | 11 ++----- discussion/app/controllers/HealthCheck.scala | 7 ++--- discussion/test/package.scala | 9 ++---- facia/app/controllers/HealthCheck.scala | 8 ++--- facia/test/package.scala | 9 ++---- identity/app/controllers/HealthCheck.scala | 7 ++--- .../test/controllers/IdentityTestSuite.scala | 10 +++--- onward/app/controllers/HealthCheck.scala | 6 ++-- onward/test/package.scala | 10 ++---- preview/app/AppLoader.scala | 11 ++----- preview/app/controllers/HealthCheck.scala | 6 ++-- preview/test/PreviewServerTest.scala | 7 ++--- rss/app/controllers/HealthCheck.scala | 6 ++-- .../football/controllers/HealthCheck.scala | 6 ++-- sport/test/package.scala | 7 ++--- training-preview/app/AppLoader.scala | 8 ++--- .../app/controllers/HealthCheck.scala | 10 +++--- training-preview/test/PreviewServerTest.scala | 7 ++--- 36 files changed, 114 insertions(+), 215 deletions(-) diff --git a/admin-jobs/app/AppLoader.scala b/admin-jobs/app/AppLoader.scala index 16d4b08d7ff7..e725f75c1a03 100644 --- a/admin-jobs/app/AppLoader.scala +++ b/admin-jobs/app/AppLoader.scala @@ -14,7 +14,6 @@ import play.api.http.HttpRequestHandler import play.api.mvc.EssentialFilter import play.api.routing.Router import play.api._ -import play.api.libs.ws.WSClient import services.ConfigAgentLifecycle import jobs.CommercialClientSideLoggingLifecycle import router.Routes @@ -29,13 +28,10 @@ trait AdminJobsServices { lazy val breakingNewsApi = wire[BreakingNewsApi] } -trait Controllers extends AdminJobsControllers { - def wsClient: WSClient - lazy val healthCheck = wire[HealthCheck] -} -trait AppLifecycleComponents { - self: FrontendComponents with Controllers => +trait AppComponents extends FrontendComponents with AdminJobsControllers with AdminJobsServices { + + lazy val healthCheck = wire[HealthCheck] override lazy val lifecycleComponents = List( wire[LogstashLifecycle], @@ -45,9 +41,6 @@ trait AppLifecycleComponents { wire[CachedHealthCheckLifeCycle], wire[CommercialClientSideLoggingLifecycle] ) -} - -trait AppComponents extends FrontendComponents with AppLifecycleComponents with Controllers with AdminJobsServices { lazy val router: Router = wire[Routes] diff --git a/admin-jobs/app/controllers/HealthCheck.scala b/admin-jobs/app/controllers/HealthCheck.scala index 2e98596630cf..28c1fabcb818 100644 --- a/admin-jobs/app/controllers/HealthCheck.scala +++ b/admin-jobs/app/controllers/HealthCheck.scala @@ -3,8 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9015, +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/news-alert/alerts") -) +)(wsClient) diff --git a/admin-jobs/test/AdminJobsTestSuite.scala b/admin-jobs/test/AdminJobsTestSuite.scala index efe923060b67..7c7cd54a09f0 100644 --- a/admin-jobs/test/AdminJobsTestSuite.scala +++ b/admin-jobs/test/AdminJobsTestSuite.scala @@ -1,14 +1,12 @@ -import controllers.BreakingNews.{BreakingNewsUpdaterTest, BreakingNewsApiTest} -import controllers.HealthCheck -import org.scalatest.{BeforeAndAfterAll, Suites} -import test.{SingleServerSuite, WithTestWsClient} +package test + +import controllers.BreakingNews.{BreakingNewsApiTest, BreakingNewsUpdaterTest} +import org.scalatest.Suites class AdminJobsTestSuite extends Suites ( new BreakingNewsApiTest, new BreakingNewsUpdaterTest, new controllers.NewsAlertControllerTest -) with SingleServerSuite -with BeforeAndAfterAll -with WithTestWsClient { - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19002 } diff --git a/admin/app/controllers/HealthCheck.scala b/admin/app/controllers/HealthCheck.scala index d2068424e802..70c7399f1f6d 100644 --- a/admin/app/controllers/HealthCheck.scala +++ b/admin/app/controllers/HealthCheck.scala @@ -3,7 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9001, - NeverExpiresSingleHealthCheck("/login")) +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( + NeverExpiresSingleHealthCheck("/login") +)(wsClient) diff --git a/admin/test/package.scala b/admin/test/package.scala index 52786efab57a..b036522fe783 100644 --- a/admin/test/package.scala +++ b/admin/test/package.scala @@ -1,7 +1,6 @@ package test -import org.scalatest.{BeforeAndAfterAll, Suites} -import pagepresser.InteractiveHtmlCleanerTest +import org.scalatest.Suites class AdminTestSuite extends Suites ( new football.PlayerControllerTest, @@ -12,10 +11,7 @@ class AdminTestSuite extends Suites ( new pagepresser.InteractiveHtmlCleanerTest, new controllers.admin.DeploysRadiatorControllerTest, new controllers.admin.DeploysNotifyControllerTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - - override lazy val port: Int = new controllers.HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19001 } diff --git a/applications/app/controllers/HealthCheck.scala b/applications/app/controllers/HealthCheck.scala index 282420ada08d..868b1056de9d 100644 --- a/applications/app/controllers/HealthCheck.scala +++ b/applications/app/controllers/HealthCheck.scala @@ -4,18 +4,15 @@ import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import contentapi.SectionsLookUp import play.api.libs.ws.WSClient import play.api.mvc.{Action, AnyContent} - import scala.concurrent.Future -class HealthCheck(override val wsClient: WSClient, sectionsLookUp: SectionsLookUp) extends AllGoodCachedHealthCheck( - wsClient, - 9002, +class HealthCheck(wsClient: WSClient, sectionsLookUp: SectionsLookUp) extends AllGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/books"), NeverExpiresSingleHealthCheck("/books/harrypotter"), NeverExpiresSingleHealthCheck("/news/gallery/2012/oct/02/24-hours-in-pictures"), NeverExpiresSingleHealthCheck("/news/gallery/2012/oct/02/24-hours-in-pictures?index=2"), NeverExpiresSingleHealthCheck("/world/video/2012/dec/31/52-weeks-photos-2012-video") -) { +)(wsClient) { override def healthCheck(): Action[AnyContent] = Action.async { request => if (!sectionsLookUp.isLoaded()) { Future.successful(InternalServerError("Sections have not loaded from Content API")) diff --git a/applications/test/package.scala b/applications/test/package.scala index 7f1b033a6112..3a73d9646297 100644 --- a/applications/test/package.scala +++ b/applications/test/package.scala @@ -2,9 +2,7 @@ package test import java.util.{List => JList} -import contentapi.SectionsLookUp -import controllers.HealthCheck -import org.scalatest.{BeforeAndAfterAll, Suites} +import org.scalatest.Suites import services.NewspaperControllerTest import collection.JavaConversions._ @@ -40,11 +38,6 @@ class ApplicationsTestSuite extends Suites ( new ShareLinksTest, new CrosswordDataTest, new NewspaperControllerTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient - with WithTestContentApiClient { - - lazy val sectionsLookUp = new SectionsLookUp(testContentApiClient) - override lazy val port: Int = new HealthCheck(wsClient, sectionsLookUp).testPort +) with SingleServerSuite { + override lazy val port: Int = 19003 } diff --git a/archive/app/AppLoader.scala b/archive/app/AppLoader.scala index 9b74c8325e49..6e2db92fc142 100644 --- a/archive/app/AppLoader.scala +++ b/archive/app/AppLoader.scala @@ -21,20 +21,12 @@ class AppLoader extends FrontendApplicationLoader { override def buildComponents(context: Context): FrontendComponents = new BuiltInComponentsFromContext(context) with AppComponents } -trait ArchiveServices { - def wsClient: WSClient +trait AppComponents extends FrontendComponents { + lazy val dynamoDB = wire[DynamoDB] -} -trait Controllers { - def wsClient: WSClient - def dynamoDB: DynamoDB lazy val healthCheck = wire[HealthCheck] lazy val archiveController = wire[ArchiveController] -} - -trait AppLifecycleComponents { - self: FrontendComponents with Controllers => override lazy val lifecycleComponents = List( wire[LogstashLifecycle], @@ -43,9 +35,6 @@ trait AppLifecycleComponents { wire[SwitchboardLifecycle], wire[CachedHealthCheckLifeCycle] ) -} - -trait AppComponents extends FrontendComponents with AppLifecycleComponents with Controllers with ArchiveServices { lazy val router: Router = wire[Routes] diff --git a/archive/app/controllers/HealthCheck.scala b/archive/app/controllers/HealthCheck.scala index e14b0947719b..5eeca40a1784 100644 --- a/archive/app/controllers/HealthCheck.scala +++ b/archive/app/controllers/HealthCheck.scala @@ -3,7 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9003, - NeverExpiresSingleHealthCheck("/404/www.theguardian.com/Adzip/adzip-fb.html")) +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( + NeverExpiresSingleHealthCheck("/404/www.theguardian.com/Adzip/adzip-fb.html") +)(wsClient) diff --git a/archive/test/package.scala b/archive/test/package.scala index edb21aa774d0..6dbd9d55f96c 100644 --- a/archive/test/package.scala +++ b/archive/test/package.scala @@ -1,8 +1,7 @@ package test import java.util.{ List => JList } -import controllers.HealthCheck -import org.scalatest.{BeforeAndAfterAll, Suites} +import org.scalatest.Suites import collection.JavaConversions._ @@ -15,9 +14,6 @@ object `package` { class ArchiveTestSuite extends Suites ( new ArchiveControllerTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19004 } diff --git a/article/app/controllers/HealthCheck.scala b/article/app/controllers/HealthCheck.scala index d5f419260e49..0fbeed38ec1b 100644 --- a/article/app/controllers/HealthCheck.scala +++ b/article/app/controllers/HealthCheck.scala @@ -3,8 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9004, +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/football/2015/jul/23/barcelona-fined-uefa-pro-catalan-banners-champions-league") -) +)(wsClient) diff --git a/article/test/CdnHealthCheckTest.scala b/article/test/CdnHealthCheckTest.scala index 9902fa278cfb..4ba62712789e 100644 --- a/article/test/CdnHealthCheckTest.scala +++ b/article/test/CdnHealthCheckTest.scala @@ -3,6 +3,7 @@ package test import controllers.HealthCheck import org.scalatest.{BeforeAndAfterAll, DoNotDiscover, FlatSpec, Matchers} import play.api.test.Helpers._ +import play.api.test.Helpers import org.scalatest.concurrent.ScalaFutures @DoNotDiscover class CdnHealthCheckTest @@ -14,7 +15,9 @@ import org.scalatest.concurrent.ScalaFutures with WithTestWsClient { "CDN health check" should "mimic the instance health check" in { - val controller = new HealthCheck(wsClient) + val testPort: Int = port + val controller = new HealthCheck(wsClient) { override val port = testPort } + // Cache internal healthCheck results before to test endpoints whenReady(controller.runChecks) { _ => status(controller.healthCheck()(TestRequest("/_healthcheck"))) should be (200) diff --git a/article/test/package.scala b/article/test/package.scala index ae14b80425c3..846ec0c50a52 100644 --- a/article/test/package.scala +++ b/article/test/package.scala @@ -1,7 +1,7 @@ package test -import controllers.HealthCheck -import org.scalatest.{BeforeAndAfterAll, Suites, Tag} +import org.scalatest.{Suites, Tag} +import play.api.test.Helpers object ArticleComponents extends Tag("article components") @@ -16,9 +16,6 @@ class ArticleTestSuite extends Suites ( new SectionsNavigationFeatureTest, new MembershipAccessTest, new PublicationControllerTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19005 } diff --git a/commercial/app/controllers/HealthCheck.scala b/commercial/app/controllers/HealthCheck.scala index 0b50047efc3c..6bdc274093c9 100644 --- a/commercial/app/controllers/HealthCheck.scala +++ b/commercial/app/controllers/HealthCheck.scala @@ -3,12 +3,10 @@ package commercial.controllers import conf.{AnyGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AnyGoodCachedHealthCheck( - wsClient, - 9005, +class HealthCheck(wsClient: WSClient) extends AnyGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/commercial/soulmates/mixed.json"), NeverExpiresSingleHealthCheck("/commercial/masterclasses.json"), NeverExpiresSingleHealthCheck("/commercial/travel/offers.json"), NeverExpiresSingleHealthCheck("/commercial/jobs.json"), NeverExpiresSingleHealthCheck("/commercial/books/books.json") -) +)(wsClient) diff --git a/commercial/test/test/CommercialTestSuite.scala b/commercial/test/test/CommercialTestSuite.scala index ef397ccfda9e..530acb52145b 100644 --- a/commercial/test/test/CommercialTestSuite.scala +++ b/commercial/test/test/CommercialTestSuite.scala @@ -1,10 +1,9 @@ package commercial.test -import commercial.controllers.HealthCheck -import commercial.model.merchandise.{books, events, jobs, soulmates} import commercial.model.capi.LookupTest -import org.scalatest.{BeforeAndAfterAll, Suites} -import test.{SingleServerSuite, WithTestWsClient} +import commercial.model.merchandise.{books, events, jobs, soulmates} +import org.scalatest.Suites +import test.SingleServerSuite class CommercialTestSuite extends Suites ( new commercial.controllers.TravelOffersControllerTest, @@ -17,9 +16,6 @@ class CommercialTestSuite extends Suites ( new LookupTest, new books.BookFinderTest, new books.BookTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19006 } diff --git a/common/app/conf/HealthCheck.scala b/common/app/conf/HealthCheck.scala index 5f8999de760e..120e84fe862e 100644 --- a/common/app/conf/HealthCheck.scala +++ b/common/app/conf/HealthCheck.scala @@ -3,7 +3,7 @@ package conf import app.LifecycleComponent import common._ import org.joda.time.DateTime -import play.api.{Mode, Play} +import play.api.{Environment, Mode, Play} import play.api.libs.ws.{WSClient, WSResponse} import play.api.mvc._ @@ -95,14 +95,7 @@ private[conf] trait HealthCheckFetcher extends ExecutionContexts with Logging { } } - protected def fetchResults(testPort: Int, healthChecks: SingleHealthCheck*): Future[Seq[HealthCheckResult]] = { - val defaultPort = 9000 - val port = { - Play.current.mode match { - case Mode.Test => testPort - case _ => defaultPort - } - } + protected def fetchResults(port: Int, healthChecks: SingleHealthCheck*): Future[Seq[HealthCheckResult]] = { val baseUrl = s"http://localhost:$port" Future.sequence(healthChecks.map(fetchResult(baseUrl, _))) } @@ -114,10 +107,10 @@ private[conf] class HealthCheckCache(val wsClient: WSClient) extends HealthCheck protected val cache = AkkaAgent[List[HealthCheckResult]](List[HealthCheckResult]()) def get(): List[HealthCheckResult] = cache.get() - def refresh(testPort: Int, healthChecks: SingleHealthCheck*): Future[List[HealthCheckResult]] = { + def refresh(port: Int, healthChecks: SingleHealthCheck*): Future[List[HealthCheckResult]] = { val alreadyFetched = noRefreshNeededResults val toFetch: Seq[SingleHealthCheck] = healthChecks.filterNot(h => alreadyFetched.map(_.url).contains(h.path)) - fetchResults(testPort, toFetch:_*).flatMap(fetchedResults => cache.alter(fetchedResults.toList ++ alreadyFetched)) + fetchResults(port, toFetch:_*).flatMap(fetchedResults => cache.alter(fetchedResults.toList ++ alreadyFetched)) } private def noRefreshNeededResults(): List[HealthCheckResult] = { @@ -136,7 +129,9 @@ trait HealthCheckController extends Controller { def healthCheck(): Action[AnyContent] } -class CachedHealthCheck(policy: HealthCheckPolicy, wsClient: WSClient, testPort: Int, healthChecks: SingleHealthCheck*) extends HealthCheckController with Results with ExecutionContexts with Logging { +class CachedHealthCheck(policy: HealthCheckPolicy, healthChecks: SingleHealthCheck*) + (implicit wsClient: WSClient) + extends HealthCheckController with Results with ExecutionContexts with Logging { private[conf] val cache: HealthCheckCache = new HealthCheckCache(wsClient) @@ -152,6 +147,8 @@ class CachedHealthCheck(policy: HealthCheckPolicy, wsClient: WSClient, testPort: case HealthCheckPolicy.Any => anySuccessful(results) } + val port: Int = 9000 + def healthCheck(): Action[AnyContent] = Action.async { Future.successful { val results = cache.get @@ -163,14 +160,14 @@ class CachedHealthCheck(policy: HealthCheckPolicy, wsClient: WSClient, testPort: } } - def runChecks: Future[Unit] = cache.refresh(testPort, healthChecks:_*).map(_ => Nil) + def runChecks: Future[Unit] = cache.refresh(port, healthChecks:_*).map(_ => Nil) } -case class AllGoodCachedHealthCheck(wsClient: WSClient, testPort: Int, healthChecks: SingleHealthCheck*) - extends CachedHealthCheck(HealthCheckPolicy.All, wsClient, testPort, healthChecks:_*) +case class AllGoodCachedHealthCheck(healthChecks: SingleHealthCheck*)(implicit wsClient: WSClient) + extends CachedHealthCheck(HealthCheckPolicy.All, healthChecks:_*) -case class AnyGoodCachedHealthCheck(wsClient: WSClient, testPort: Int, healthChecks: SingleHealthCheck*) - extends CachedHealthCheck(HealthCheckPolicy.Any, wsClient, testPort, healthChecks:_*) +case class AnyGoodCachedHealthCheck(healthChecks: SingleHealthCheck*)(implicit wsClient: WSClient) + extends CachedHealthCheck(HealthCheckPolicy.Any, healthChecks:_*) class CachedHealthCheckLifeCycle( healthCheckController: CachedHealthCheck, diff --git a/common/test/conf/CachedHealthCheckTest.scala b/common/test/conf/CachedHealthCheckTest.scala index 30495e4dcbb1..5988e1aade6b 100644 --- a/common/test/conf/CachedHealthCheckTest.scala +++ b/common/test/conf/CachedHealthCheckTest.scala @@ -37,7 +37,7 @@ class CachedHealthCheckTest // Create a CachedHealthCheck controller with mock results val mockHealthChecks: Seq[SingleHealthCheck] = mockResults.map(result => ExpiringSingleHealthCheck(result.url)) val mockTestPort: Int = 9100 - val controller = new CachedHealthCheck(policy, wsClient, mockTestPort, mockHealthChecks:_*) { + val controller = new CachedHealthCheck(policy, mockHealthChecks:_*)(wsClient) { override val cache = new HealthCheckCache(wsClient) { override def fetchResults(testPort: Int, paths: SingleHealthCheck*): Future[Seq[HealthCheckResult]] = { Future.successful(mockResults) diff --git a/diagnostics/app/controllers/HealthCheck.scala b/diagnostics/app/controllers/HealthCheck.scala index 7b0fdab907e9..bef63014e469 100644 --- a/diagnostics/app/controllers/HealthCheck.scala +++ b/diagnostics/app/controllers/HealthCheck.scala @@ -3,7 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9006, - NeverExpiresSingleHealthCheck("/robots.txt")) +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( + NeverExpiresSingleHealthCheck("/robots.txt") +)(wsClient) diff --git a/diagnostics/test/package.scala b/diagnostics/test/package.scala index d10ad42c4abe..cdcbca896586 100644 --- a/diagnostics/test/package.scala +++ b/diagnostics/test/package.scala @@ -1,13 +1,8 @@ package test -import controllers.HealthCheck -import org.scalatest.{BeforeAndAfterAll, Suites} +import org.scalatest.Suites class DiagnosticsTestSuite extends Suites ( - // Add you test classes here -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19007 } diff --git a/discussion/app/controllers/HealthCheck.scala b/discussion/app/controllers/HealthCheck.scala index 7fe08f01692c..c02696edcbb9 100644 --- a/discussion/app/controllers/HealthCheck.scala +++ b/discussion/app/controllers/HealthCheck.scala @@ -3,7 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9007, - NeverExpiresSingleHealthCheck("/discussion/p/37v3a")) +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( + NeverExpiresSingleHealthCheck("/discussion/p/37v3a") +)(wsClient) diff --git a/discussion/test/package.scala b/discussion/test/package.scala index 68e1afbc9070..e9a7205f9d95 100644 --- a/discussion/test/package.scala +++ b/discussion/test/package.scala @@ -1,8 +1,7 @@ package test import conf.Configuration -import controllers.HealthCheck -import org.scalatest.{BeforeAndAfterAll, Suites} +import org.scalatest.Suites import recorder.DefaultHttpRecorder import play.api.libs.ws.WSClient import java.io.File @@ -39,8 +38,6 @@ class DiscussionTestSuite extends Suites ( new discussion.DiscussionApiTest, new CommentCountControllerTest, new ProfileTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19008 } diff --git a/facia/app/controllers/HealthCheck.scala b/facia/app/controllers/HealthCheck.scala index 17733e8a8046..7eb6c6c4793f 100644 --- a/facia/app/controllers/HealthCheck.scala +++ b/facia/app/controllers/HealthCheck.scala @@ -4,13 +4,11 @@ import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient import play.api.mvc.{Action, AnyContent} import services.ConfigAgent - import scala.concurrent.Future -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9008, - NeverExpiresSingleHealthCheck("/uk/business")) { +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( + NeverExpiresSingleHealthCheck("/uk/business") +)(wsClient) { override def healthCheck(): Action[AnyContent] = Action.async { request => if (!ConfigAgent.isLoaded()) { diff --git a/facia/test/package.scala b/facia/test/package.scala index b5a245208e05..96157ca45cc4 100644 --- a/facia/test/package.scala +++ b/facia/test/package.scala @@ -2,10 +2,9 @@ package test import java.io.File -import controllers.HealthCheck import controllers.front.FrontJsonFapiLive import org.fluentlenium.core.domain.FluentWebElement -import org.scalatest.{BeforeAndAfterAll, Suites} +import org.scalatest.Suites import play.api.libs.ws.WSClient import recorder.HttpRecorder @@ -55,8 +54,6 @@ class FaciaTestSuite extends Suites ( new views.fragments.nav.NavigationTest, new FaciaControllerTest, new metadata.FaciaMetaDataTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19009 } diff --git a/identity/app/controllers/HealthCheck.scala b/identity/app/controllers/HealthCheck.scala index 9d766f06f8dc..f3dc6c4762e9 100644 --- a/identity/app/controllers/HealthCheck.scala +++ b/identity/app/controllers/HealthCheck.scala @@ -3,7 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9010, - NeverExpiresSingleHealthCheck("/signin")) +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( + NeverExpiresSingleHealthCheck("/signin") +)(wsClient) diff --git a/identity/test/controllers/IdentityTestSuite.scala b/identity/test/controllers/IdentityTestSuite.scala index ffbf5ddface2..675de257bf51 100644 --- a/identity/test/controllers/IdentityTestSuite.scala +++ b/identity/test/controllers/IdentityTestSuite.scala @@ -1,14 +1,12 @@ package controllers -import org.scalatest.{BeforeAndAfterAll, Suites} -import test.{SingleServerSuite, WithTestWsClient} +import org.scalatest.Suites +import test.SingleServerSuite class IdentityTestSuite extends Suites( new EditProfileControllerTest, new EmailControllerTest, new SignoutControllerTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19010 } diff --git a/onward/app/controllers/HealthCheck.scala b/onward/app/controllers/HealthCheck.scala index d0a8909a4d30..da2e49624a9f 100644 --- a/onward/app/controllers/HealthCheck.scala +++ b/onward/app/controllers/HealthCheck.scala @@ -3,9 +3,7 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9011, +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/top-stories.json"), NeverExpiresSingleHealthCheck("/most-read/society.json") -) +)(wsClient) diff --git a/onward/test/package.scala b/onward/test/package.scala index af56ee284f1a..acfd95e34fc3 100644 --- a/onward/test/package.scala +++ b/onward/test/package.scala @@ -1,7 +1,6 @@ package test -import controllers.HealthCheck -import org.scalatest.{BeforeAndAfterAll, Suites} +import org.scalatest.Suites class OnwardTestSuite extends Suites ( new controllers.ChangeEditionControllerTest, @@ -15,9 +14,6 @@ class OnwardTestSuite extends Suites ( new TopStoriesControllerTest, new VideoInSectionTest, new RichLinkControllerTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19011 } diff --git a/preview/app/AppLoader.scala b/preview/app/AppLoader.scala index 54dc816c0ffc..2817c4790d66 100644 --- a/preview/app/AppLoader.scala +++ b/preview/app/AppLoader.scala @@ -7,7 +7,6 @@ import model.ApplicationIdentity import play.api.ApplicationLoader.Context import play.api._ import play.api.http.HttpErrorHandler -import play.api.libs.ws.WSClient import play.api.mvc.EssentialFilter import play.api.routing.Router import router.Routes @@ -17,16 +16,9 @@ class AppLoader extends FrontendApplicationLoader { override def buildComponents(context: Context): FrontendComponents = new BuiltInComponentsFromContext(context) with AppComponents } -trait Controllers { - def wsClient: WSClient - lazy val healthCheck = wire[HealthCheck] - lazy val responsiveViewerController = wire[ResponsiveViewerController] -} - trait AppComponents extends FrontendComponents with StandaloneControllerComponents - with Controllers with StandaloneLifecycleComponents with AdminJobsServices with OnwardServices @@ -36,6 +28,9 @@ trait AppComponents override lazy val contentApiClient = wire[ContentApiClient] override lazy val ophanApi = wire[OphanApi] + lazy val healthCheck = wire[HealthCheck] + lazy val responsiveViewerController = wire[ResponsiveViewerController] + lazy val standaloneRoutes: standalone.Routes = wire[standalone.Routes] override def router: Router = wire[Routes] diff --git a/preview/app/controllers/HealthCheck.scala b/preview/app/controllers/HealthCheck.scala index 09ad7627e017..ef8da315d619 100644 --- a/preview/app/controllers/HealthCheck.scala +++ b/preview/app/controllers/HealthCheck.scala @@ -3,8 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9017, +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/world/2012/sep/11/barcelona-march-catalan-independence") -) +)(wsClient) diff --git a/preview/test/PreviewServerTest.scala b/preview/test/PreviewServerTest.scala index 2a4358402457..7ebce3e731f3 100644 --- a/preview/test/PreviewServerTest.scala +++ b/preview/test/PreviewServerTest.scala @@ -4,11 +4,8 @@ import org.scalatest._ class PreviewTestSuite extends Suites ( new PreviewServerTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - - override lazy val port: Int = new controllers.HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19012 } @DoNotDiscover class PreviewServerTest extends FlatSpec with Matchers with ConfiguredTestSuite { diff --git a/rss/app/controllers/HealthCheck.scala b/rss/app/controllers/HealthCheck.scala index 1e50611e4df1..db857a2aacc6 100644 --- a/rss/app/controllers/HealthCheck.scala +++ b/rss/app/controllers/HealthCheck.scala @@ -3,8 +3,6 @@ package controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9014, +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/books/harrypotter/rss") -) +)(wsClient) diff --git a/sport/app/football/controllers/HealthCheck.scala b/sport/app/football/controllers/HealthCheck.scala index a28feaac0c92..6834917f278e 100644 --- a/sport/app/football/controllers/HealthCheck.scala +++ b/sport/app/football/controllers/HealthCheck.scala @@ -3,9 +3,7 @@ package football.controllers import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import play.api.libs.ws.WSClient -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9013, +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/football/live"), NeverExpiresSingleHealthCheck("/football/premierleague/results") -) +)(wsClient) diff --git a/sport/test/package.scala b/sport/test/package.scala index d01c093e702c..1e73b2da7ab3 100644 --- a/sport/test/package.scala +++ b/sport/test/package.scala @@ -5,9 +5,8 @@ import java.io.File import common.ExecutionContexts import conf.{FootballClient, SportConfiguration} import football.collections.RichListTest -import football.controllers.HealthCheck import football.model._ -import org.scalatest.{BeforeAndAfterAll, Suites} +import org.scalatest.Suites import pa.{Http, Response => PaResponse} import play.api.libs.ws.WSClient import recorder.{DefaultHttpRecorder, HttpRecorder} @@ -34,8 +33,8 @@ class SportTestSuite extends Suites ( new MatchFeatureTest, new ResultsFeatureTest, new rugby.model.MatchParserTest -) with SingleServerSuite with BeforeAndAfterAll with WithTestWsClient { - override lazy val port: Int = new HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19013 } trait WithTestFootballClient { diff --git a/training-preview/app/AppLoader.scala b/training-preview/app/AppLoader.scala index 09084bdbbe3c..7f0ea2e18ca5 100644 --- a/training-preview/app/AppLoader.scala +++ b/training-preview/app/AppLoader.scala @@ -16,15 +16,9 @@ class AppLoader extends FrontendApplicationLoader { override def buildComponents(context: Context): FrontendComponents = new BuiltInComponentsFromContext(context) with AppComponents } -trait Controllers { - def wsClient: WSClient - lazy val healthCheck = wire[HealthCheck] -} - trait AppComponents extends FrontendComponents with StandaloneControllerComponents - with Controllers with StandaloneLifecycleComponents with AdminJobsServices with ApplicationsServices { @@ -33,6 +27,8 @@ trait AppComponents override lazy val contentApiClient = wire[ContentApiClient] override lazy val ophanApi = wire[OphanApi] + lazy val healthCheck = wire[HealthCheck] + lazy val standaloneRoutes: standalone.Routes = wire[standalone.Routes] override def router: Router = wire[Routes] diff --git a/training-preview/app/controllers/HealthCheck.scala b/training-preview/app/controllers/HealthCheck.scala index 4b71dbb5eb63..3fc5043404e6 100644 --- a/training-preview/app/controllers/HealthCheck.scala +++ b/training-preview/app/controllers/HealthCheck.scala @@ -3,10 +3,10 @@ package controllers import common.ExecutionContexts import conf.{AllGoodCachedHealthCheck, NeverExpiresSingleHealthCheck} import dispatch.{FunctionHandler, Http} - import scala.concurrent.Future -import contentapi.{ContentApiClient, HttpClient, Response} +import contentapi.{HttpClient, Response} import conf.Configuration.contentApi.previewAuth +import play.api.Environment import play.api.libs.ws.WSClient class TrainingHttp extends HttpClient with ExecutionContexts { @@ -40,8 +40,6 @@ class TrainingHttp extends HttpClient with ExecutionContexts { } } -class HealthCheck(override val wsClient: WSClient) extends AllGoodCachedHealthCheck( - wsClient, - 9016, +class HealthCheck(wsClient: WSClient) extends AllGoodCachedHealthCheck( NeverExpiresSingleHealthCheck("/info/developer-blog/2016/apr/14/training-preview-healthcheck") -) +)(wsClient) diff --git a/training-preview/test/PreviewServerTest.scala b/training-preview/test/PreviewServerTest.scala index 84b5dec686e3..9e888b993862 100644 --- a/training-preview/test/PreviewServerTest.scala +++ b/training-preview/test/PreviewServerTest.scala @@ -4,11 +4,8 @@ import org.scalatest._ class TrainingTestSuite extends Suites ( new TrainingServerTest -) with SingleServerSuite - with BeforeAndAfterAll - with WithTestWsClient { - - override lazy val port: Int = new controllers.HealthCheck(wsClient).testPort +) with SingleServerSuite { + override lazy val port: Int = 19014 } @DoNotDiscover class TrainingServerTest extends FlatSpec with Matchers with ConfiguredTestSuite {