# 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