Add tests for main, app, accessory, traefik and lock commands. Other commands are generally covered by the main tests. Also adds some changes to speed up the integration specs: - Use a persistent volume for the registry so we can push images to to reuse between runs (also gets around docker hub rate limits) - Use persistent volume for mrsk gem install, to avoid re-installing between tests - Shorter stop wait time - Shorter connection timeouts on the load balancer Takes just over 2 minutes to run all tests locally on an M1 Mac after docker caches are primed.
37 lines
831 B
Ruby
37 lines
831 B
Ruby
require_relative "integration_test"
|
|
|
|
class TraefikTest < IntegrationTest
|
|
test "boot, stop, start, restart, logs, remove" do
|
|
mrsk :traefik, :boot
|
|
assert_traefik_running
|
|
|
|
mrsk :traefik, :stop
|
|
assert_traefik_not_running
|
|
|
|
mrsk :traefik, :start
|
|
assert_traefik_running
|
|
|
|
mrsk :traefik, :restart
|
|
assert_traefik_running
|
|
|
|
logs = mrsk :traefik, :logs, capture: true
|
|
assert_match /Traefik version [\d.]+ built on/, logs
|
|
|
|
mrsk :traefik, :remove
|
|
assert_traefik_not_running
|
|
end
|
|
|
|
private
|
|
def assert_traefik_running
|
|
assert_match /traefik:v2.9 "\/entrypoint.sh/, traefik_details
|
|
end
|
|
|
|
def assert_traefik_not_running
|
|
refute_match /traefik:v2.9 "\/entrypoint.sh/, traefik_details
|
|
end
|
|
|
|
def traefik_details
|
|
mrsk :traefik, :details, capture: true
|
|
end
|
|
end
|