28 lines
1.1 KiB
Ruby
28 lines
1.1 KiB
Ruby
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
|