Atualização do READ.ME

This commit is contained in:
2026-08-24 19:00:21 -03:00
parent c4d691b202
commit 568f185d8c
7 changed files with 240 additions and 34 deletions

View File

@@ -132,3 +132,43 @@ RSpec.describe Notificacao::Despachante do
expect { despachar }.not_to change(NotificacaoEnvio, :count)
end
end
# Buscar o evento pela `chave` fazia só o de SISTEMA disparar: um evento criado
# pelo ADM com o mesmo gatilho ficava mudo para sempre, sem erro nenhum — a tela
# oferecia o gatilho e nada acontecia.
RSpec.describe Notificacao::Despachante, '.disparar_gatilho' do
it 'agenda TODOS os eventos ativos do gatilho, não só o de sistema' do
sistema = create(:evento_notificacao, gatilho: 'valor_alterado', chave: 'valor_alterado', sistema: true)
do_adm = create(:evento_notificacao, gatilho: 'valor_alterado', chave: 'aviso_extra')
create(:evento_notificacao, gatilho: 'pagamento_efetuado', chave: 'outro')
agendados = []
allow(NotificacaoJob).to receive(:perform_later) { |id, *| agendados << id }
described_class.disparar_gatilho(gatilho: 'valor_alterado', corpo: 'x')
expect(agendados).to contain_exactly(sistema.id, do_adm.id)
end
it 'ignora evento desativado' do
create(:evento_notificacao, gatilho: 'valor_alterado', chave: 'desligado', ativo: false)
allow(NotificacaoJob).to receive(:perform_later)
described_class.disparar_gatilho(gatilho: 'valor_alterado', corpo: 'x')
expect(NotificacaoJob).not_to have_received(:perform_later)
end
# O botão "disparar agora" mira UM evento — ali a chave é o identificador certo.
it '.disparar continua agendando só o evento da chave' do
alvo = create(:evento_notificacao, gatilho: 'manual', chave: 'so_este')
create(:evento_notificacao, gatilho: 'manual', chave: 'outro_manual')
agendados = []
allow(NotificacaoJob).to receive(:perform_later) { |id, *| agendados << id }
described_class.disparar(chave: 'so_este', corpo: 'x')
expect(agendados).to eq([alvo.id])
end
end