Add IntegerNumberChamp
This commit is contained in:
parent
45bfb2fd47
commit
074050a91a
8 changed files with 49 additions and 0 deletions
7
app/models/champs/integer_number_champ.rb
Normal file
7
app/models/champs/integer_number_champ.rb
Normal file
|
@ -0,0 +1,7 @@
|
|||
class Champs::IntegerNumberChamp < Champ
|
||||
validates :value, numericality: { only_integer: true, allow_nil: true }
|
||||
|
||||
def value_for_export
|
||||
value.to_i
|
||||
end
|
||||
end
|
|
@ -9,6 +9,7 @@ class TypeDeChamp < ApplicationRecord
|
|||
datetime: 'datetime',
|
||||
number: 'number',
|
||||
decimal_number: 'decimal_number',
|
||||
integer_number: 'integer_number',
|
||||
checkbox: 'checkbox',
|
||||
civilite: 'civilite',
|
||||
email: 'email',
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
class TypesDeChamp::IntegerNumberTypeDeChamp < TypesDeChamp::TypeDeChampBase
|
||||
end
|
|
@ -0,0 +1,7 @@
|
|||
class Champs::IntegerNumberChampSerializer < ChampSerializer
|
||||
def value
|
||||
if object.value.present?
|
||||
object.value.to_i
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,3 @@
|
|||
= form.number_field :value,
|
||||
placeholder: champ.libelle,
|
||||
required: champ.mandatory?
|
|
@ -11,6 +11,7 @@ fr:
|
|||
datetime: 'Date et Heure'
|
||||
number: 'Nombre entier'
|
||||
decimal_number: 'Nombre décimal'
|
||||
integer_number: 'Nombre entier'
|
||||
checkbox: 'Case à cocher'
|
||||
civilite: 'Civilité'
|
||||
email: 'Email'
|
||||
|
|
|
@ -21,6 +21,9 @@ FactoryBot.define do
|
|||
factory :type_de_champ_decimal_number do
|
||||
type_champ { TypeDeChamp.type_champs.fetch(:decimal_number) }
|
||||
end
|
||||
factory :type_de_champ_integer_number do
|
||||
type_champ { TypeDeChamp.type_champs.fetch(:integer_number) }
|
||||
end
|
||||
factory :type_de_champ_checkbox do
|
||||
type_champ { TypeDeChamp.type_champs.fetch(:checkbox) }
|
||||
end
|
||||
|
|
25
spec/models/champs/integer_number_champ_spec.rb
Normal file
25
spec/models/champs/integer_number_champ_spec.rb
Normal file
|
@ -0,0 +1,25 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Champs::IntegerNumberChamp do
|
||||
subject { Champs::IntegerNumberChamp.new(value: value) }
|
||||
|
||||
describe '#valid?' do
|
||||
context 'when the value is integer number' do
|
||||
let(:value) { 2 }
|
||||
|
||||
it { is_expected.to be_valid }
|
||||
end
|
||||
|
||||
context 'when the value is decimal number' do
|
||||
let(:value) { 2.6 }
|
||||
|
||||
it { is_expected.to_not be_valid }
|
||||
end
|
||||
|
||||
context 'when the value is not a number' do
|
||||
let(:value) { 'toto' }
|
||||
|
||||
it { is_expected.to_not be_valid }
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Reference in a new issue