require 'rails_helper' RSpec.describe VariavelPersonalizada do it 'normaliza a chave (minúscula, sem espaço)' do v = create(:variavel_personalizada, chave: ' Telefone Suporte ', valor: '4002-8922') expect(v.chave).to eq('telefone_suporte') expect(v.marcador).to eq('{{telefone_suporte}}') end it 'recusa chave com formato que o renderizador não substituiria' do expect(build(:variavel_personalizada, chave: '2telefone')).not_to be_valid expect(build(:variavel_personalizada, chave: 'telefone-suporte')).not_to be_valid end # Deixar o ADM criar {{valor}} faria a variável dele brigar com a do sistema — # e o preview não mostraria o problema, só o envio real. it 'recusa chave que já existe no sistema' do v = build(:variavel_personalizada, chave: 'valor') expect(v).not_to be_valid expect(v.errors[:chave].join).to include('já existe no sistema') end it 'não aceita duas variáveis com a mesma chave' do create(:variavel_personalizada, chave: 'site', valor: 'a') expect(build(:variavel_personalizada, chave: 'SITE', valor: 'b')).not_to be_valid end end