eclipse / microprofile-open-api

Microprofile open api
Apache License 2.0
131 stars 81 forks source link

Make most archives not testable #545

Closed Azquelt closed 1 year ago

Azquelt commented 1 year ago

A "testable" archive is one that arquillian adds extra framework code to in order to run tests within the server runtime environment.

Most of the MP OpenAPI test classes don't include any tests which run on the server side, they deploy an app and then query the /openapi endpoint from the client side.

In addition, it causes problems when using the new arquillian REST 3.0 protocol. When using this protocol, an additional REST resource is deployed within testable deployments which is scanned and added to the openapi documentation which causes some of the tests to fail.

Fixes #546

MikeEdgar commented 1 year ago

This seems to cause the SmallRye DeploymentProcessor to no longer be executed. The ArquillianExtension is still called, which is where the processor is registered. Any idea why that might be the case?

Azquelt commented 1 year ago

Yeah, I'd noticed that and have just been poking through the arquillian code. It looks like a registered ApplicationArchiveProcessor is only called for a testable archive.

You're using DeploymentProcessor to actually add your implementation into the deployed application, right? So you need to do that to all archives, not just testable ones.

I'm having a look to see if we can observe BeforeDeploy and update the archive there instead.

MikeEdgar commented 1 year ago

That's right. From what I can tell, BeforeDeploy provides read-only access to the archive.

Azquelt commented 1 year ago

It seems to allow me to edit it: smallrye/smallrye-open-api#1224