Add OpenAPI verifier to verify endpoints against OpenAPI spec #11394
415 passed, 0 failed and 0 skipped
✅ core/target/native-3/test-reports/TEST-sttp.tapir.annotations.DeriveEndpointIOTest.xml
30 tests were completed in 2ms with 30 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.annotations.DeriveEndpointIOTest | 30✅ | 2ms |
✅ sttp.tapir.annotations.DeriveEndpointIOTest
✅ @endpointInput should derive correct input for @query, @cookie, @header
✅ @endpointInput should derive correct input for dealiased bodies
✅ @endpointInput should derive correct input for @queries, @headers, @cookies
✅ @endpointInput should derive correct input for auth annotations
✅ @endpointInput should derive correct input for auth annotations with named security schemes
✅ @endpointInput should derive input with descriptions
✅ @endpointInput should derive input with paths
✅ @endpointInput should derive correct input with schema annotations
✅ @endpointInput should derive default annotation correctly
✅ @endpointInput should customise inputs
✅ @endpointInput should derive correct input for byte array body
✅ @endpointInput should derive correct input for byte buffer body
✅ @endpointInput should derive correct input for input stream body
✅ @endpointInput should derive correct input for form body
✅ @endpointInput should derive correct input for file body
✅ @endpointInput should derive correct input for multipart body
✅ @endpointInput should accept empty case classes when annotated with @endpointInput
✅ @endpointInput should not compile if there is field without annotation
✅ @endpointInput should not compile if there are two body annotations
✅ @endpointInput should not compile for alone @apikey
✅ @endpointInput should not compile for body without JSON codec
✅ @endpointInput should not compile when not all paths are captured in case class
✅ @endpointInput should not compile when not all paths are captured in path
✅ @endpointInput should not compile when path contains duplicated variable
✅ @endpointOutput should devive correct output for @header, @setCookie, @statusCode
✅ @endpointOutput should derive correct output for @headers, @cookies, @setCookies
✅ @endpointOutput should not compile if there is field without annotation
✅ @endpointOutput should not compile if there are two body annotations
✅ @endpointOutput should not compile for wrong field type
✅ @endpointOutput should not report ambiguous header import errors
✅ core/target/native-3/test-reports/TEST-sttp.tapir.AttributeTest.xml
3 tests were completed in 0ms with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.AttributeTest | 3✅ | 0ms |
✅ sttp.tapir.AttributeTest
✅ should create an attribute key for a case class
✅ should create an attribute key for a list of case classes
✅ should create an attribute key for a list of generic case classes
✅ core/target/native-3/test-reports/TEST-sttp.tapir.CodecDelimitedTest.xml
2 tests were completed in 13ms with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.CodecDelimitedTest | 2✅ | 13ms |
✅ sttp.tapir.CodecDelimitedTest
✅ should encode and decode comma-separated values
✅ should encode and decode comma-separated values in a list
✅ core/target/native-3/test-reports/TEST-sttp.tapir.CodecScala3Test.xml
1 tests were completed in 1ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.CodecScala3Test | 1✅ | 1ms |
✅ sttp.tapir.CodecScala3Test
✅ should derive a codec for a string-based union type
✅ core/target/native-3/test-reports/TEST-sttp.tapir.CodecTest.xml
6 tests were completed in 164ms with 6 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.CodecTest | 6✅ | 164ms |
✅ sttp.tapir.CodecTest
✅ should encode simple types using .toString
✅ should use default, when available
✅ should correctly encode and decode Date
✅ should create a part codec
✅ should call the validator during decoding when using .mapValidate
✅ should provide a mapEither function
✅ core/target/native-3/test-reports/TEST-sttp.tapir.EndpointScala3Test.xml
3 tests were completed in 0ms with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.EndpointScala3Test | 3✅ | 0ms |
✅ sttp.tapir.EndpointScala3Test
✅ oneOfVariant should compile when using parametrised enums
✅ oneOfVariant should compile when using parameterless sealed traits
✅ oneOfVariant should not compile when using parameterless enums
✅ core/target/native-3/test-reports/TEST-sttp.tapir.EndpointTest.xml
76 tests were completed in 3ms with 76 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.EndpointTest | 76✅ | 3ms |
✅ sttp.tapir.EndpointTest
✅ endpoint should compile inputs
✅ endpoint should compile security inputs
✅ endpoint should compile map security into case class
✅ endpoint should compile a path fold
✅ endpoint should compile inputs with streams
✅ endpoint should compile outputs
✅ endpoint should compile outputs with streams
✅ endpoint should compile error outputs
✅ endpoint should compile one-of empty output
✅ endpoint should allow to map status code multiple times to same format different charset
✅ endpoint should compile one-of empty output of a custom type
✅ endpoint should compile with a single error variant
✅ endpoint should compile with multiple error variants
✅ oneOfVariant should not compile when the type erasure of `T` is different from `T`
✅ tupling should combine two inputs
✅ tupling should combine four inputs in two groups
✅ tupling should combine four inputs in two groups, through an extend method (right)
✅ tupling should combine four inputs in two groups, through an extend method (left)
✅ show for Endpoint(securityin: -, in: /p1%2Fp2, errout: -, out: -) should be /p1%2Fp2 -> -/-
✅ show for Endpoint[E1](securityin: -, in: /p1, errout: -, out: -) should be [E1] /p1 -> -/-
✅ show for Endpoint(securityin: -, in: GET /p1 /p2, errout: -, out: -) should be GET /p1 /p2 -> -/-
✅ show for Endpoint(securityin: -, in: /p1 /[p2] /*, errout: -, out: -) should be /p1 /[p2] /* -> -/-
✅ show for Endpoint(securityin: -, in: POST ?q1 ?q2 {body as text/plain (UTF-8)}, errout: {body as text/plain (UTF-8)}, out: -) should be POST ?q1 ?q2 {body as text/plain (UTF-8)} -> {body as text/plain (UTF-8)}/-
✅ show for Endpoint(securityin: -, in: GET {header X-header}, errout: -, out: {header Y-header}) should be GET {header X-header} -> -/{header Y-header}
✅ show for Endpoint(securityin: -, in: GET, errout: -, out: one of({body as text/plain (UTF-8)}|{body as application/octet-stream})) should be GET -> -/one of({body as text/plain (UTF-8)}|{body as application/octet-stream})
✅ show for Endpoint(securityin: -, in: GET, errout: -, out: {body as text/plain (UTF-8)}) should be GET -> -/{body as text/plain (UTF-8)}
✅ show for Endpoint(securityin: -, in: GET, errout: -, out: {body as application/octet-stream}) should be GET -> -/{body as application/octet-stream}
✅ short show for Endpoint(securityin: -, in: -, errout: -, out: -) should be * *
✅ short show for Endpoint(securityin: -, in: /p1, errout: -, out: -) should be * /p1
✅ short show for Endpoint(securityin: -, in: /p1 /p2, errout: -, out: -) should be * /p1/p2
✅ short show for Endpoint(securityin: -, in: GET /p1 /p2, errout: -, out: -) should be GET /p1/p2
✅ short show for Endpoint(securityin: -, in: POST, errout: -, out: -) should be POST *
✅ short show for Endpoint(securityin: -, in: GET /p1 /*, errout: -, out: -) should be GET /p1/*
✅ short show for Endpoint[my endpoint](securityin: -, in: GET /p1 /p2, errout: -, out: -) should be [my endpoint]
✅ showPathTemplate for Endpoint(securityin: -, in: -, errout: -, out: -) should be *
✅ showPathTemplate for Endpoint(securityin: -, in: /, errout: -, out: -) should be /
✅ showPathTemplate for Endpoint(securityin: -, in: /p1, errout: -, out: -) should be /p1
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 /p2, errout: -, out: -) should be /p1/p2
✅ showPathTemplate for Endpoint(securityin: /p1, in: /p2, errout: -, out: -) should be /p1/p2
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 /[], errout: -, out: -) should be /p1/{param1}
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 /[par], errout: -, out: -) should be /p1/{par}
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 ?par, errout: -, out: -) should be /p1?par={par}
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 ?par1 ?par2, errout: -, out: -) should be /p1?par1={par1}&par2={par2}
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 /[par1] ?par2, errout: -, out: -) should be /p1/{par1}?par2={par2}
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 auth(api key, via ?par2), errout: -, out: -) should be /p1?par2={par2}
✅ showPathTemplate for Endpoint(securityin: -, in: /p2 /[], errout: -, out: -) should be /p2/{param1}
✅ showPathTemplate for Endpoint(securityin: -, in: /p1%2Fp2, errout: -, out: -) should be /p1%2Fp2
✅ showPathTemplate for Endpoint(securityin: -, in: /8*5%29PpDEeXsx4n.9NjyT%3DYtJuUf%26F%21AamMIi-%40%2C%3BvG61VqQL%27bgBl0_2CH%2BcWh%287rKRw%3A%243k%7EOzSdZo, errout: -, out: -) should be /8*5)PpDEeXsx4n.9NjyT=YtJuUf&F!AamMIi-@,;vG61VqQL'bgBl0_2CH+cWh(7rKRw:$3k~OzSdZo
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 /*, errout: -, out: -) should be /p1/*
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 ?*, errout: -, out: -) should be /p1?*
✅ showPathTemplate for Endpoint(securityin: -, in: /p1 /p2 ?par1 ?par2, errout: -, out: -) should be /p1?par1={par1}
✅ showPathTemplate for Endpoint(securityin: -, in: /not /allowed /chars /hi%3Fhello, errout: -, out: -) should be /not/allowed/chars/hi%3Fhello
✅ showPathTemplate should keep param count in show functions
✅ showPathTemplate should skip query parameters
✅ validate should accumulate validators
✅ validate should add validator for an option
✅ validate should add validator for an iterable
✅ validate should map input and output
✅ httpMethod for Endpoint(securityin: -, in: -, errout: -, out: -) should be None
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] GET, errout: -, out: -) should be Some(GET)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] PUT, errout: -, out: -) should be Some(PUT)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] POST, errout: -, out: -) should be Some(POST)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] HEAD, errout: -, out: -) should be Some(HEAD)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] TRACE, errout: -, out: -) should be Some(TRACE)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] PATCH, errout: -, out: -) should be Some(PATCH)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] CONNECT, errout: -, out: -) should be Some(CONNECT)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] DELETE, errout: -, out: -) should be Some(DELETE)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] OPTIONS, errout: -, out: -) should be Some(OPTIONS)
✅ httpMethod for Endpoint(securityin: -, in: /api /cats /[] XX, errout: -, out: -) should be Some(XX)
✅ compile should work for endpoint descriptions providing partial server logic using serverLogicForCurrent
✅ mapTo should properly map between tuples and case classes of arity 1
✅ mapTo should properly map between tuples and case classes of arity 2
✅ mapTo should fail on invalid field type
✅ mapTo should fail on redundant field
✅ mapTo should fail on missing field
✅ mapTo should compile for case class with defined companion object
✅ core/target/native-3/test-reports/TEST-sttp.tapir.generic.EnumsCodecDerivationTest.xml
4 tests were completed in 3ms with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.generic.EnumsCodecDerivationTest | 4✅ | 3ms |
✅ sttp.tapir.generic.EnumsCodecDerivationTest
✅ should derive codec for an sealed-trait based enum
✅ should derive codec for an Scala enumeration
✅ should derive a customised codec for an Scala enumeration
✅ should derive a default codec for an Scala enumeration
✅ core/target/native-3/test-reports/TEST-sttp.tapir.generic.FormCodecDerivationTest.xml
14 tests were completed in 2ms with 14 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.generic.FormCodecDerivationTest | 14✅ | 2ms |
✅ sttp.tapir.generic.FormCodecDerivationTest
✅ should generate a codec for a one-arg case class
✅ should generate a codec for a two-arg case class
✅ should generate a codec for a three-arg case class
✅ should generate a codec for a case class with optional parameters
✅ should use the right schema for a two-arg case class
✅ should generate a codec for a one-arg case class using snake-case naming transformation
✅ should generate a codec for a one-arg case class using screaming-snake-case naming transformation
✅ should generate a codec for a one-arg case class using kebab-case naming transformation
✅ should generate a codec for a one-arg case class with list
✅ should generate a codec for a one-arg case class with set
✅ should generate a codec for a one-arg case class with vector
✅ should generate a codec for a one-arg case class using implicit schema
✅ should generate a codec for a case class with simple types
✅ should generate a codec with custom field name
✅ core/target/native-3/test-reports/TEST-sttp.tapir.generic.MultipartCodecDerivationTest.xml
13 tests were completed in 2ms with 13 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.generic.MultipartCodecDerivationTest | 13✅ | 2ms |
✅ sttp.tapir.generic.MultipartCodecDerivationTest
✅ should generate a codec for a one-arg case class
✅ should generate a codec for a two-arg case class
✅ should generate a codec for a case class with optional parameters
✅ should use the right schema for a case class with part metadata
✅ should generate a codec for a one-arg case class using snake-case naming transformation
✅ should generate a codec for a one-arg case class using screaming-snake-case naming transformation
✅ should generate a codec for a one-arg case class with list
✅ should generate a codec for a case class with part metadata
✅ should generate a codec for a one-arg case class with implicit validator
✅ should generate a codec with a custom field name
✅ should generate a codec for a case class with file part
✅ should use the right schema for an optional file part with metadata 2
✅ should use the right schema for a two-arg case class
✅ core/target/native-3/test-reports/TEST-sttp.tapir.generic.SchemaGenericAutoTest.xml
29 tests were completed in 4ms with 29 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.generic.SchemaGenericAutoTest | 29✅ | 4ms |
✅ sttp.tapir.generic.SchemaGenericAutoTest
✅ Schema auto derivation should find schema for simple types
✅ Schema auto derivation should find schema for optional types
✅ Schema auto derivation should find schema for collections
✅ Schema auto derivation should find schema for collections of case classes
✅ Schema auto derivation should find schema for a simple case class
✅ Schema auto derivation should find schema for a simple case class and use identity naming transformation
✅ Schema auto derivation should find schema for a nested case class
✅ Schema auto derivation should find schema for case classes with collections
✅ Schema auto derivation should use custom schema for custom types
✅ Schema auto derivation should derive schema for parametrised type classes
✅ Schema auto derivation should find schema for map
✅ Schema auto derivation should find schema for map of products
✅ Schema auto derivation should find schema for map of generic products
✅ Schema auto derivation should add meta-data to schema from annotations
✅ Schema auto derivation should find the right schema for a case class with simple types
✅ Schema auto derivation should find schema for a simple case class and use snake case naming transformation
✅ Schema auto derivation should find schema for a simple case class and use screaming snake case naming transformation
✅ Schema auto derivation should find schema for a simple case class and use kebab case naming transformation
✅ Schema auto derivation should not transform names which are annotated with a custom name
✅ Schema auto derivation should customise the schema using the given function
✅ Schema auto derivation should generate one-of schema using the given discriminator
✅ Schema auto derivation should generate one-of schema using the given discriminator (kebab case subtype names)
✅ Schema auto derivation should generate one-of schema using the given discriminator (snake case subtype names)
✅ Schema auto derivation should generate one-of schema using the given discriminator (screaming snake case subtype names)
✅ Schema auto derivation should generate one-of schema using the given discriminator (full subtype names)
✅ Schema auto derivation should generate one-of schema using the given discriminator (full kebab case subtype names)
✅ Schema auto derivation should generate one-of schema using the given discriminator (full snake case subtype names)
✅ Schema auto derivation should find schema for subtypes containing parent metadata from annotations
✅ Schema auto derivation should add validators for collection and option elements
✅ core/target/native-3/test-reports/TEST-sttp.tapir.generic.ValueClassCodecDerivationTest.xml
1 tests were completed in 0ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.generic.ValueClassCodecDerivationTest | 1✅ | 0ms |
✅ sttp.tapir.generic.ValueClassCodecDerivationTest
✅ should derive codec for value classes
✅ core/target/native-3/test-reports/TEST-sttp.tapir.internal.RichEndpointInputTest.xml
5 tests were completed in 0ms with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.internal.RichEndpointInputTest | 5✅ | 0ms |
✅ sttp.tapir.internal.RichEndpointInputTest
✅ pathTo should find path to self
✅ pathTo should not find path to non existing input
✅ pathTo should find path to input down the hierarchy
✅ pathTo should find path to input from the middle of hierarchy
✅ pathTo should find path to the middle of hierarchy
✅ core/target/native-3/test-reports/TEST-sttp.tapir.internal.RichEndpointOutputTest.xml
1 tests were completed in 1ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.internal.RichEndpointOutputTest | 1✅ | 1ms |
✅ sttp.tapir.internal.RichEndpointOutputTest
✅ output media type should match content type with lower and upper case charset
✅ core/target/native-3/test-reports/TEST-sttp.tapir.internal.UrlencodedDataTest.xml
4 tests were completed in 0ms with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.internal.UrlencodedDataTest | 4✅ | 0ms |
✅ sttp.tapir.internal.UrlencodedDataTest
✅ should handle empty string
✅ should handle single parameter
✅ should handle two parameters
✅ should handle complex data
✅ core/target/native-3/test-reports/TEST-sttp.tapir.namespacing.SchemaMacroNamespaceTest.xml
2 tests were completed in 0ms with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.namespacing.SchemaMacroNamespaceTest | 2✅ | 0ms |
✅ sttp.tapir.namespacing.SchemaMacroNamespaceTest
✅ should compile macro-generated code using derivedEnumeration in a package other than sttp.tapir
✅ should compile macro-generated code for shadowed _root_.scala names
✅ core/target/native-3/test-reports/TEST-sttp.tapir.SchemaAnnotationsTest.xml
1 tests were completed in 0ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.SchemaAnnotationsTest | 1✅ | 0ms |
✅ sttp.tapir.SchemaAnnotationsTest
✅ SchemaAnnotations enrich should derive schema annotations and enrich schema
✅ core/target/native-3/test-reports/TEST-sttp.tapir.SchemaApplyValidationTest.xml
13 tests were completed in 381ms with 13 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.SchemaApplyValidationTest | 13✅ | 381ms |
✅ sttp.tapir.SchemaApplyValidationTest
✅ should validate openProduct
✅ should validate option
✅ should validate iterable
✅ should validate array
✅ should skip collection validation for array if element validator is passing
✅ should skip collection validation for iterable if element validator is passing
✅ should validate product
✅ should use validators defined when modifying the schema
✅ should validate recursive values
✅ should show recursive validators
✅ should validate either
✅ should validate mapped either
✅ should validate oneOf object
✅ core/target/native-3/test-reports/TEST-sttp.tapir.SchemaMacroScala3Test.xml
9 tests were completed in 0ms with 9 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.SchemaMacroScala3Test | 9✅ | 0ms |
✅ sttp.tapir.SchemaMacroScala3Test
✅ should derive a one-of-wrapped schema for enums
✅ should derive schema for union types
✅ should derive schema for a named union type
✅ should derive schema for a union type with generics (same type constructor, different arguments)
✅ should derive schema for a union type with generics (different type constructors)
✅ should derive schema for union types with 3 components
✅ should derive schema for a string-based union type
✅ should derive schema for a const as a string-based union type
✅ should derive a schema for a union of unions when all are string-based constants
✅ core/target/native-3/test-reports/TEST-sttp.tapir.SchemaMacroTest.xml
26 tests were completed in 1ms with 26 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.SchemaMacroTest | 26✅ | 1ms |
✅ sttp.tapir.SchemaMacroTest
✅ apply modification should modify basic schema
✅ apply modification should modify product schema
✅ apply modification should modify product schema with derivation
✅ apply modification should modify nested product schema
✅ apply modification should modify array elements in products
✅ apply modification should modify array in products
✅ apply modification should support chained modifications
✅ apply modification should modify optional parameter
✅ apply modification should modify property of optional parameter
✅ apply modification should modify property of open product
✅ apply modification should modify open product
✅ apply modification should create a map schema with string keys
✅ apply modification should create a map schema with non-string keys
✅ apply modification should work with custom naming configuration
✅ apply modification should Not propagate type encodedName to subtypes of a sealed trait, but keep inheritance for fields
✅ apply modification should add discriminator based on a trait method
✅ apply modification should extract type params for discriminator based on a trait method
✅ apply modification should add the discriminator as a field when using oneOfUsingField
✅ apply modification should create a one-of wrapped schema
✅ apply modification should create a schema using oneOfField given an enum extractor
✅ apply modification should create and enrich a schema for an enum
✅ apply modification should derive schema for a scala enumeration and enrich schema
✅ apply modification should derive a customised schema for a scala enumeration and enrich schema
✅ apply default should add default to product
✅ apply example should add example to product
✅ apply description should add description to product
✅ core/target/native-3/test-reports/TEST-sttp.tapir.SchemaTest.xml
13 tests were completed in 2ms with 13 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.SchemaTest | 13✅ | 2ms |
✅ sttp.tapir.SchemaTest
✅ should modify basic schema
✅ should modify product schema
✅ should modify nested product schema
✅ should modify array elements in products
✅ should modify array in products
✅ should modify property of optional parameter
✅ should modify property of map value
✅ should modify open product schema
✅ should generate one-of schema using the given discriminator
✅ should addDiscriminatorField should only add discriminator field to child schemas if not yet present
✅ should propagate format for optional schemas
✅ should generate correct names for Eithers with parameterized types
✅ should generate correct names for Maps with parameterized types
✅ core/target/native-3/test-reports/TEST-sttp.tapir.typelevel.MatchTypeTest.xml
8 tests were completed in 1s with 8 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.typelevel.MatchTypeTest | 8✅ | 1s |
✅ sttp.tapir.typelevel.MatchTypeTest
✅ MatchType should provide implicit for basic type
✅ MatchType should provide implicit for all primitive class returning true for other primitive type
✅ MatchType should provide implicit for all primitive class returning false for any other primitive type
✅ MatchType should provide implicit for case class
✅ MatchType should provide implicit for sealed stuff
✅ MatchType should provide implicit for complex nested type
✅ MatchType should provide implicit for recursive structure
✅ MatchType should work for list
✅ core/target/native-3/test-reports/TEST-sttp.tapir.ValidatorScala3EnumTest.xml
3 tests were completed in 0ms with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.ValidatorScala3EnumTest | 3✅ | 0ms |
✅ sttp.tapir.ValidatorScala3EnumTest
✅ should validate enum
✅ should not compile for enum with parameter
✅ should derive a validator for a string-based union type
✅ core/target/native-3/test-reports/TEST-sttp.tapir.ValidatorTest.xml
28 tests were completed in 0ms with 28 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.ValidatorTest | 28✅ | 0ms |
✅ sttp.tapir.ValidatorTest
✅ should validate for min value
✅ should validate for min value (exclusive)
✅ should validate for max value
✅ should validate for max value (exclusive)
✅ should validate for positive value
✅ should validate for positiveOrZero value
✅ should validate for negative value
✅ should validate for in range value
✅ should validate for maxSize of collection
✅ should validate for minSize of collection
✅ should validate for nonEmpty of collection
✅ should validate for fixedSize of collection
✅ should validate for matching regex pattern
✅ should validate for minLength of string
✅ should validate for minLength of string and include unicode characters
✅ should validate for maxLength of string
✅ should validate for maxLength of string and include unicode characters
✅ should validate for fixedLength of string
✅ should validate for fixedLength of string and include unicode characters
✅ should validate for nonEmptyString of string
✅ should validate with reject
✅ should validate with any of validators
✅ should validate with all of validators
✅ should validate with custom validator
✅ should validate coproduct enum
✅ should derive for branched sealed traits where all leafs are objects
✅ should not compile for malformed coproduct enum
✅ should validate closed set of ints
✅ integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.EndpointIOInstancesSpec.xml
3 tests were completed in 1ms with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.integ.cats.EndpointIOInstancesSpec | 3✅ | 1ms |
✅ sttp.tapir.integ.cats.EndpointIOInstancesSpec
✅ InvariantSemigroupal syntax should work with EndpointInput
✅ InvariantSemigroupal syntax should work with EndpointOutput
✅ InvariantSemigroupal syntax should work with EndpointIO
✅ integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.ExampleFunctorLawSpec.xml
5 tests were completed in 8ms with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.integ.cats.ExampleFunctorLawSpec | 5✅ | 8ms |
✅ sttp.tapir.integ.cats.ExampleFunctorLawSpec
✅ Example.FunctorLaws.functor.covariant composition
✅ Example.FunctorLaws.functor.covariant identity
✅ Example.FunctorLaws.functor.invariant composition
✅ Example.FunctorLaws.functor.invariant identity
✅ Example.FunctorLaws.functor.mapOrKeepToMapEquivalence
✅ integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.ModifyFunctorInstancesTest.xml
4 tests were completed in 0ms with 4 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.integ.cats.ModifyFunctorInstancesTest | 4✅ | 0ms |
✅ sttp.tapir.integ.cats.ModifyFunctorInstancesTest
✅ should modify elements in NonEmptyList
✅ should modify elements in NonEmptySet
✅ should modify elements in Chain
✅ should modify elements in NonEmptyChain
✅ integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.TapirCodecCatsTest.xml
22 tests were completed in 113ms with 22 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.integ.cats.TapirCodecCatsTest | 22✅ | 113ms |
✅ sttp.tapir.integ.cats.TapirCodecCatsTest
✅ should find schema for cats collections
✅ should find proper validator for cats collections
✅ Provided PlainText coder for non empty list should correctly serialize a non empty list
✅ Provided PlainText coder for non empty list should correctly deserialize everything it serialize
✅ Provided PlainText coder for non empty list should fail on empty list
✅ Provided PlainText coder for non empty list should have the proper schema for list
✅ Provided PlainText coder for non empty list should have the proper validator for list
✅ Provided PlainText coder for non empty vector should correctly serialize a non empty vector
✅ Provided PlainText coder for non empty vector should correctly deserialize everything it serialize for vector
✅ Provided PlainText coder for non empty vector should fail on empty vector
✅ Provided PlainText coder for non empty vector should have the proper schema for vector
✅ Provided PlainText coder for non empty vector should have the proper validator for vector
✅ Provided PlainText codec for non empty chain should correctly serialize a non empty chain
✅ Provided PlainText codec for non empty chain should correctly deserialize everything it serialize for chain
✅ Provided PlainText codec for non empty chain should fail on empty chain
✅ Provided PlainText codec for non empty chain should have the proper schema for chain
✅ Provided PlainText codec for non empty chain should have the proper validator for chain
✅ Provided PlainText codec for non empty set should correctly serialize a non empty set
✅ Provided PlainText codec for non empty set should correctly deserialize everything it serialize for set
✅ Provided PlainText codec for non empty set should fail on empty set
✅ Provided PlainText codec for non empty set should have the proper schema for set
✅ Provided PlainText codec for non empty set should have the proper validator for set
✅ integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.ValidatorCatsTest.xml
3 tests were completed in 0ms with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.integ.cats.ValidatorCatsTest | 3✅ | 0ms |
✅ sttp.tapir.integ.cats.ValidatorCatsTest
✅ should success with non-empty list - NonEmptyList
✅ should success with non-empty list - List
✅ should fail with empty list - List
✅ integrations/zio-prelude/target/native-3/test-reports/TEST-sttp.tapir.codec.zio.prelude.newtype.TapirNewtypeSupportTest.xml
8 tests were completed in 0ms with 8 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.codec.zio.prelude.newtype.TapirNewtypeSupportTest | 8✅ | 0ms |
✅ sttp.tapir.codec.zio.prelude.newtype.TapirNewtypeSupportTest
✅ should find schema for Newtype which is equal to the schema of its underlying value
✅ should find schema for Subtype which is equal to the schema of its underlying value
✅ Provided PlainText codec for a Newtype should equal to the codec of its underlying value
✅ Provided PlainText codec for a Newtype should correctly deserialize everything it serializes
✅ Provided PlainText codec for a Newtype should not deserialize values that do not pass validation
✅ Provided PlainText codec for a Subtype should equal to the codec of its underlying value
✅ Provided PlainText codec for a Subtype should correctly deserialize everything it serializes
✅ Provided PlainText codec for a Subtype should not deserialize values that do not pass validation
✅ integrations/zio-prelude/target/native-3/test-reports/TEST-sttp.tapir.codec.zio.prelude.newtype.TapirNewtypeTest.xml
8 tests were completed in 0ms with 8 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.codec.zio.prelude.newtype.TapirNewtypeTest | 8✅ | 0ms |
✅ sttp.tapir.codec.zio.prelude.newtype.TapirNewtypeTest
✅ should find schema for Newtype which is equal to the schema of its underlying value
✅ should find schema for Subtype which is equal to the schema of its underlying value
✅ Provided PlainText codec for a Newtype should equal to the codec of its underlying value
✅ Provided PlainText codec for a Newtype should correctly deserialize everything it serializes
✅ Provided PlainText codec for a Newtype should not deserialize values that do not pass validation
✅ Provided PlainText codec for a Subtype should equal to the codec of its underlying value
✅ Provided PlainText codec for a Subtype should correctly deserialize everything it serializes
✅ Provided PlainText codec for a Subtype should not deserialize values that do not pass validation
✅ integrations/zio/target/native-3/test-reports/TEST-sttp.tapir.ztapir.ZioServerSentEventsTest.xml
No tests found
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.ztapir.ZioServerSentEventsTest | 0ms |
✅ integrations/zio/target/native-3/test-reports/TEST-sttp.tapir.ztapir.ZTapirTest.xml
No tests found
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.ztapir.ZTapirTest | 0ms |
✅ json/jsoniter/target/native-3/test-reports/TEST-sttp.tapir.json.jsoniter.TapirJsonJsoniterTests.xml
1 tests were completed in 31ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.json.jsoniter.TapirJsonJsoniterTests | 1✅ | 31ms |
✅ sttp.tapir.json.jsoniter.TapirJsonJsoniterTests
✅ should return a JSON specific decode error on failure
✅ json/upickle/target/native-3/test-reports/TEST-sttp.tapir.json.upickle.TapirJsonuPickleTests.xml
5 tests were completed in 45ms with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.json.upickle.TapirJsonuPickleTests | 5✅ | 45ms |
✅ sttp.tapir.json.upickle.TapirJsonuPickleTests
✅ should encode and decode Scala case class with non-empty Option elements
✅ should encode and decode Scala case class with empty Option elements
✅ should encode and decode String type
✅ should encode and decode Long type
✅ should return a JSON specific decode error on failure
✅ json/zio/target/native-3/test-reports/TEST-sttp.tapir.json.zio.TapirJsonZioTest.xml
8 tests were completed in 22ms with 8 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.json.zio.TapirJsonZioTest | 8✅ | 22ms |
✅ sttp.tapir.json.zio.TapirJsonZioTest
✅ should encode and decode Scala case class with non-empty Option elements
✅ should encode and decode Scala case class with empty Option elements
✅ should encode and decode Scala case class with list
✅ should encode to non-prettified Json
✅ should return a JSON specific error on object decode failure
✅ should return a JSON specific error on array decode failure
✅ should return a coproduct schema for a JsonValue
✅ should return a coproduct schema for a JsonObject
✅ server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interceptor.cors.CORSConfigTest.xml
2 tests were completed in 1ms with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.server.interceptor.cors.CORSConfigTest | 2✅ | 1ms |
✅ sttp.tapir.server.interceptor.cors.CORSConfigTest
✅ CORS config should provide a valid default config
✅ CORS config should detect an invalid config
✅ server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interceptor.cors.CORSInterceptorTest.xml
2 tests were completed in 5ms with 2 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.server.interceptor.cors.CORSInterceptorTest | 2✅ | 5ms |
✅ sttp.tapir.server.interceptor.cors.CORSInterceptorTest
✅ A custom CORS interceptor should be created with a valid config
✅ A custom CORS interceptor should not be created with an invalid config
✅ server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interceptor.decodefailure.DefaultDecodeFailureHandlerTest.xml
5 tests were completed in 2ms with 5 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.server.interceptor.decodefailure.DefaultDecodeFailureHandlerTest | 5✅ | 2ms |
✅ sttp.tapir.server.interceptor.decodefailure.DefaultDecodeFailureHandlerTest
✅ should create a validation error message for a nested field
✅ should create a validation error message including encoded enumeration values
✅ should create an error message including failed json paths
✅ should create an error message including failed multipart parts
✅ should enclose string values in error messages in quotes
✅ server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interpreter.DecodeBasicInputsTest.xml
1 tests were completed in 34ms with 1 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.server.interpreter.DecodeBasicInputsTest | 1✅ | 34ms |
✅ sttp.tapir.server.interpreter.DecodeBasicInputsTest
✅ should return an error if decoding throws an exception
✅ server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interpreter.FilterServerEndpointsTest.xml
9 tests were completed in 2ms with 9 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.server.interpreter.FilterServerEndpointsTest | 9✅ | 2ms |
✅ sttp.tapir.server.interpreter.FilterServerEndpointsTest
✅ should filter endpoints with a single fixed path component
✅ should filter endpoints with an empty fixed path component
✅ should not filter endpoints without any path component
✅ should filter endpoints with multiple fixed path components
✅ should filter endpoints with a single fixed and a single path capture component
✅ should filter endpoints with multiple fixed and single capture components
✅ should filter endpoints with multiple fixed and capture components
✅ should filter endpoints with fixed and paths components
✅ should filter endpoints with fixed, capture and paths components
✅ server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interpreter.ServerInterpreterTest.xml
3 tests were completed in 1ms with 3 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.server.interpreter.ServerInterpreterTest | 3✅ | 1ms |
✅ sttp.tapir.server.interpreter.ServerInterpreterTest
✅ should call the interceptors in the correct order
✅ should decode security inputs, basic regular inputs, and not decode the body, when security logic fails
✅ should use a customized reject interceptor
✅ testing/target/native-3/test-reports/TEST-sttp.tapir.testing.EndpointVerifierTest.xml
31 tests were completed in 6ms with 31 passed, 0 failed and 0 skipped.
Test suite | Passed | Failed | Skipped | Time |
---|---|---|---|---|
sttp.tapir.testing.EndpointVerifierTest | 31✅ | 6ms |
✅ sttp.tapir.testing.EndpointVerifierTest
✅ should should not detect shadowed endpoint when first endpoint has empty path and second fixed path
✅ should not detect shadowed endpoint when second endpoint doesn't have specified method
✅ should detect shadowed endpoint when first endpoint doesn't have specified method
✅ should should detect shadowed endpoint when first endpoint has only wildcard path and second empty path
✅ should detect shadowed endpoint when http methods are provided in different order
✅ should detect shadowed endpoint when security inputs and inputs overlap
✅ should should not detect shadowed endpoint when methods are not provided and paths are different
✅ should should detect shadowed endpoint when methods are not provided
✅ should omit all segments which are not relevant for shadow check
✅ should should detect shadowed endpoints with path variables that contain special characters
✅ should not detect shadowed endpoint when it is only partially shadowed
✅ should detect endpoint with path variable shadowed by endpoint with wildcard
✅ should detect shadowed endpoints for endpoints with similar path structure but with different path vars names
✅ should detect shadowed endpoints for endpoints with path variables and wildcards at the beginning
✅ should detect shadowed endpoints for endpoints with path variables in the middle
✅ should detect shadowed endpoints for fixed paths
✅ should return empty result when no shadowed endpoints exist
✅ should return empty result for empty input
✅ should not detect incorrect path input when input is fixed
✅ should not detect incorrect path input when wildcard `paths` segment appears as the last at input
✅ should not detect incorrect path input when wildcard `paths` segment appears as the last at security input
✅ should detect incorrect path input when wildcard `paths` segment appears before the last at input
✅ should detect incorrect path input when wildcard `paths` segment appears before the last security input
✅ should detect incorrect path input when wildcard `paths` segment and any path is defined in standard input
✅ should not detect any incorrect path input when wildcard `paths` segment is defined as last segment of path
✅ should detect incorrect path input when wildacard `paths` segment overlaps other path segments and return proper index in path
✅ should detect shadowed endpoints and incorrect path simultaneously
✅ should detect duplicated methods under endpoint
✅ should not detect duplicated methods when there is at most one method defined
✅ should detect endpoints with body where status code doesn't allow a body
✅ should detect duplicate names among endpoints, all endpoints names (operationId's) must be unique