From 2692942fc0e9f10f0cca2e2e306d16e661ccd70b Mon Sep 17 00:00:00 2001 From: LizBaldo Date: Fri, 2 Feb 2024 10:48:57 -0500 Subject: [PATCH] fix existing tests and add httpRoute unit tests --- .../leonardo/http/api/HttpRoutesSpec.scala | 24 +++++++++++++++++++ .../leonardo/http/api/ProxyRoutesSpec.scala | 2 ++ .../leonardo/http/api/TestLeoRoutes.scala | 2 ++ .../http/service/MockResourcesService.scala | 14 +++++++++++ .../service/ResourcesServiceInterpSpec.scala | 8 +++++++ 5 files changed, 50 insertions(+) create mode 100644 http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/MockResourcesService.scala create mode 100644 http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/ResourcesServiceInterpSpec.scala diff --git a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutesSpec.scala b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutesSpec.scala index 30f27b579c3..9e2c927ce0c 100644 --- a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutesSpec.scala +++ b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/HttpRoutesSpec.scala @@ -58,6 +58,7 @@ class HttpRoutesSpec MockAppService, new MockRuntimeV2Interp, MockAdminServiceInterp, + MockResourcesService, timedUserInfoDirectives, contentSecurityPolicy, refererConfig @@ -74,6 +75,7 @@ class HttpRoutesSpec MockAppService, new MockRuntimeV2Interp, MockAdminServiceInterp, + MockResourcesService, timedUserInfoDirectives, contentSecurityPolicy, RefererConfig(Set("bvdp-saturn-dev.appspot.com/"), true) @@ -90,6 +92,7 @@ class HttpRoutesSpec MockAppService, new MockRuntimeV2Interp, MockAdminServiceInterp, + MockResourcesService, timedUserInfoDirectives, contentSecurityPolicy, RefererConfig(Set("*", "bvdp-saturn-dev.appspot.com/"), true) @@ -106,6 +109,7 @@ class HttpRoutesSpec MockAppService, new MockRuntimeV2Interp, MockAdminServiceInterp, + MockResourcesService, timedUserInfoDirectives, contentSecurityPolicy, RefererConfig(Set.empty, false) @@ -851,6 +855,24 @@ class HttpRoutesSpec } } + it should "run a basic delete all resources request" in { + Delete( + "/api/google/v1/resources/googleProject1/deleteAll?deleteInCloud=true?deleteDisk=false" + ) ~> httpRoutes.route ~> check { + status shouldEqual StatusCodes.Accepted + validateRawCookie(header("Set-Cookie")) + } + } + + it should "fail to run a basic delete all resources request if both flags are false" in { + Delete( + "/api/google/v1/resources/googleProject1/deleteAll?deleteInCloud=false?deleteDisk=false" + ) ~> httpRoutes.route ~> check { + status shouldEqual StatusCodes.BadRequest + validateRawCookie(header("Set-Cookie")) + } + } + // Validate encoding/decoding of RuntimeConfigRequest types // TODO should these decoders move to JsonCodec in core module? @@ -902,6 +924,7 @@ class HttpRoutesSpec MockAppService, runtimev2Service, MockAdminServiceInterp, + MockResourcesService, timedUserInfoDirectives, contentSecurityPolicy, refererConfig @@ -918,6 +941,7 @@ class HttpRoutesSpec kubernetesService, runtimev2Service, MockAdminServiceInterp, + MockResourcesService, timedUserInfoDirectives, contentSecurityPolicy, refererConfig diff --git a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/ProxyRoutesSpec.scala b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/ProxyRoutesSpec.scala index 433658e194b..e2db1d1c7bb 100644 --- a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/ProxyRoutesSpec.scala +++ b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/ProxyRoutesSpec.scala @@ -549,6 +549,7 @@ class ProxyRoutesSpec leoKubernetesService, runtimev2Service, MockAdminServiceInterp, + MockResourcesService, userInfoDirectives, contentSecurityPolicy, refererConfig @@ -720,6 +721,7 @@ class ProxyRoutesSpec leoKubernetesService, runtimev2Service, MockAdminServiceInterp, + MockResourcesService, userInfoDirectives, contentSecurityPolicy, useRefererConfig diff --git a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/TestLeoRoutes.scala b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/TestLeoRoutes.scala index 53b49f38c11..b73507c17e4 100644 --- a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/TestLeoRoutes.scala +++ b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/api/TestLeoRoutes.scala @@ -206,6 +206,7 @@ trait TestLeoRoutes { leoKubernetesService, runtimev2Service, MockAdminServiceInterp, + MockResourcesService, userInfoDirectives, contentSecurityPolicy, refererConfig @@ -222,6 +223,7 @@ trait TestLeoRoutes { leoKubernetesService, runtimev2Service, MockAdminServiceInterp, + MockResourcesService, timedUserInfoDirectives, contentSecurityPolicy, refererConfig diff --git a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/MockResourcesService.scala b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/MockResourcesService.scala new file mode 100644 index 00000000000..ad89c26244f --- /dev/null +++ b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/MockResourcesService.scala @@ -0,0 +1,14 @@ +package org.broadinstitute.dsde.workbench.leonardo.http.service + +import cats.mtl.Ask +import cats.effect.IO +import org.broadinstitute.dsde.workbench.leonardo.AppContext +import org.broadinstitute.dsde.workbench.model.google.GoogleProject +import org.broadinstitute.dsde.workbench.model.UserInfo + +object MockResourcesService extends ResourcesService[IO] { + + def deleteAllResources(userInfo: UserInfo, googleProject: GoogleProject, deleteInCloud: Boolean, deleteDisk: Boolean)( + implicit as: Ask[IO, AppContext] + ): IO[Unit] = IO.unit +} diff --git a/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/ResourcesServiceInterpSpec.scala b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/ResourcesServiceInterpSpec.scala new file mode 100644 index 00000000000..87f3ef1c9da --- /dev/null +++ b/http/src/test/scala/org/broadinstitute/dsde/workbench/leonardo/http/service/ResourcesServiceInterpSpec.scala @@ -0,0 +1,8 @@ +package org.broadinstitute.dsde.workbench.leonardo +package http +package service + +import org.broadinstitute.dsde.workbench.leonardo.db.TestComponent +import org.scalatest.flatspec.AnyFlatSpec + +final class ResourcesServiceInterpSpec extends AnyFlatSpec with LeonardoTestSuite with TestComponent {}