2021-08-14 23:06:44 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require 'test_helper'
|
|
|
|
|
|
|
|
class Site::DeploymentTest < ActiveSupport::TestCase
|
|
|
|
def site
|
|
|
|
@site ||= create :site
|
|
|
|
end
|
|
|
|
|
|
|
|
teardown do
|
|
|
|
@site&.destroy
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'al publicar el sitio se crea el directorio' do
|
|
|
|
assert site.deploy_local.deploy
|
|
|
|
assert site.deploy_local.exist?
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'al cambiar el nombre no puede pisar un dominio que ya existe' do
|
|
|
|
site_pre = create :site
|
|
|
|
dup_name = "test-#{SecureRandom.hex}"
|
|
|
|
assert site_pre.deploys.create(type: 'DeployAlternativeDomain', hostname: "#{dup_name}.#{Site.domain}")
|
|
|
|
assert_not site.update(name: dup_name)
|
|
|
|
end
|
2021-08-14 23:21:30 +00:00
|
|
|
|
|
|
|
test 'al cambiar el nombre se crea un deploy alternativo' do
|
|
|
|
site_name = site.name
|
|
|
|
new_name = SecureRandom.hex
|
|
|
|
original_destination = site.deploy_local.destination
|
|
|
|
urls = [site.url]
|
|
|
|
|
|
|
|
assert site.deploy_local.deploy
|
|
|
|
assert_not site.deploy_local.destination_changed?
|
|
|
|
assert site.update(name: new_name)
|
|
|
|
|
|
|
|
urls << site.url
|
|
|
|
|
|
|
|
assert_equal urls.sort, site.urls.sort
|
|
|
|
assert File.symlink?(original_destination)
|
|
|
|
assert File.exist?(site.deploy_local.destination)
|
|
|
|
assert_equal 2, site.deploys.count
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'al cambiar el nombre se renombra el directorio' do
|
|
|
|
site_name = site.name
|
|
|
|
new_name = "test-#{SecureRandom.hex}"
|
|
|
|
original_destination = site.deploy_local.destination
|
|
|
|
|
|
|
|
assert site.deploy_local.deploy
|
|
|
|
assert_not site.deploy_local.destination_changed?
|
|
|
|
assert site.update(name: new_name)
|
|
|
|
assert site.deploy_local.hostname.start_with?(new_name)
|
|
|
|
assert File.symlink?(original_destination)
|
|
|
|
assert File.exist?(site.deploy_local.destination)
|
|
|
|
end
|
|
|
|
|
|
|
|
test 'al cambiar el nombre varias veces se crean varios links' do
|
|
|
|
assert site.deploy_local.deploy
|
|
|
|
|
|
|
|
q = rand(3..10)
|
|
|
|
q.times do
|
|
|
|
assert site.update(name: "test-#{SecureRandom.hex}")
|
|
|
|
end
|
|
|
|
|
|
|
|
assert_equal q, site.deploys.count
|
|
|
|
end
|
2021-08-14 23:26:42 +00:00
|
|
|
|
|
|
|
test 'no se puede cambiar el nombre si ya existía un archivo en el mismo lugar' do
|
|
|
|
assert site.deploy_local.deploy
|
|
|
|
|
|
|
|
new_name = "test-#{SecureRandom.hex}"
|
|
|
|
FileUtils.mkdir File.join(Rails.root, '_deploy', "#{new_name}.#{Site.domain}")
|
|
|
|
|
|
|
|
assert_not site.update(name: new_name)
|
|
|
|
end
|
2021-08-14 23:06:44 +00:00
|
|
|
end
|