Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add date-time support to codegen #3390

Merged

Add date time support to generator

b576d80
Select commit
Loading
Failed to load commit list.
Sign in for the full log view
Merged

Add date-time support to codegen #3390

Add date time support to generator
b576d80
Select commit
Loading
Failed to load commit list.
GitHub Actions / Test report for 3-Native-11 succeeded Dec 12, 2023 in 0s

Test report for 3-Native-11 ✅

Tests passed successfully

Report Passed Failed Skipped Time
client/sttp-client/target/native-3/test-reports/TEST-sttp.tapir.client.sttp.SttpClientBasicTests.xml 58✅ 481ms
client/sttp-client/target/native-3/test-reports/TEST-sttp.tapir.client.sttp.SttpClientMultipartTests.xml 3✅ 347ms
client/sttp-client/target/native-3/test-reports/TEST-sttp.tapir.client.sttp.SttpClientRequestTests.xml 2✅ 5ms
core/target/native-3/test-reports/TEST-sttp.tapir.annotations.DeriveEndpointIOTest.xml 30✅ 1ms
core/target/native-3/test-reports/TEST-sttp.tapir.AttributeTest.xml 3✅ 1ms
core/target/native-3/test-reports/TEST-sttp.tapir.CodecDelimitedTest.xml 2✅ 11ms
core/target/native-3/test-reports/TEST-sttp.tapir.CodecTest.xml 6✅ 147ms
core/target/native-3/test-reports/TEST-sttp.tapir.EndpointTest.xml 76✅ 2ms
core/target/native-3/test-reports/TEST-sttp.tapir.generic.EnumsCodecDerivationTest.xml 4✅ 1ms
core/target/native-3/test-reports/TEST-sttp.tapir.generic.FormCodecDerivationTest.xml 13✅ 3ms
core/target/native-3/test-reports/TEST-sttp.tapir.generic.MultipartCodecDerivationTest.xml 12✅ 4ms
core/target/native-3/test-reports/TEST-sttp.tapir.generic.SchemaGenericAutoTest.xml 27✅ 0ms
core/target/native-3/test-reports/TEST-sttp.tapir.generic.ValueClassCodecDerivationTest.xml 1✅ 1ms
core/target/native-3/test-reports/TEST-sttp.tapir.internal.RichEndpointInputTest.xml 5✅ 0ms
core/target/native-3/test-reports/TEST-sttp.tapir.internal.RichEndpointOutputTest.xml 1✅ 1ms
core/target/native-3/test-reports/TEST-sttp.tapir.internal.UrlencodedDataTest.xml 4✅ 0ms
core/target/native-3/test-reports/TEST-sttp.tapir.namespacing.SchemaMacroNamespaceTest.xml 1✅ 0ms
core/target/native-3/test-reports/TEST-sttp.tapir.SchemaAnnotationsTest.xml 1✅ 0ms
core/target/native-3/test-reports/TEST-sttp.tapir.SchemaApplyValidationTest.xml 13✅ 409ms
core/target/native-3/test-reports/TEST-sttp.tapir.SchemaMacroScala3Test.xml 1✅ 0ms
core/target/native-3/test-reports/TEST-sttp.tapir.SchemaMacroTest.xml 25✅ 6ms
core/target/native-3/test-reports/TEST-sttp.tapir.SchemaTest.xml 11✅ 0ms
core/target/native-3/test-reports/TEST-sttp.tapir.typelevel.MatchTypeTest.xml 8✅ 2s
core/target/native-3/test-reports/TEST-sttp.tapir.ValidatorScala3EnumTest.xml 2✅ 1ms
core/target/native-3/test-reports/TEST-sttp.tapir.ValidatorTest.xml 28✅ 0ms
integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.EndpointIOInstancesSpec.xml 3✅ 0ms
integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.ExampleFunctorLawSpec.xml 4✅ 9ms
integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.ModifyFunctorInstancesTest.xml 4✅ 0ms
integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.TapirCodecCatsTest.xml 17✅ 77ms
integrations/cats/target/native-3/test-reports/TEST-sttp.tapir.integ.cats.ValidatorCatsTest.xml 3✅ 0ms
json/jsoniter/target/native-3/test-reports/TEST-sttp.tapir.json.jsoniter.TapirJsonJsoniterTests.xml 1✅ 21ms
json/upickle/target/native-3/test-reports/TEST-sttp.tapir.json.upickle.TapirJsonuPickleTests.xml 5✅ 24ms
server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interceptor.cors.CORSConfigTest.xml 2✅ 0ms
server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interceptor.cors.CORSInterceptorTest.xml 2✅ 4ms
server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interceptor.decodefailure.DefaultDecodeFailureHandlerTest.xml 5✅ 1ms
server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interpreter.DecodeBasicInputsTest.xml 1✅ 29ms
server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interpreter.FilterServerEndpointsTest.xml 9✅ 1ms
server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interpreter.ServerInterpreterTest.xml 3✅ 1ms
testing/target/native-3/test-reports/TEST-sttp.tapir.testing.EndpointVerifierTest.xml 30✅ 6ms

✅ client/sttp-client/target/native-3/test-reports/TEST-sttp.tapir.client.sttp.SttpClientBasicTests.xml

58 tests were completed in 481ms with 58 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.client.sttp.SttpClientBasicTests 58✅ 481ms

✅ sttp.tapir.client.sttp.SttpClientBasicTests

✅ Endpoint(securityin: -, in: -, errout: -, out: -)
✅ Endpoint(securityin: -, in: ?fruit, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: -, in: ?fruit ?amount, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: -, in: {header X-Role}, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: -, in: /fruit /[] /amount /[], errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[special characters in path](securityin: -, in: /fruit /[] /amount /[], errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: -, in: POST /api /echo {body as text/plain (UTF-8)}, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[echo json](securityin: -, in: POST /api /echo {body as application/json (UTF-8)}, errout: -, out: {body as application/json (UTF-8)})
✅ Endpoint[echo byte array](securityin: -, in: POST /api /echo {body as application/octet-stream}, errout: -, out: {body as application/octet-stream})
✅ Endpoint[echo byte buffer](securityin: -, in: POST /api /echo {body as application/octet-stream}, errout: -, out: {body as application/octet-stream})
✅ Endpoint[echo input stream](securityin: -, in: POST /api /echo {body as application/octet-stream}, errout: -, out: {body as application/octet-stream})
✅ Endpoint(securityin: -, in: POST /api /echo {body as application/x-www-form-urlencoded (UTF-8)}, errout: -, out: {body as application/x-www-form-urlencoded (UTF-8)})
✅ Endpoint(securityin: -, in: GET /api /echo /params ?*, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: -, in: GET /*, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: -, in: GET /api /echo /param-to-header ?qq, errout: -, out: {header hh})
✅ Endpoint(securityin: -, in: GET /api /echo /headers {cookie c1} {cookie c2}, errout: -, out: {header Set-Cookie})
✅ Endpoint(securityin: -, in: ?fruit, errout: -, out: status code - possible codes (Map()))
✅ Endpoint[defined](securityin: -, in: POST /api /echo {body as application/json (UTF-8)}, errout: -, out: {body as application/json (UTF-8)})
✅ Endpoint[empty](securityin: -, in: POST /api /echo {body as application/json (UTF-8)}, errout: -, out: {body as application/json (UTF-8)})
✅ Endpoint[json content organization](securityin: -, in: GET /content-negotiation /organization {header Accept}, errout: -, out: one of(status code (200) {body as application/json (UTF-8)}|status code (200) {body as application/xml (UTF-8)}|status code (200) {body as text/html (UTF-8)}|status code (200) {body as text/html (ISO-8859-1)}))
✅ Endpoint[xml content organization](securityin: -, in: GET /content-negotiation /organization {header Accept}, errout: -, out: one of(status code (200) {body as application/json (UTF-8)}|status code (200) {body as application/xml (UTF-8)}|status code (200) {body as text/html (UTF-8)}|status code (200) {body as text/html (ISO-8859-1)}))
✅ Endpoint[json content person](securityin: -, in: GET /content-negotiation /entity {header Accept}, errout: -, out: one of(status code (200) {body as application/json (UTF-8)}|status code (200) {body as application/xml (UTF-8)}))
✅ Endpoint[xml content organization](securityin: -, in: GET /content-negotiation /entity {header Accept}, errout: -, out: one of(status code (200) {body as application/json (UTF-8)}|status code (200) {body as application/xml (UTF-8)}))
✅ Endpoint(securityin: -, in: GET /api /echo /headers {multiple headers}, errout: -, out: {multiple headers})
✅ Endpoint(securityin: -, in: /api /unit, errout: -, out: {body as application/json (UTF-8)})
✅ Endpoint(securityin: -, in: /secret {header location: secret}, errout: -, out: {body as text/plain (UTF-8)})
✅ not existing endpoint, with error output not matching 404
✅ Endpoint(securityin: /auth auth(api key, via {header X-Api-Key}), in: -, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: /auth auth(api key, via {header X-Api-Key}), in: ?amount, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: /auth auth(api key, via ?api-key), in: -, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: /auth auth(Basic http, via {header Authorization}), in: -, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: /auth auth(Bearer http, via {header Authorization}), in: -, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[mapped query](securityin: -, in: ?fruit, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[mapped path](securityin: -, in: /fruit /[], errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[mapped path path](securityin: -, in: /fruit /[] /amount /[], errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[query and mapped path path](securityin: -, in: /fruit /[] /amount /[] ?color, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[out mapped](securityin: -, in: ?fruit, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[out mapped](securityin: -, in: ?fruit, errout: -, out: {body as text/plain (UTF-8)} {header X-Role})
✅ Endpoint(securityin: -, in: ?a ?b ?x ?y /api /echo /param-to-upper-header, errout: -, out: {header A} {header B} {header X} {header Y})
✅ Endpoint[status one of 1](securityin: -, in: ?fruit, errout: -, out: one of(status code (202) {body as text/plain (UTF-8)}|status code (200) {body as text/plain (UTF-8)}))
✅ Endpoint[status one of 2](securityin: -, in: ?fruit, errout: -, out: one of(status code (202) {body as text/plain (UTF-8)}|status code (200) {body as text/plain (UTF-8)}))
✅ Endpoint[status one of 3](securityin: -, in: ?fruit, errout: -, out: one of(status code (202) {body as text/plain (UTF-8)}|status code (200) {body as text/plain (UTF-8)}))
✅ Endpoint[first exact status of 2](securityin: -, in: /mapping ?num, errout: -, out: one of(status code (202) {body as text/plain (UTF-8)}|status code (200) {body as text/plain (UTF-8)}))
✅ Endpoint[second exact status of 2](securityin: -, in: /mapping ?num, errout: -, out: one of(status code (202) {body as text/plain (UTF-8)}|status code (200) {body as text/plain (UTF-8)}))
✅ Endpoint[person](securityin: -, in: GET /entity /[type], errout: -, out: one of(status code (201) {body as application/json (UTF-8)}|{body as application/json (UTF-8)}))
✅ Endpoint[org](securityin: -, in: GET /entity /[type], errout: -, out: one of(status code (201) {body as application/json (UTF-8)}|{body as application/json (UTF-8)}))
✅ Endpoint[204](securityin: -, in: /status ?statusOut, errout: -, out: one of(status code (204)|status code (200)))
✅ Endpoint[200](securityin: -, in: /status ?statusOut, errout: -, out: one of(status code (204)|status code (200)))
✅ Endpoint(securityin: -, in: /status ?statusOut, errout: -, out: one of(status code (204) {body as application/json (UTF-8)}|status code (204)))
✅ Endpoint[orange](securityin: -, in: ?fruit /one-of, errout: {body as application/json (UTF-8)}, out: -)
✅ Endpoint[kiwi](securityin: -, in: ?fruit /one-of, errout: {body as application/json (UTF-8)}, out: -)
✅ Endpoint[apple](securityin: -, in: ?fruit /one-of, errout: {body as application/json (UTF-8)}, out: -)
✅ Endpoint[kiwi](securityin: -, in: ?fruit /one-of, errout: one of(status code (400)|status code (404) {body as application/json (UTF-8)}), out: -)
✅ Endpoint[apple](securityin: -, in: ?fruit /one-of, errout: one of(status code (400)|status code (404) {body as application/json (UTF-8)}), out: -)
✅ Endpoint[echo file](securityin: -, in: POST /api /echo {body as application/octet-stream}, errout: -, out: {body as application/octet-stream})
✅ Endpoint(securityin: -, in: POST one of({body as application/json (UTF-8)}|{body as application/xml (UTF-8)}|{body as text/plain (UTF-8)}) /api /echo, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: -, in: POST {body as text/plain (UTF-8)} {header Accept: application/json} /content-negotiation /fruit, errout: -, out: one of({body as application/json (UTF-8)}|{body as application/xml (UTF-8)}|{body as text/plain (UTF-8)}))
✅ Endpoint(securityin: -, in: POST {body as text/plain (UTF-8)} {header Accept: application/xml} /content-negotiation /fruit, errout: -, out: one of({body as application/json (UTF-8)}|{body as application/xml (UTF-8)}|{body as text/plain (UTF-8)}))

✅ client/sttp-client/target/native-3/test-reports/TEST-sttp.tapir.client.sttp.SttpClientMultipartTests.xml

3 tests were completed in 347ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.client.sttp.SttpClientMultipartTests 3✅ 347ms

✅ sttp.tapir.client.sttp.SttpClientMultipartTests

✅ Endpoint(securityin: -, in: POST /api /echo /multipart {body as multipart/form-data}, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint(securityin: -, in: POST /api /echo {body as multipart/form-data}, errout: -, out: {body as text/plain (UTF-8)})
✅ Endpoint[echo raw parts](securityin: -, in: POST /api /echo /multipart {body as multipart/form-data}, errout: -, out: {body as text/plain (UTF-8)})

✅ client/sttp-client/target/native-3/test-reports/TEST-sttp.tapir.client.sttp.SttpClientRequestTests.xml

2 tests were completed in 5ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.client.sttp.SttpClientRequestTests 2✅ 5ms

✅ sttp.tapir.client.sttp.SttpClientRequestTests

✅ content-type header shouldn't be duplicated when converting to a part
✅ should properly encode a flag parameter

✅ core/target/native-3/test-reports/TEST-sttp.tapir.annotations.DeriveEndpointIOTest.xml

30 tests were completed in 1ms with 30 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.annotations.DeriveEndpointIOTest 30✅ 1ms

✅ 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 1ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.AttributeTest 3✅ 1ms

✅ 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 11ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.CodecDelimitedTest 2✅ 11ms

✅ 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.CodecTest.xml

6 tests were completed in 147ms with 6 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.CodecTest 6✅ 147ms

✅ 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.EndpointTest.xml

76 tests were completed in 2ms with 76 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.EndpointTest 76✅ 2ms

✅ 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 1ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.generic.EnumsCodecDerivationTest 4✅ 1ms

✅ 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

13 tests were completed in 3ms with 13 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.generic.FormCodecDerivationTest 13✅ 3ms

✅ 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 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

12 tests were completed in 4ms with 12 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.generic.MultipartCodecDerivationTest 12✅ 4ms

✅ 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 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

27 tests were completed in 0ms with 27 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.generic.SchemaGenericAutoTest 27✅ 0ms

✅ 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 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 (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 1ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.generic.ValueClassCodecDerivationTest 1✅ 1ms

✅ 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

1 tests were completed in 0ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.namespacing.SchemaMacroNamespaceTest 1✅ 0ms

✅ sttp.tapir.namespacing.SchemaMacroNamespaceTest

✅ should compile macro-generated code using derivedEnumeration in a package other than sttp.tapir

✅ 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 409ms with 13 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.SchemaApplyValidationTest 13✅ 409ms

✅ 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

1 tests were completed in 0ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.SchemaMacroScala3Test 1✅ 0ms

✅ sttp.tapir.SchemaMacroScala3Test

✅ should validate enum

✅ core/target/native-3/test-reports/TEST-sttp.tapir.SchemaMacroTest.xml

25 tests were completed in 6ms with 25 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.SchemaMacroTest 25✅ 6ms

✅ 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 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

11 tests were completed in 0ms with 11 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.SchemaTest 11✅ 0ms

✅ 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

✅ core/target/native-3/test-reports/TEST-sttp.tapir.typelevel.MatchTypeTest.xml

8 tests were completed in 2s with 8 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.typelevel.MatchTypeTest 8✅ 2s

✅ 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

2 tests were completed in 1ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.ValidatorScala3EnumTest 2✅ 1ms

✅ sttp.tapir.ValidatorScala3EnumTest

✅ should validate enum
✅ should not compile for enum with parameter

✅ 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 0ms with 3 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.integ.cats.EndpointIOInstancesSpec 3✅ 0ms

✅ 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

4 tests were completed in 9ms with 4 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.integ.cats.ExampleFunctorLawSpec 4✅ 9ms

✅ 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

✅ 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

17 tests were completed in 77ms with 17 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.integ.cats.TapirCodecCatsTest 17✅ 77ms

✅ 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
✅ Provided PlainText coder for non empty list should have the proper validator
✅ 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
✅ Provided PlainText codec for non empty chain should fail on empty list
✅ Provided PlainText codec for non empty chain should have the proper schema
✅ Provided PlainText codec for non empty chain should have the proper validator
✅ 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
✅ Provided PlainText codec for non empty set should fail on empty set
✅ Provided PlainText codec for non empty set should have the proper schema
✅ Provided PlainText codec for non empty set should have the proper validator

✅ 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

✅ json/jsoniter/target/native-3/test-reports/TEST-sttp.tapir.json.jsoniter.TapirJsonJsoniterTests.xml

1 tests were completed in 21ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.json.jsoniter.TapirJsonJsoniterTests 1✅ 21ms

✅ 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 24ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.json.upickle.TapirJsonuPickleTests 5✅ 24ms

✅ 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

✅ server/core/target/native-3/test-reports/TEST-sttp.tapir.server.interceptor.cors.CORSConfigTest.xml

2 tests were completed in 0ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.server.interceptor.cors.CORSConfigTest 2✅ 0ms

✅ 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 4ms with 2 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.server.interceptor.cors.CORSInterceptorTest 2✅ 4ms

✅ 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 1ms with 5 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.server.interceptor.decodefailure.DefaultDecodeFailureHandlerTest 5✅ 1ms

✅ 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 29ms with 1 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.server.interpreter.DecodeBasicInputsTest 1✅ 29ms

✅ 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 1ms with 9 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.server.interpreter.FilterServerEndpointsTest 9✅ 1ms

✅ 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

30 tests were completed in 6ms with 30 passed, 0 failed and 0 skipped.

Test suite Passed Failed Skipped Time
sttp.tapir.testing.EndpointVerifierTest 30✅ 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