c

munit

HttpSuite

abstract class HttpSuite extends Http4sSuite[Unit] with CatsEffectFunFixtures

Base class for suites testing remote HTTP servers.

To use this class you'll need to provide the Uri of the remote container by overriding baseUri.

Example:
  1. import io.circe.Json
    
    import org.http4s.Method.GET
    import org.http4s.Uri
    import org.http4s.circe._
    import org.http4s.client.dsl.io._
    import org.http4s.syntax.all._
    
    class HttpSuiteSuite extends munit.HttpSuite {
    
     override def baseUri(): Uri = uri"https://api.github.com"
    
     test(GET(uri"users/gutiory")) { response =>
       assertEquals(response.status.code, 200)
    
       val result = response.as[Json].map(_.hcursor.get[String]("login"))
    
       assertIO(result, Right("gutiory"))
     }
    
    }
Linear Supertypes
Http4sSuite[Unit], CatsEffectSuite, CatsEffectFunFixtures, CatsEffectAssertions, FunSuite, ValueTransforms, SuiteTransforms, TestTransforms, TestOptionsConversions, FunFixtures, Assertions, CompileErrorMacro, Suite, PlatformSuite, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. HttpSuite
  2. Http4sSuite
  3. CatsEffectSuite
  4. CatsEffectFunFixtures
  5. CatsEffectAssertions
  6. FunSuite
  7. ValueTransforms
  8. SuiteTransforms
  9. TestTransforms
  10. TestOptionsConversions
  11. FunFixtures
  12. Assertions
  13. CompileErrorMacro
  14. Suite
  15. PlatformSuite
  16. AnyRef
  17. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new HttpSuite()

Type Members

  1. case class Http4sMUnitTestCreator(request: ContextRequest[IO, A], followingRequests: List[(String, (Response[IO]) => IO[ContextRequest[IO, A]])] = Nil, testOptions: TestOptions = TestOptions(""), config: Http4sMUnitConfig = Http4sMUnitConfig.default) extends Product with Serializable
    Definition Classes
    Http4sSuite
  2. final type AfterEach = GenericAfterEach[TestValue]
    Definition Classes
    Suite
  3. final type BeforeEach = GenericBeforeEach[TestValue]
    Definition Classes
    Suite
  4. abstract class Fixture[T] extends AnyRef
    Definition Classes
    Suite
  5. class FunFixture[T] extends AnyRef
    Definition Classes
    FunFixtures
  6. implicit class Http4sMUnitTestCreatorOps extends AnyRef
  7. implicit class MUnitCatsAssertionsForIOBooleanOps extends AnyRef
    Definition Classes
    CatsEffectAssertions
  8. implicit class MUnitCatsAssertionsForIOOps[A] extends AnyRef
    Definition Classes
    CatsEffectAssertions
  9. implicit class MUnitCatsAssertionsForSyncIOOps[A] extends AnyRef
    Definition Classes
    CatsEffectAssertions
  10. final class SuiteTransform extends (List[FunSuite.Test]) => List[FunSuite.Test]
    Definition Classes
    SuiteTransforms
  11. implicit class SyncIOFunFixtureOps[T] extends AnyRef
    Definition Classes
    CatsEffectFunFixtures
  12. final type Test = GenericTest[TestValue]
    Definition Classes
    Suite
  13. final class TestTransform extends (FunSuite.Test) => FunSuite.Test
    Definition Classes
    TestTransforms
  14. final type TestValue = Future[Any]
    Definition Classes
    FunSuite → Suite
  15. final class ValueTransform extends (Any) => Option[Future[Any]]
    Definition Classes
    ValueTransforms

Abstract Value Members

  1. abstract def baseUri(): Uri

    The base URI for all tests.

    The base URI for all tests. This URI will prepend the one used in each test's request.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def afterAll(): Unit
    Definition Classes
    Suite
  5. def afterEach(context: AfterEach): Unit
    Definition Classes
    Suite
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def assert(cond: => Boolean, clue: => Any)(implicit loc: Location): Unit
    Definition Classes
    Assertions
  8. def assertEquals[A, B](obtained: A, expected: B, clue: => Any)(implicit loc: Location, ev: <:<[B, A]): Unit
    Definition Classes
    Assertions
  9. def assertEqualsDouble(obtained: Double, expected: Double, delta: Double, clue: => Any)(implicit loc: Location): Unit
    Definition Classes
    Assertions
  10. def assertEqualsFloat(obtained: Float, expected: Float, delta: Float, clue: => Any)(implicit loc: Location): Unit
    Definition Classes
    Assertions
  11. def assertIO[A, B](obtained: IO[A], returns: B, clue: => Any)(implicit loc: Location, ev: <:<[B, A]): IO[Unit]
    Definition Classes
    CatsEffectAssertions
  12. def assertIOBoolean(obtained: IO[Boolean], clue: => Any)(implicit loc: Location): IO[Unit]
    Attributes
    protected
    Definition Classes
    CatsEffectAssertions
  13. def assertNoDiff(obtained: String, expected: String, clue: => Any)(implicit loc: Location): Unit
    Definition Classes
    Assertions
  14. def assertNotEquals[A, B](obtained: A, expected: B, clue: => Any)(implicit loc: Location, ev: =:=[A, B]): Unit
    Definition Classes
    Assertions
  15. def assertSyncIO[A, B](obtained: SyncIO[A], returns: B, clue: => Any)(implicit loc: Location, ev: <:<[B, A]): SyncIO[Unit]
    Definition Classes
    CatsEffectAssertions
  16. def assume(cond: Boolean, clue: => Any)(implicit loc: Location): Unit
    Definition Classes
    Assertions
  17. def beforeAll(): Unit
    Definition Classes
    Suite
  18. def beforeEach(context: BeforeEach): Unit
    Definition Classes
    Suite
  19. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  20. def clue[T](c: Clue[T]): T
    Definition Classes
    Assertions
  21. def clues(clue: Clue[_]*): Clues
    Definition Classes
    Assertions
  22. macro def compileErrors(code: String): String
    Definition Classes
    CompileErrorMacro
  23. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  25. def fail(message: String, clues: Clues)(implicit loc: Location): Nothing
    Definition Classes
    Assertions
  26. def fail(message: String, cause: Throwable)(implicit loc: Location): Nothing
    Definition Classes
    Assertions
  27. def failComparison(message: String, obtained: Any, expected: Any, clues: Clues)(implicit loc: Location): Nothing
    Definition Classes
    Assertions
  28. def failSuite(message: String, clues: Clues)(implicit loc: Location): Nothing
    Definition Classes
    Assertions
  29. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  30. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  31. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  32. def http4sMUnitBodyPrettifier(body: String): String

    Allows pretiffing the response's body before outputting it to logs.

    Allows pretiffing the response's body before outputting it to logs.

    By default it will try to parse it as JSON and apply a code highlight if munitAnsiColors is true.

    body

    the response's body to prettify

    returns

    the prettified version of the response's body

    Definition Classes
    Http4sSuite
  33. def http4sMUnitClient: Resource[IO, Client[IO]]

    This client is used under the hood to execute the requests.

    This client is used under the hood to execute the requests.

    Override it if you want to use a different implementation or if you want to initalize it in any way out of the default one (different timeouts, SSL certificates...).

  34. def http4sMUnitFunFixture: SyncIO[FunFixture[(ContextRequest[IO, Unit]) => Resource[IO, Response[IO]]]]

    Base fixture used to obtain a response from a request.

    Base fixture used to obtain a response from a request. Can be re-implemented if you want to override the default behaviour of a suite.

    Definition Classes
    HttpSuiteHttp4sSuite
  35. def http4sMUnitNameCreator(request: ContextRequest[IO, Unit], followingRequests: List[String], testOptions: TestOptions, config: Http4sMUnitConfig): String

    Allows altering the name of the generated tests.

    Allows altering the name of the generated tests.

    By default it will generate test names like:

    // GET -> users/42
    test(GET(uri"users" / 42))
    
    // GET -> users (All users)
    test(GET(uri"users")).alias("All users")
    
    // GET -> users as user-1
    test(GET(uri"users").as("user-1"))
    
    // GET -> users - executed 10 times with 2 in parallel
    test(GET(uri"users")).repeat(10).parallel(2)
    
    // GET -> users (retrieve the list of users and get the first user from the list)
    test(GET(uri"users"))
       .alias("retrieve the list of users")
       .andThen("get the first user from the list")(_.as[List[User]].flatMap {
         case Nil               => fail("The list of users should not be empty")
         case (head: User) :: _ => GET(uri"users" / head.id.show)
       })
    request

    the test's request

    followingRequests

    the following request' aliases

    testOptions

    the options for the current test

    config

    the configuration for this test

    returns

    the test's name

    Definition Classes
    Http4sSuite
  36. def intercept[T <: Throwable](body: => Any)(implicit T: ClassTag[T], loc: Location): T
    Definition Classes
    Assertions
  37. def interceptIO[T <: Throwable](io: IO[Any])(implicit T: ClassTag[T], loc: Location): IO[T]
    Definition Classes
    CatsEffectAssertions
  38. def interceptMessage[T <: Throwable](expectedExceptionMessage: String)(body: => Any)(implicit T: ClassTag[T], loc: Location): T
    Definition Classes
    Assertions
  39. def interceptMessageIO[T <: Throwable](expectedExceptionMessage: String)(io: IO[Any])(implicit T: ClassTag[T], loc: Location): IO[T]
    Definition Classes
    CatsEffectAssertions
  40. def interceptMessageSyncIO[T <: Throwable](expectedExceptionMessage: String)(io: SyncIO[Any])(implicit T: ClassTag[T], loc: Location): SyncIO[T]
    Definition Classes
    CatsEffectAssertions
  41. def interceptSyncIO[T <: Throwable](io: SyncIO[Any])(implicit T: ClassTag[T], loc: Location): SyncIO[T]
    Definition Classes
    CatsEffectAssertions
  42. def isCI: Boolean
    Definition Classes
    SuiteTransforms
  43. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  44. def munitAnsiColors: Boolean
    Definition Classes
    Assertions
  45. def munitCaptureClues[T](thunk: => T): (T, Clues)
    Definition Classes
    Assertions
  46. implicit def munitContextShift: ContextShift[IO]
    Definition Classes
    CatsEffectSuite
  47. def munitExecutionContext: ExecutionContext
    Definition Classes
    Suite
  48. final def munitFailTransform: TestTransform
    Definition Classes
    TestTransforms
  49. def munitFixtures: Seq[Fixture[_]]
    Definition Classes
    Suite
  50. def munitFlakyOK: Boolean
    Definition Classes
    TestTransforms
  51. final def munitFlakyTransform: TestTransform
    Definition Classes
    TestTransforms
  52. final def munitFutureTransform: ValueTransform
    Definition Classes
    ValueTransforms
  53. def munitIgnore: Boolean
    Definition Classes
    SuiteTransforms
  54. final def munitIgnoreSuiteTransform: SuiteTransform
    Definition Classes
    SuiteTransforms
  55. val munitLines: Lines
    Definition Classes
    Assertions
  56. final def munitOnlySuiteTransform: SuiteTransform
    Definition Classes
    SuiteTransforms
  57. def munitPrint(clue: => Any): String
    Definition Classes
    Assertions
  58. final def munitSuiteTransform(tests: List[Test]): List[Test]
    Definition Classes
    SuiteTransforms
  59. def munitSuiteTransforms: List[SuiteTransform]
    Definition Classes
    SuiteTransforms
  60. final def munitTestTransform(test: Test): Test
    Definition Classes
    TestTransforms
  61. def munitTestTransforms: List[TestTransform]
    Definition Classes
    TestTransforms
  62. def munitTests(): Seq[Test]
    Definition Classes
    FunSuite → Suite
  63. final val munitTestsBuffer: ListBuffer[Test]
    Definition Classes
    FunSuite
  64. def munitTimeout: Duration
    Definition Classes
    FunSuite
  65. implicit def munitTimer: Timer[IO]
    Definition Classes
    CatsEffectSuite
  66. final def munitValueTransform(testValue: => Any): Future[Any]
    Definition Classes
    ValueTransforms
  67. def munitValueTransforms: List[ValueTransform]
    Definition Classes
    CatsEffectSuite → ValueTransforms
  68. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  69. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  70. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  71. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  72. def test(request: IO[Request[IO]]): Http4sMUnitTestCreator

    Declares a test for the provided request.

    Declares a test for the provided request. That request will be executed using the provided client in httpClient to the server indicated in baseUri.

    Examples:
    1. test(GET(uri"users" / 42)) { response =>
         // test body
      }
    2. ,
    3. test(POST(json, uri"users")).alias("Create a new user") { response =>
         // test body
      }
    4. ,
    5. test(GET(uri"users" / 42)).flaky { response =>
         // test body
      }
  73. def test(options: TestOptions)(body: => Any)(implicit loc: Location): Unit
    Definition Classes
    FunSuite
  74. def test(name: String)(body: => Any)(implicit loc: Location): Unit
    Definition Classes
    FunSuite
  75. implicit def testOptionsFromString(name: String)(implicit loc: Location): TestOptions
    Definition Classes
    TestOptionsConversions
  76. def toString(): String
    Definition Classes
    AnyRef → Any
  77. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  78. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  79. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  80. object FunFixture
    Definition Classes
    FunFixtures
  81. object ResourceFixture
    Definition Classes
    CatsEffectFunFixtures

Inherited from Http4sSuite[Unit]

Inherited from CatsEffectSuite

Inherited from CatsEffectFunFixtures

Inherited from CatsEffectAssertions

Inherited from FunSuite

Inherited from ValueTransforms

Inherited from SuiteTransforms

Inherited from TestTransforms

Inherited from TestOptionsConversions

Inherited from FunFixtures

Inherited from Assertions

Inherited from CompileErrorMacro

Inherited from Suite

Inherited from PlatformSuite

Inherited from AnyRef

Inherited from Any

Ungrouped