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.
19 lines
567 B
Ruby
19 lines
567 B
Ruby
require_relative "integration_test"
|
|
|
|
class LockTest < IntegrationTest
|
|
test "acquire, release, status" do
|
|
mrsk :lock, :acquire, "-m 'Integration Tests'"
|
|
|
|
status = mrsk :lock, :status, capture: true
|
|
assert_match /Locked by: Deployer at .*\nVersion: #{latest_app_version}\nMessage: Integration Tests/m, status
|
|
|
|
error = mrsk :deploy, capture: true, raise_on_error: false
|
|
assert_match /Deploy lock found/m, error
|
|
|
|
mrsk :lock, :release
|
|
|
|
status = mrsk :lock, :status, capture: true
|
|
assert_match /There is no deploy lock/m, status
|
|
end
|
|
end
|