# frozen_string_literal: true require 'test_helper' class SiteTest < ActiveSupport::TestCase # Asegurarse que el sitio se destruye al terminar de usarlo teardown do @site&.destroy end test 'se puede crear un sitio' do site = create :site assert site.valid? # TODO: Mover a la validación del sitio o hacer algo similar assert File.directory?(site.path) assert File.directory?(File.join(site.path, '.git')) assert site.destroy end test 'el nombre tiene que ser único' do @site = create :site site2 = build :site, name: @site.name assert_not site2.valid? end test 'el nombre del sitio puede contener subdominios' do site = build :site, name: 'hola.chau' assert site.valid? end test 'el nombre del sitio no puede terminar con punto' do site = build :site, name: 'hola.chau.' assert_not site.valid? end test 'el nombre del sitio no puede contener wildcard' do site = build :site, name: '*.chau' assert_not site.valid? end test 'el nombre del sitio solo tiene letras, numeros y guiones' do site = build :site, name: 'A_Z!' assert_not site.valid? end test 'al destruir un sitio se eliminan los archivos' do site = create :site assert site.destroy assert !File.directory?(site.path) end test 'se puede leer un sitio' do site = create :site, name: 'sutty.nl' assert site.valid? assert !site.posts.empty? end end