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

[actions] add extensive proxy + email jest tests #102935

Open
pmuellr opened this issue Jun 22, 2021 · 2 comments
Open

[actions] add extensive proxy + email jest tests #102935

pmuellr opened this issue Jun 22, 2021 · 2 comments
Labels
estimate:needs-research Estimated as too large and requires research to break down into workable issues Feature:Actions/ConnectorTypes Issues related to specific Connector Types on the Actions Framework Feature:Actions resilience Issues related to Platform resilience in terms of scale, performance & backwards compatibility Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) test-coverage issues & PRs for improving code test coverage

Comments

@pmuellr
Copy link
Member

pmuellr commented Jun 22, 2021

Note: since PR #138071 was merged, the proxy tests have been added, but leaving this open as we should still add similar-styled email tests, as noted below.

In PR adds config allowing per-host networking options #96630, some jest tests were added that test a wide variety of possible configuration options for TLS. They are in the file
x-pack/plugins/actions/server/builtin_action_types/lib/axios_utils_connection.test.ts.

It struck me when I wrote those, that it would be super-useful to have similar tests for proxy, and for the email connector. Both of those are hard to test from FTS/FTR, given the number of possible kibana.yml configuration changes we can test (2!).

Each test in the referenced files starts an HTTP server with a specific TLS configuration (or none), and then tests using the axios client module with a set of kibana.yml configuration properties.

I think proxy-based tests would be pretty similar.

Email tests would be a little different, because it would need to test our mail connector directly, and so some changes may be neccessary to expose the right parts to be able to configure and then call it. For the server, we'd use maildev instead of the http/s server we start in the tests.

I suspect we'd want to split this into two PRs - one for proxy, a separate one for email, but since they are related in that they'd use the same "pattern", figured I'd just open one issue for now.

@pmuellr pmuellr added Feature:Actions Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) labels Jun 22, 2021
@elasticmachine
Copy link
Contributor

Pinging @elastic/kibana-alerting-services (Team:Alerting Services)

@pmuellr
Copy link
Member Author

pmuellr commented Jun 22, 2021

BTW, we don't current pre-req the maildev package, but I asked if it would be ok to do this as a dev dependency at some point, and got a 👍🏻 .

@gmmorris gmmorris added the Feature:Actions/ConnectorTypes Issues related to specific Connector Types on the Actions Framework label Jul 1, 2021
@gmmorris gmmorris added resilience Issues related to Platform resilience in terms of scale, performance & backwards compatibility loe:needs-research This issue requires some research before it can be worked on or estimated test-coverage issues & PRs for improving code test coverage labels Aug 11, 2021
@gmmorris gmmorris added the estimate:needs-research Estimated as too large and requires research to break down into workable issues label Aug 18, 2021
@gmmorris gmmorris removed the loe:needs-research This issue requires some research before it can be worked on or estimated label Sep 2, 2021
@kobelb kobelb added the needs-team Issues missing a team label label Jan 31, 2022
@botelastic botelastic bot removed the needs-team Issues missing a team label label Jan 31, 2022
pmuellr added a commit to pmuellr/kibana that referenced this issue May 10, 2022
pmuellr added a commit to pmuellr/kibana that referenced this issue Jun 8, 2022
pmuellr added a commit to pmuellr/kibana that referenced this issue Jul 12, 2022
partially addresses elastic#102935

The new proxy tests added can test a variety of different proxy
and target server configurations, however many of those tests
are broken with our current proxy agents.  Hopefully to be fixed
by replacing with hpagent instead.  In the meantime, we wanted to
get the basic test framework in as well.

In addition to tests, the stand-alone forward proxy has been
enhanced to use a better proxy server, `proxy`.  The existing
proxy server `http-proxy` does not support HTTPS out of the box,
and so any HTTPS testing with it is going to be a little sketchy.

Using the stand-alone forward proxy, I was able to post to Slack
through http/https proxies with and without auth, with
proxyRequestUnauthorized set to false.  Which shows the existing
proxy agents do work in _some_ environments.
pmuellr added a commit to pmuellr/kibana that referenced this issue Aug 4, 2022
partially addresses elastic#102935

The new proxy tests added can test a variety of different proxy
and target server configurations, however many of those tests
are broken with our current proxy agents.  Hopefully to be fixed
by replacing with hpagent instead.  In the meantime, we wanted to
get the basic test framework in as well.

In addition to tests, the stand-alone forward proxy has been
enhanced to use a better proxy server, `proxy`.  The existing
proxy server `http-proxy` does not support HTTPS out of the box,
and so any HTTPS testing with it is going to be a little sketchy.

Using the stand-alone forward proxy, I was able to post to Slack
through http/https proxies with and without auth, with
proxyRequestUnauthorized set to false.  Which shows the existing
proxy agents do work in _some_ environments.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
estimate:needs-research Estimated as too large and requires research to break down into workable issues Feature:Actions/ConnectorTypes Issues related to specific Connector Types on the Actions Framework Feature:Actions resilience Issues related to Platform resilience in terms of scale, performance & backwards compatibility Team:ResponseOps Label for the ResponseOps team (formerly the Cases and Alerting teams) test-coverage issues & PRs for improving code test coverage
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

4 participants