[ADN] Fase 10: Saneamiento y Consolidación - Un solo punto de verdad
- S1: Eliminar 'triggers' duplicado en run (líneas 109/131) - S2: Eliminar cli/commit.rb (truncado, sin uso) - S3: Eliminar cli/inicio.rb y cli/cierre.rb (legacy, jornada.rb los reemplaza) - S4: Mover 4 planes obsoletos de docs/plan/adn/ a docs/_hist/plan/adn/ - S5: Mover 14 backups de planes y 3 docs técnicos a docs/_hist/ - S6: Eliminar manifiesto vacío P2604_proyecto_p2604.md - S7: Corregir referencia a plan obsoleto en run - S8: Dejar de cargar core/validador.rb obsoleto en run - S9: Limpiar progreso duplicado en P2604_mejoras_ADN.md - Agregar Fase 10 al plan P2604 con 10 tareas - Un solo punto de verdad: adn/README.md - Un solo plan: docs/proy/p2604_mejoras_ADN/P2604_mejoras_ADN.md - Registro en bitácora: evento 1073
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# encoding: utf-8
|
||||
# colores_spec.rb - Tests para módulo de colores
|
||||
require_relative '../spec_helper'
|
||||
$LOAD_PATH.unshift File.expand_path('../../core', __dir__)
|
||||
require 'colores'
|
||||
|
||||
describe 'ADN::Color' do
|
||||
describe 'Constantes de color' do
|
||||
it 'define RESET' do
|
||||
expect(Color::RESET).to eq("\e[0m")
|
||||
end
|
||||
|
||||
it 'define BOLD' do
|
||||
expect(Color::BOLD).to eq("\e[1m")
|
||||
end
|
||||
|
||||
it 'define GREEN' do
|
||||
expect(Color::GREEN).to eq("\e[32m")
|
||||
end
|
||||
|
||||
it 'define CYAN' do
|
||||
expect(Color::CYAN).to eq("\e[36m")
|
||||
end
|
||||
|
||||
it 'define YELLOW' do
|
||||
expect(Color::YELLOW).to eq("\e[33m")
|
||||
end
|
||||
|
||||
it 'define RED' do
|
||||
expect(Color::RED).to eq("\e[31m")
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,40 @@
|
||||
# encoding: utf-8
|
||||
# validador_spec.rb - Tests para módulo validador core
|
||||
require_relative '../spec_helper'
|
||||
|
||||
describe 'ADN::Validador Patterns' do
|
||||
describe 'Validación de tiempo HH:MM' do
|
||||
it 'valida formato correcto' do
|
||||
expect('10:30').to match(/^\d{2}:\d{2}$/)
|
||||
end
|
||||
|
||||
it 'rechaza formato con hs' do
|
||||
expect('10:30 hs').to match(/\d{1,2}:\d{2}\s*hs/)
|
||||
end
|
||||
|
||||
it 'rechaza hora fuera de rango' do
|
||||
expect('25:00').not_to match(/^([01]?\d|2[0-3]):([0-5]?\d)$/)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Validación de iconografía' do
|
||||
it 'reconoce iconos válidos' do
|
||||
iconos_validos = %w[✅ ⏳ ⚠️ ❌ 📍 ➡️]
|
||||
iconos_validos.each do |icono|
|
||||
expect(['✅', '⏳', '⚠️', '❌', '📍', '➡️']).to include(icono)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Validación de bitácora' do
|
||||
it 'valida nombre de archivo YYYY-MM-DD.md' do
|
||||
expect('2026-03-14.md').to match(/^\d{4}-\d{2}-\d{2}\.md$/)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'Validación de proyecto' do
|
||||
it 'valida código de proyecto PXXXX' do
|
||||
expect('P2601_dasuten.md').to match(/^P\d+_[a-z0-9_]+\.md$/)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -0,0 +1,41 @@
|
||||
# encoding: utf-8
|
||||
# evento_spec.rb - Tests atómicos para módulo evento
|
||||
require_relative '../spec_helper'
|
||||
|
||||
describe 'ADN::SubcomandoDBEvento' do
|
||||
describe '.validar_hora' do
|
||||
it 'valida formato HH:MM válido' do
|
||||
horas_validas = ['08:30', '00:00', '23:59', '12:00']
|
||||
horas_validas.each do |hora|
|
||||
expect(validar_formato_hora(hora)).to be true
|
||||
end
|
||||
end
|
||||
|
||||
it 'rechaza formato inválido' do
|
||||
horas_invalidas = ['8:30', '25:00', '12:60', 'abc', '']
|
||||
horas_invalidas.each do |hora|
|
||||
expect(validar_formato_hora(hora)).to be false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '.validar_estado' do
|
||||
it 'acepta estados válidos' do
|
||||
expect(validar_estado('⏳')).to be true
|
||||
expect(validar_estado('✅')).to be true
|
||||
expect(validar_estado('❌')).to be true
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def validar_formato_hora(hora)
|
||||
return false if hora.nil? || hora.empty?
|
||||
match = hora.match(/^(\d{2}):(\d{2})$/)
|
||||
return false unless match
|
||||
hora_i, min = match[1].to_i, match[2].to_i
|
||||
hora_i >= 0 && hora_i <= 23 && min >= 0 && min <= 59
|
||||
end
|
||||
|
||||
def validar_estado(estado)
|
||||
%w[⏳ ✅ ❌ ⚠️ ⏸️].include?(estado)
|
||||
end
|
||||
@@ -0,0 +1,11 @@
|
||||
# spec_helper.rb - Configuración básica de tests
|
||||
require 'bundler/setup'
|
||||
require 'rspec'
|
||||
|
||||
$LOAD_PATH.unshift File.expand_path('../lib', __dir__)
|
||||
|
||||
RSpec.configure do |config|
|
||||
config.expect_with :rspec do |c|
|
||||
c.syntax = [:should, :expect]
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user