bookingcom / shipper

Kubernetes native multi-cluster canary or blue-green rollouts using Helm
Apache License 2.0
734 stars 39 forks source link

release controller: refactor tests #305

Closed juliogreff closed 4 years ago

juliogreff commented 4 years ago

This depends on changes in #304, so let's get that reviewed before this one!

Previously, the release controller tests relied way too much on the actions it took to achieve a particular state, instead of just checking the final state directly. Here, we're taking the same approach that we took with the other controllers: check just the final state, without bothering too much about the actions we took to get there, as it makes for less brittle tests, and refactoring much easier.

You'll also notice that a bunch of test cases are gone. Those are the ones that were testing behavior of the scheduler and the strategy executor. Scheduler tests are good enough, but you'll notice that the strategy executor is particularly devoid of them. That's a compromise I'm making to get this out the door quickly, but we'll coordinate to introduce tests to the strategy executor later.

There's also a small opportunistic refactor on package client that I included here just to avoid opening yet another PR.