adherent 0.3.4 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/adherent/jcmenu.css +5 -0
- data/app/controllers/adherent/allpayments_controller.rb +1 -1
- data/app/controllers/adherent/application_controller.rb +12 -0
- data/app/controllers/adherent/members_controller.rb +6 -7
- data/app/controllers/adherent/payments_controller.rb +2 -2
- data/app/helpers/adherent/application_helper.rb +9 -5
- data/app/helpers/adherent/payments_helper.rb +2 -2
- data/app/models/adherent/member.rb +77 -9
- data/app/models/adherent/payment.rb +0 -10
- data/app/views/adherent/allpayments/_payment.html.haml +3 -2
- data/app/views/adherent/members/index.html.erb +7 -1
- data/app/views/adherent/payments/_payment.html.haml +3 -2
- data/app/views/adherent/payments/show.html.haml +2 -2
- data/lib/adherent/version.rb +2 -1
- data/spec/controllers/adherent/adhesions_controller_spec.rb +25 -57
- data/spec/controllers/adherent/allpayments_controller_spec.rb +4 -1
- data/spec/controllers/adherent/members_controller_spec.rb +33 -46
- data/spec/controllers/adherent/payments_controller_spec.rb +18 -31
- data/spec/dummy/log/development.log +21002 -0
- data/spec/dummy/log/test.log +135111 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/8259f3fc885403b4eea8dd12964c2ffc +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/c35251b000451b1b9f7274e0ae471704 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/d88c0d3362ebdb47849b797a3ec1b355 +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/ee6531726dfe6592fa84b42a420b6acd +0 -0
- data/spec/dummy/tmp/cache/assets/test/sprockets/fca89522784c8592001dc314a2361344 +0 -0
- data/spec/features/adhesions_spec.rb +3 -9
- data/spec/features/coord_spec.rb +3 -5
- data/spec/features/js_spec.rb +17 -15
- data/spec/features/members_spec.rb +26 -46
- data/spec/features/payments_spec.rb +15 -39
- data/spec/features/reglements_spec.rb +25 -31
- data/spec/models/adherent/adhesion_spec.rb +18 -40
- data/spec/models/adherent/coord_spec.rb +12 -9
- data/spec/models/adherent/member_spec.rb +144 -92
- data/spec/models/adherent/payment_spec.rb +20 -99
- data/spec/models/adherent/reglement_spec.rb +1 -1
- data/spec/rails_helper.rb +2 -1
- data/spec/spec_helper.rb +1 -0
- metadata +1 -6
- data/app/models/adherent/query_member.rb +0 -125
- data/spec/models/adherent/query_member_spec.rb +0 -169
- data/spec/support/fixtures.rb +0 -29
| @@ -3,186 +3,238 @@ | |
| 3 3 | 
             
            require 'rails_helper'
         | 
| 4 4 |  | 
| 5 5 | 
             
            RSpec.configure do |c|
         | 
| 6 | 
            -
             | 
| 7 | 
            -
             | 
| 6 | 
            +
              # c.exclusion_filter = {js:true}
         | 
| 7 | 
            +
              # c.filter = {wip:true}
         | 
| 8 8 | 
             
            end
         | 
| 9 9 |  | 
| 10 | 
            -
             | 
| 11 10 | 
             
            describe Adherent::Member, :type => :model do
         | 
| 11 | 
            +
              fixtures :all
         | 
| 12 12 |  | 
| 13 13 | 
             
              def valid_attributes
         | 
| 14 | 
            -
                {name:'Dupont', forname:'Jules', number:'Adh 001'}
         | 
| 14 | 
            +
                {name:'Dupont', forname:'Jules', number:'Adh 001', organism_id:1}
         | 
| 15 15 | 
             
              end
         | 
| 16 16 |  | 
| 17 17 | 
             
              describe 'validation' do
         | 
| 18 18 | 
             
                it 'valid_attributes est valide' do
         | 
| 19 19 | 
             
                  m = Adherent::Member.new(valid_attributes)
         | 
| 20 | 
            -
                  m.organism_id = 1
         | 
| 21 20 | 
             
                  expect(m).to be_valid
         | 
| 22 21 | 
             
                end
         | 
| 23 22 |  | 
| 24 23 | 
             
                it 'invalide sans nom' do
         | 
| 25 | 
            -
                   | 
| 26 | 
            -
                   | 
| 27 | 
            -
                  m = Adherent::Member.new(va)
         | 
| 28 | 
            -
                  m.organism_id = 1
         | 
| 24 | 
            +
                  m = adherent_members(:Dupont)
         | 
| 25 | 
            +
                  m.name = nil
         | 
| 29 26 | 
             
                  expect(m).not_to be_valid
         | 
| 30 27 | 
             
                end
         | 
| 31 28 |  | 
| 32 29 | 
             
                it 'invalide sans prenom' do
         | 
| 33 | 
            -
                   | 
| 34 | 
            -
                   | 
| 35 | 
            -
                  m = Adherent::Member.new(va)
         | 
| 36 | 
            -
                  m.organism_id = 1
         | 
| 30 | 
            +
                  m = adherent_members(:Dupont)
         | 
| 31 | 
            +
                  m.forname = nil
         | 
| 37 32 | 
             
                  expect(m).not_to be_valid
         | 
| 38 33 | 
             
                end
         | 
| 39 34 |  | 
| 40 35 | 
             
                it 'invalide sans numéro' do
         | 
| 41 | 
            -
                   | 
| 42 | 
            -
                   | 
| 43 | 
            -
                  m  | 
| 44 | 
            -
             | 
| 36 | 
            +
                  m = adherent_members(:Dupont)
         | 
| 37 | 
            +
                  m.number = nil
         | 
| 38 | 
            +
                  expect(m).not_to be_valid
         | 
| 39 | 
            +
                end
         | 
| 40 | 
            +
                
         | 
| 41 | 
            +
                it 'invalide si numero existe déja pour cet organisme' do
         | 
| 42 | 
            +
                  m = Adherent::Member.new(name:'Dupont', forname:'Alain', organism_id:1, 
         | 
| 43 | 
            +
                    number:adherent_members(:Dupont).number)
         | 
| 45 44 | 
             
                  expect(m).not_to be_valid
         | 
| 46 45 | 
             
                end
         | 
| 47 46 |  | 
| 47 | 
            +
                it 'mais valide pour un autre organisme' do
         | 
| 48 | 
            +
                  m = Adherent::Member.new(name:'Dupont', forname:'Alain', organism_id:2, 
         | 
| 49 | 
            +
                    number:adherent_members(:Dupont).number)
         | 
| 50 | 
            +
                  expect(m).to be_valid
         | 
| 51 | 
            +
                end
         | 
| 52 | 
            +
                
         | 
| 48 53 | 
             
                describe 'test de birthdate' do
         | 
| 49 | 
            -
                  before(:each) do
         | 
| 50 | 
            -
                    @m = Adherent::Member.new(valid_attributes)
         | 
| 51 | 
            -
                    @m.organism_id = 1
         | 
| 52 | 
            -
                  end
         | 
| 53 | 
            -
                  
         | 
| 54 54 | 
             
                  it 'on peut rentrer une date de naissance' do
         | 
| 55 | 
            -
                     | 
| 56 | 
            -
                     | 
| 57 | 
            -
                     | 
| 55 | 
            +
                    m = adherent_members(:Durand)
         | 
| 56 | 
            +
                    m.birthdate = '06/06/1944'
         | 
| 57 | 
            +
                    m.save
         | 
| 58 | 
            +
                    expect(m.read_attribute(:birthdate)).to eq(Date.civil(1944,6,6))
         | 
| 58 59 | 
             
                  end
         | 
| 59 60 |  | 
| 60 | 
            -
                  
         | 
| 61 61 | 
             
                end
         | 
| 62 | 
            -
                
         | 
| 63 | 
            -
                describe 'le numéro est unique' do
         | 
| 64 | 
            -
                  before(:each) do
         | 
| 65 | 
            -
                    @m = Adherent::Member.new(valid_attributes)
         | 
| 66 | 
            -
                    @m.organism_id = 1
         | 
| 67 | 
            -
                    @m.save!
         | 
| 68 | 
            -
                  end
         | 
| 69 | 
            -
                  
         | 
| 70 | 
            -
                  it 'on ne peut créer un autre adhérent avec la même référence' do
         | 
| 71 | 
            -
                    m = Adherent::Member.new(name:'Buck', forname:'Charles', number:'Adh 001')
         | 
| 72 | 
            -
                    m.organism_id = 1
         | 
| 73 | 
            -
                    expect(m).not_to be_valid
         | 
| 74 | 
            -
                  end
         | 
| 75 | 
            -
                  
         | 
| 76 | 
            -
                  it 'mais on peut si organisme différent' do
         | 
| 77 | 
            -
                    m = Adherent::Member.new(name:'Buck', forname:'Charles', number:'Adh 001')
         | 
| 78 | 
            -
                    m.organism_id = 2
         | 
| 79 | 
            -
                    expect(m).to be_valid
         | 
| 80 | 
            -
                  end
         | 
| 81 | 
            -
                  
         | 
| 82 62 |  | 
| 83 | 
            -
                end
         | 
| 84 | 
            -
                
         | 
| 85 63 | 
             
              end 
         | 
| 86 64 |  | 
| 87 65 | 
             
              describe 'méthodes' do
         | 
| 88 | 
            -
             | 
| 89 | 
            -
                before(:each) do
         | 
| 90 | 
            -
                  @m = Adherent::Member.new(valid_attributes)
         | 
| 91 | 
            -
                  @m.organism_id = 1
         | 
| 92 | 
            -
                end
         | 
| 93 | 
            -
                
         | 
| 66 | 
            +
                   
         | 
| 94 67 | 
             
                it 'to s renvoie le nom et le prénom' do
         | 
| 95 | 
            -
                  expect( | 
| 68 | 
            +
                  expect(adherent_members(:Dupont).to_s).to eq('Jules DUPONT')
         | 
| 96 69 | 
             
                end
         | 
| 97 70 |  | 
| 98 71 | 
             
                describe 'next_adhesion' do
         | 
| 72 | 
            +
                  context 'un membre qui n en a pas encore' do
         | 
| 73 | 
            +
                    
         | 
| 74 | 
            +
                    subject {adherent_members(:Durand)}
         | 
| 99 75 |  | 
| 100 | 
            -
             | 
| 101 | 
            -
             | 
| 102 | 
            -
             | 
| 76 | 
            +
                    it 'next_adhesion renvoie une adhésion relevant de ce membre' do
         | 
| 77 | 
            +
                      expect(subject.next_adhesion).to be_an_instance_of(Adherent::Adhesion)
         | 
| 78 | 
            +
                    end
         | 
| 103 79 |  | 
| 104 | 
            -
             | 
| 105 | 
            -
             | 
| 106 | 
            -
             | 
| 80 | 
            +
                    it 'avec 0 comme montant' do
         | 
| 81 | 
            +
                      expect(subject.next_adhesion.amount).to eq(0)
         | 
| 82 | 
            +
                    end
         | 
| 83 | 
            +
                  
         | 
| 84 | 
            +
                    it 'mais on peut fournir un montant' do
         | 
| 85 | 
            +
                      @na = subject.next_adhesion(25)
         | 
| 86 | 
            +
                      expect(@na.amount).to eq(25)
         | 
| 87 | 
            +
                    end
         | 
| 107 88 |  | 
| 108 | 
            -
                  it 'mais on peut fournir un montant' do
         | 
| 109 | 
            -
                    @na = @m.next_adhesion(25)
         | 
| 110 | 
            -
                    expect(@na.amount).to eq(25)
         | 
| 111 89 | 
             
                  end
         | 
| 112 90 |  | 
| 113 | 
            -
                  context 'avec déjà une adhésion' do
         | 
| 91 | 
            +
                  context 'un membre avec déjà une adhésion' do
         | 
| 114 92 |  | 
| 115 | 
            -
                     | 
| 116 | 
            -
                      @m.save!
         | 
| 117 | 
            -
                      @m.next_adhesion(26.66).save!
         | 
| 118 | 
            -
                      
         | 
| 119 | 
            -
                    end
         | 
| 93 | 
            +
                    subject {adherent_members(:Dupont)}
         | 
| 120 94 |  | 
| 121 95 | 
             
                    it 'next_adhesion renvoie une adhésion' do
         | 
| 122 | 
            -
                      expect( | 
| 96 | 
            +
                      expect(subject.next_adhesion).to be_an_instance_of(Adherent::Adhesion)
         | 
| 123 97 | 
             
                    end
         | 
| 124 98 |  | 
| 125 99 | 
             
                    it 'dont le montant est identique au précédent'do
         | 
| 126 | 
            -
                      expect( | 
| 100 | 
            +
                      expect(subject.next_adhesion.amount).to eq(26.66)
         | 
| 127 101 | 
             
                    end
         | 
| 128 102 |  | 
| 129 103 | 
             
                    it 'mais on peut surcharger' do
         | 
| 130 | 
            -
                      expect( | 
| 104 | 
            +
                      expect(subject.next_adhesion(44).amount).to eq(44)
         | 
| 131 105 | 
             
                    end
         | 
| 132 106 |  | 
| 133 | 
            -
                    
         | 
| 134 107 | 
             
                  end
         | 
| 135 108 |  | 
| 136 109 | 
             
                end
         | 
| 137 110 |  | 
| 138 111 | 
             
                describe 'les adhésions impayées' do
         | 
| 139 112 |  | 
| 140 | 
            -
                   | 
| 141 | 
            -
                    allow(@m).to receive(:adhesions).and_return @ar=double(Arel)
         | 
| 142 | 
            -
                    allow(@ar).to receive(:order).with(:to_date).and_return(@ar)
         | 
| 143 | 
            -
                    allow(@ar).to receive(:unpaid).and_return([double(:due=>12), double(:due=>27)])          
         | 
| 144 | 
            -
                  end
         | 
| 113 | 
            +
                  subject {adherent_members(:Dupont)}
         | 
| 145 114 |  | 
| 146 115 | 
             
                  it 'le membre a des adhésions non payées' do
         | 
| 147 | 
            -
                    expect( | 
| 116 | 
            +
                    expect(subject).to be_unpaid_adhesions
         | 
| 148 117 | 
             
                  end
         | 
| 149 | 
            -
                  
         | 
| 150 118 |  | 
| 151 119 | 
             
                  it 'pour un montant total de 39' do
         | 
| 152 | 
            -
                    expect( | 
| 120 | 
            +
                    expect(subject.unpaid_amount).to eq(26.66)
         | 
| 153 121 | 
             
                  end
         | 
| 154 122 |  | 
| 155 | 
            -
                  
         | 
| 156 | 
            -
                  
         | 
| 157 123 | 
             
                end
         | 
| 158 124 |  | 
| 159 125 | 
             
                describe 'jusquau' do
         | 
| 160 126 |  | 
| 161 127 | 
             
                  context 'sans adhésion' do
         | 
| 162 128 |  | 
| 129 | 
            +
                    subject {adherent_members(:Durand)}
         | 
| 130 | 
            +
                    
         | 
| 163 131 | 
             
                    it 'renvoie inconnu' do
         | 
| 164 | 
            -
                       | 
| 165 | 
            -
                      allow(@m).to receive(:created_at).and_return Time.now
         | 
| 166 | 
            -
                      expect(@m.jusquau).to eq(I18n::l(Date.today))
         | 
| 132 | 
            +
                      expect(subject.jusquau).to eq(I18n::l subject.created_at.to_date)
         | 
| 167 133 | 
             
                    end
         | 
| 168 134 |  | 
| 169 135 | 
             
                  end
         | 
| 170 136 |  | 
| 171 137 | 
             
                  context 'avec adhésion' do
         | 
| 138 | 
            +
                    subject {adherent_members(:Dupont)}
         | 
| 139 | 
            +
                    
         | 
| 172 140 | 
             
                    it 'renvoie la date de fin cette adhésion' do
         | 
| 173 | 
            -
                       | 
| 174 | 
            -
                        and_return double(Adherent::Adhesion, to_date:Date.today)
         | 
| 175 | 
            -
                      expect(@m.jusquau).to eq(Date.today)
         | 
| 141 | 
            +
                      expect(subject.jusquau).to eq I18n::l(Date.today.years_since(1) -1)
         | 
| 176 142 | 
             
                    end
         | 
| 177 143 |  | 
| 178 144 | 
             
                  end
         | 
| 179 145 |  | 
| 146 | 
            +
                end
         | 
| 147 | 
            +
                
         | 
| 148 | 
            +
                describe 'query_members' do
         | 
| 149 | 
            +
                  subject {adherent_members(:Fidele)}
         | 
| 150 | 
            +
                    
         | 
| 151 | 
            +
                  before(:each) do
         | 
| 152 | 
            +
                    subject.build_coord(tel:'01.02.03.04.05', mail:'bonjour@example.com') 
         | 
| 153 | 
            +
                    subject.save!
         | 
| 154 | 
            +
                  end
         | 
| 155 | 
            +
                    
         | 
| 156 | 
            +
                  it 'query_member' do
         | 
| 157 | 
            +
                    expect(Adherent::Member.query_members(organisms(:asso)).size).to eq(3) 
         | 
| 158 | 
            +
                  end 
         | 
| 159 | 
            +
                  
         | 
| 160 | 
            +
                  it 'peut créer un csv' do
         | 
| 161 | 
            +
                    expect {Adherent::Member.to_csv(organisms(:asso))}.to_not raise_error
         | 
| 162 | 
            +
                  end
         | 
| 180 163 |  | 
| 164 | 
            +
                  it 'qui possède une ligne de titre' do
         | 
| 165 | 
            +
                    csv  = Adherent::Member.to_csv(organisms(:asso))
         | 
| 166 | 
            +
                    expect(csv.split("\n").first).
         | 
| 167 | 
            +
                      to eq  "Numero\tNom\tPrénom\tDate de naissance\tMail\tTél\tGsm\tBureau\tAdresse\tCode Postal\tVille\tDoit\tFin Adh."
         | 
| 168 | 
            +
                  end
         | 
| 181 169 |  | 
| 170 | 
            +
                  it 'qui possède une ligne des lignes adhérents' do
         | 
| 171 | 
            +
                    csv  = Adherent::Member.to_csv(organisms(:asso))
         | 
| 172 | 
            +
                    fidele = csv.split("\n").select {|l| 'Fidele'.in? l}.first
         | 
| 173 | 
            +
                    expect(fidele). 
         | 
| 174 | 
            +
                      to eq "A003\tFidele\tChe\t\tbonjour@example.com\t01.02.03.04.05\t\t\t\t\t\t50,00\t#{(Date.today.years_since(2) -1)}"
         | 
| 175 | 
            +
                  end
         | 
| 176 | 
            +
               
         | 
| 177 | 
            +
                  context 'avec deux adhésions' do
         | 
| 178 | 
            +
                    
         | 
| 179 | 
            +
                    subject {adherent_members(:Fidele)}
         | 
| 180 | 
            +
                  
         | 
| 181 | 
            +
                    it 'donne la bonne fin d adhésion' do
         | 
| 182 | 
            +
                      expect(subject.jusquau).to eq I18n::l((Date.today.years_since(2)) -1)
         | 
| 183 | 
            +
                    end
         | 
| 184 | 
            +
                 
         | 
| 185 | 
            +
                    context 'avec des règlements'  do
         | 
| 186 | 
            +
                      # Fidele est un membre avec deux adhésions de 25 € chacune
         | 
| 187 | 
            +
                   
         | 
| 188 | 
            +
                      before(:each) do
         | 
| 189 | 
            +
                        @p = subject.payments.new(date:Date.today, amount:8, mode:'CB')
         | 
| 190 | 
            +
                        allow(@p).to receive(:correct_range_date).and_return true 
         | 
| 191 | 
            +
                        @p.save
         | 
| 192 | 
            +
                       end
         | 
| 193 | 
            +
                  
         | 
| 194 | 
            +
                      it 'le membre doit encore 14.26 ' do
         | 
| 195 | 
            +
                        ms = Adherent::Member.query_members(organisms(:asso))
         | 
| 196 | 
            +
                        m = ms.select {|a| a.number == subject.number}.first 
         | 
| 197 | 
            +
                        expect(m.t_reglements).to eq(8)
         | 
| 198 | 
            +
                        expect(m.t_adhesions).to eq(50)
         | 
| 199 | 
            +
                        expect(m.montant_du).to eq(42) 
         | 
| 200 | 
            +
                      end
         | 
| 201 | 
            +
                  
         | 
| 202 | 
            +
                      it 'après un paiement de 10.50 €, il doit encore 31,50' do
         | 
| 203 | 
            +
                        @p = subject.payments.new(date:Date.today, amount:10.50, mode:'CB')
         | 
| 204 | 
            +
                        allow(@p).to receive(:correct_range_date).and_return true 
         | 
| 205 | 
            +
                        @p.save
         | 
| 206 | 
            +
                        ms = Adherent::Member.query_members(organisms(:asso))
         | 
| 207 | 
            +
                        m = ms.select {|a| a.number == subject.number}.first 
         | 
| 208 | 
            +
                        expect(m.montant_du).to eq(31.50) 
         | 
| 209 | 
            +
                        expect(m.a_jour?).to be false
         | 
| 210 | 
            +
                      end
         | 
| 211 | 
            +
                  
         | 
| 212 | 
            +
                      it 'avec de paiements, l un de 20,50, l autre de 21,50 € il ne doit plus rien' do
         | 
| 213 | 
            +
                        @p = subject.payments.new(date:Date.today, amount:20.50, mode:'CB')
         | 
| 214 | 
            +
                        @q = subject.payments.new(date:Date.today, amount:21.50, mode:'CB')
         | 
| 215 | 
            +
                        allow(@p).to receive(:correct_range_date).and_return true 
         | 
| 216 | 
            +
                        allow(@q).to receive(:correct_range_date).and_return true 
         | 
| 217 | 
            +
                        @p.save; @q.save
         | 
| 218 | 
            +
                        ms = Adherent::Member.query_members(organisms(:asso))
         | 
| 219 | 
            +
                        m = ms.select {|a| a.number == subject.number}.first 
         | 
| 220 | 
            +
                        expect(m.montant_du).to eq(0) 
         | 
| 221 | 
            +
                        expect(m.a_jour?).to be true
         | 
| 222 | 
            +
                      end
         | 
| 223 | 
            +
                  
         | 
| 224 | 
            +
                      it 's il paye plus il ne doit rien non plus' do
         | 
| 225 | 
            +
                        @p = subject.payments.new(date:Date.today, amount:60, mode:'CB')
         | 
| 226 | 
            +
                        allow(@p).to receive(:correct_range_date).and_return true 
         | 
| 227 | 
            +
                        @p.save
         | 
| 228 | 
            +
                        ms = Adherent::Member.query_members(organisms(:asso))
         | 
| 229 | 
            +
                        m = ms.select {|a| a.number == subject.number}.first 
         | 
| 230 | 
            +
                        expect(m.montant_du).to eq(0) 
         | 
| 231 | 
            +
                        expect(m.a_jour?).to be true
         | 
| 232 | 
            +
                      end
         | 
| 233 | 
            +
                  
         | 
| 234 | 
            +
                    end
         | 
| 235 | 
            +
                  end
         | 
| 182 236 | 
             
                end
         | 
| 183 | 
            -
                
         | 
| 184 237 | 
             
              end
         | 
| 185 | 
            -
               
         | 
| 186 238 | 
             
            end
         | 
| 187 239 |  | 
| 188 240 |  | 
| @@ -1,27 +1,19 @@ | |
| 1 1 | 
             
            # coding utf-8
         | 
| 2 2 |  | 
| 3 3 | 
             
            require 'rails_helper'
         | 
| 4 | 
            -
             | 
| 4 | 
            +
             
         | 
| 5 5 |  | 
| 6 6 | 
             
            RSpec.configure do |c| 
         | 
| 7 7 | 
             
              # c.filter = {:wip=>true}
         | 
| 8 8 | 
             
            end
         | 
| 9 9 |  | 
| 10 10 | 
             
            describe 'Payment', :type => :model do 
         | 
| 11 | 
            -
               | 
| 11 | 
            +
              fixtures :all
         | 
| 12 12 |  | 
| 13 | 
            -
              def new_payment  
         | 
| 14 | 
            -
                @pay = Adherent::Payment.new(amount:111, mode:'CB', date:Date.today)
         | 
| 15 | 
            -
                @pay.member_id = 1
         | 
| 16 | 
            -
                allow(@pay).to receive(:member).and_return(@ar = double(Arel))
         | 
| 17 | 
            -
                allow(@ar).to receive(:organism).and_return(Organism.new)
         | 
| 18 | 
            -
                @pay
         | 
| 19 | 
            -
              end
         | 
| 20 | 
            -
             
         | 
| 21 13 | 
             
              describe 'validations' do 
         | 
| 22 14 |  | 
| 23 15 | 
             
                before(:each) do
         | 
| 24 | 
            -
                   | 
| 16 | 
            +
                  @pay = adherent_payments(:pay_1) 
         | 
| 25 17 | 
             
                end
         | 
| 26 18 |  | 
| 27 19 | 
             
                it 'new_payment est valide' , wip:true do
         | 
| @@ -57,137 +49,66 @@ describe 'Payment', :type => :model do | |
| 57 49 | 
             
              describe 'imputation after create' do
         | 
| 58 50 |  | 
| 59 51 | 
             
                before(:each) do 
         | 
| 60 | 
            -
                   | 
| 61 | 
            -
                  @member = @members.first
         | 
| 62 | 
            -
                  @member.adhesions.create(:from_date=>Date.today, :to_date=>Date.today.months_since(1), amount:27 )
         | 
| 63 | 
            -
                  @member.next_adhesion.save
         | 
| 64 | 
            -
                  allow(@member).to receive(:organism).and_return(Organism.new)
         | 
| 52 | 
            +
                  @member = adherent_members(:Fidele)
         | 
| 65 53 | 
             
                end
         | 
| 66 54 |  | 
| 67 | 
            -
                it 'enregistrer un payement crée  | 
| 68 | 
            -
                  @member.payments.create(:amount=>54, date:Date.today, mode:'CB')
         | 
| 69 | 
            -
             | 
| 70 | 
            -
                end
         | 
| 71 | 
            -
                
         | 
| 72 | 
            -
                it 'ne crée qu un règlement si le montant est insuffisant' do
         | 
| 73 | 
            -
                  @member.payments.create(:amount=>25, date:Date.today, mode:'CB')
         | 
| 74 | 
            -
                  expect(Adherent::Reglement.count).to eq(1)
         | 
| 55 | 
            +
                it 'enregistrer un payement crée 1 règlement' do
         | 
| 56 | 
            +
                  expect{@member.payments.create(:amount=>54, date:Date.today, mode:'CB')}.
         | 
| 57 | 
            +
                    to change {Adherent::Reglement.count}.by 2 # car Fidele a 2 adhesions
         | 
| 75 58 | 
             
                end
         | 
| 76 59 |  | 
| 77 60 | 
             
                it 'sait calculer le montant restant à imputer si plus que suffisant' do
         | 
| 78 | 
            -
                  pay = @member.payments.create(:amount=> | 
| 79 | 
            -
                  expect(pay.non_impute).to eq( | 
| 61 | 
            +
                  pay = @member.payments.create(:amount=>54, date:Date.today, mode:'CB')
         | 
| 62 | 
            +
                  expect(pay.non_impute).to eq(4)
         | 
| 80 63 | 
             
                end
         | 
| 81 64 |  | 
| 82 65 | 
             
                it 'un paiement hors date ajoute une erreur' do
         | 
| 83 | 
            -
                  p = @member.payments. | 
| 84 | 
            -
                  p.save 
         | 
| 66 | 
            +
                  p = @member.payments.create(:amount=>25, date:Date.today << 5, mode:'CB')
         | 
| 85 67 | 
             
                  expect(p.errors.messages[:date]).to eq(['hors limite'])
         | 
| 86 68 | 
             
                end
         | 
| 87 69 |  | 
| 88 70 | 
             
                it 'et n\'est pas sauvé' do
         | 
| 89 71 | 
             
                  p = @member.payments.new(:amount=>25, date:Date.today << 5, mode:'CB')
         | 
| 90 72 | 
             
                  expect {p.save}.not_to change {Adherent::Payment.count}
         | 
| 91 | 
            -
                  
         | 
| 92 73 | 
             
                end
         | 
| 93 74 |  | 
| 94 | 
            -
                
         | 
| 95 75 | 
             
              end
         | 
| 96 76 |  | 
| 97 77 |  | 
| 98 | 
            -
              describe 'Imputation on adh' | 
| 78 | 
            +
              describe 'Imputation on adh' do
         | 
| 99 79 |  | 
| 100 80 | 
             
                # soit un paiement et une adhésion, lorsqu'on impute le paiement
         | 
| 101 81 | 
             
                # sur cette adhésion, il est créé un réglement pour le montant adapté, 
         | 
| 102 82 | 
             
                # soit la totalité de l'adhésion si le non imputé est supérieur
         | 
| 103 83 | 
             
                # soit le montant non imputé si le non imputé est inférieur
         | 
| 104 84 | 
             
                before(:each) do
         | 
| 105 | 
            -
                  @ | 
| 106 | 
            -
                  @ | 
| 85 | 
            +
                  @p = adherent_payments(:pay_1) # un paiement de 15 €
         | 
| 86 | 
            +
                  @m = @p.member # le membre Dupont
         | 
| 87 | 
            +
                  @a = @m.adhesions.first # avec une adhésion de 26.66
         | 
| 107 88 | 
             
                end
         | 
| 108 89 |  | 
| 109 | 
            -
                 | 
| 110 | 
            -
                   | 
| 111 | 
            -
                end
         | 
| 112 | 
            -
                
         | 
| 113 | 
            -
                it 'avec un adhésion de 50' do
         | 
| 114 | 
            -
                  @a = Adherent::Adhesion.create!(member_id:@m.id, amount:50,
         | 
| 115 | 
            -
                    from_date:Date.today, to_date:(Date.today.years_since(1)))
         | 
| 90 | 
            +
                it 'avec un paiement du montant de l adhésion' do
         | 
| 91 | 
            +
                  @p.amount = 26.66; @p.save
         | 
| 116 92 | 
             
                  @p.imputation_on_adh(@a.id)
         | 
| 117 93 | 
             
                  expect(@p.non_impute).to eq 0
         | 
| 118 94 | 
             
                  expect(@a).to be_is_paid
         | 
| 119 95 | 
             
                end
         | 
| 120 96 |  | 
| 121 | 
            -
                it 'avec un  | 
| 122 | 
            -
                  @a = Adherent::Adhesion.create!(member_id:@m.id, amount:60,
         | 
| 123 | 
            -
                    from_date:Date.today, to_date:(Date.today.years_since(1)))
         | 
| 97 | 
            +
                it 'avec un paiement inférieur à l adhésion'  do
         | 
| 124 98 | 
             
                  @p.imputation_on_adh(@a.id)
         | 
| 125 99 | 
             
                  expect(@p.non_impute).to eq 0
         | 
| 126 100 | 
             
                  expect(@a).not_to be_is_paid
         | 
| 127 | 
            -
                  expect(@a.due).to eq  | 
| 101 | 
            +
                  expect(@a.due).to eq 11.66
         | 
| 128 102 | 
             
                end
         | 
| 129 103 |  | 
| 130 | 
            -
                it 'avec un  | 
| 131 | 
            -
                  @ | 
| 132 | 
            -
                    from_date:Date.today, to_date:(Date.today.years_since(1)))
         | 
| 104 | 
            +
                it 'avec un paiement supérieur à l adhésion' do
         | 
| 105 | 
            +
                  @p.amount = 36.66; @p.save
         | 
| 133 106 | 
             
                  @p.imputation_on_adh(@a.id)
         | 
| 134 107 | 
             
                  expect(@p.non_impute).to eq 10
         | 
| 135 108 | 
             
                  expect(@a).to be_is_paid
         | 
| 136 109 | 
             
                  expect(@a.due).to eq 0
         | 
| 137 110 | 
             
                end
         | 
| 138 111 |  | 
| 139 | 
            -
                
         | 
| 140 | 
            -
              end
         | 
| 141 | 
            -
              
         | 
| 142 | 
            -
              describe 'list_imputations', wip:true do
         | 
| 143 | 
            -
                
         | 
| 144 | 
            -
                # la liste des imputations donne un Array d'information sur les 
         | 
| 145 | 
            -
                # règlements associés à un paiement, array construit avec la méthode
         | 
| 146 | 
            -
                # member.to_s.
         | 
| 147 | 
            -
                # La méthode ne doit pas créer d'erreur même si l'adhésion ou le membre
         | 
| 148 | 
            -
                # n'existe plus
         | 
| 149 | 
            -
                before(:each) do
         | 
| 150 | 
            -
                  @m = create_members(1).first # on créé un member
         | 
| 151 | 
            -
                  @p = create_payment(@m) # un payement de 50€ par défaut
         | 
| 152 | 
            -
                end
         | 
| 153 | 
            -
                
         | 
| 154 | 
            -
                after(:each) do
         | 
| 155 | 
            -
                  Adherent::Adhesion.delete_all
         | 
| 156 | 
            -
                end
         | 
| 157 | 
            -
                
         | 
| 158 | 
            -
                it 'avec une seule imputation' do
         | 
| 159 | 
            -
                  @a = Adherent::Adhesion.create!(member_id:@m.id, amount:50,
         | 
| 160 | 
            -
                    from_date:Date.today, to_date:(Date.today.years_since(1)))
         | 
| 161 | 
            -
                  @p.imputation_on_adh(@a.id)
         | 
| 162 | 
            -
                  @p.reglements(true)
         | 
| 163 | 
            -
                  expect(@p.list_imputations).to eq [member:@m.to_s, amount:50, r_id:@p.reglements.first.id]
         | 
| 164 | 
            -
                end
         | 
| 165 | 
            -
                
         | 
| 166 | 
            -
                it 'avec deux imputations' do
         | 
| 167 | 
            -
                  @a = Adherent::Adhesion.create!(member_id:@m.id, amount:10,
         | 
| 168 | 
            -
                    from_date:Date.today, to_date:(Date.today.years_since(1)))
         | 
| 169 | 
            -
                  @p.imputation_on_adh(@a.id)
         | 
| 170 | 
            -
                  @a2 = Adherent::Adhesion.create!(member_id:@m.id, amount:10,
         | 
| 171 | 
            -
                    from_date:Date.today, to_date:(Date.today.years_since(1)))
         | 
| 172 | 
            -
                  @p.imputation_on_adh(@a2.id)
         | 
| 173 | 
            -
                  @p.reglements(true)
         | 
| 174 | 
            -
                  expect(@p.list_imputations).
         | 
| 175 | 
            -
                    to eq([{member:@m.to_s, amount:10, r_id:@p.reglements.first.id},
         | 
| 176 | 
            -
                      {member:@m.to_s, amount:10, r_id:@p.reglements.last.id}])
         | 
| 177 | 
            -
                end
         | 
| 178 | 
            -
                
         | 
| 179 | 
            -
                it 'avec un adhérent effacé, affiche Adhésion inconnue' do
         | 
| 180 | 
            -
                   @a = Adherent::Adhesion.create!(member_id:@m.id, amount:50,
         | 
| 181 | 
            -
                    from_date:Date.today, to_date:(Date.today.years_since(1)))
         | 
| 182 | 
            -
                  @p.imputation_on_adh(@a.id)
         | 
| 183 | 
            -
                  @p.reglements(true)
         | 
| 184 | 
            -
                  @a.delete
         | 
| 185 | 
            -
                  expect(@p.list_imputations).
         | 
| 186 | 
            -
                    to eq [{member:'Inconnue', amount:50, r_id:@p.reglements.first.id}]
         | 
| 187 | 
            -
                end
         | 
| 188 | 
            -
                
         | 
| 189 | 
            -
                
         | 
| 190 | 
            -
                
         | 
| 191 112 | 
             
              end
         | 
| 192 113 |  | 
| 193 114 | 
             
            end  
         | 
    
        data/spec/rails_helper.rb
    CHANGED
    
    | @@ -18,7 +18,8 @@ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } | |
| 18 18 |  | 
| 19 19 | 
             
            RSpec.configure do |config|
         | 
| 20 20 | 
             
              # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
         | 
| 21 | 
            -
               | 
| 21 | 
            +
              config.fixture_path = "#{::Rails.root}/spec/fixtures"
         | 
| 22 | 
            +
              
         | 
| 22 23 |  | 
| 23 24 | 
             
              # If you're not using ActiveRecord, or you'd prefer not to run each of your
         | 
| 24 25 | 
             
              # examples within a transaction, remove the following line or assign false
         | 
    
        data/spec/spec_helper.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: adherent
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.3. | 
| 4 | 
            +
              version: 0.3.5
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Jean-Claude Lepage
         | 
| @@ -479,7 +479,6 @@ files: | |
| 479 479 | 
             
            - app/models/adherent/coord.rb
         | 
| 480 480 | 
             
            - app/models/adherent/member.rb
         | 
| 481 481 | 
             
            - app/models/adherent/payment.rb
         | 
| 482 | 
            -
            - app/models/adherent/query_member.rb
         | 
| 483 482 | 
             
            - app/models/adherent/reglement.rb
         | 
| 484 483 | 
             
            - app/models/organism.rb
         | 
| 485 484 | 
             
            - app/views/adherent/adhesions/_form.html.haml
         | 
| @@ -1068,11 +1067,9 @@ files: | |
| 1068 1067 | 
             
            - spec/models/adherent/coord_spec.rb
         | 
| 1069 1068 | 
             
            - spec/models/adherent/member_spec.rb
         | 
| 1070 1069 | 
             
            - spec/models/adherent/payment_spec.rb
         | 
| 1071 | 
            -
            - spec/models/adherent/query_member_spec.rb
         | 
| 1072 1070 | 
             
            - spec/models/adherent/reglement_spec.rb
         | 
| 1073 1071 | 
             
            - spec/rails_helper.rb
         | 
| 1074 1072 | 
             
            - spec/spec_helper.rb
         | 
| 1075 | 
            -
            - spec/support/fixtures.rb
         | 
| 1076 1073 | 
             
            - spec/views/adherent/allpayments/index.html.erb_spec.rb
         | 
| 1077 1074 | 
             
            - spec/views/adherent/payments/new.html.haml_spec.rb
         | 
| 1078 1075 | 
             
            homepage: http://faiteslescomptes.fr
         | 
| @@ -1100,7 +1097,6 @@ signing_key: | |
| 1100 1097 | 
             
            specification_version: 4
         | 
| 1101 1098 | 
             
            summary: Gestion des adhérents d'une association
         | 
| 1102 1099 | 
             
            test_files:
         | 
| 1103 | 
            -
            - spec/models/adherent/query_member_spec.rb
         | 
| 1104 1100 | 
             
            - spec/models/adherent/adhesion_spec.rb
         | 
| 1105 1101 | 
             
            - spec/models/adherent/reglement_spec.rb
         | 
| 1106 1102 | 
             
            - spec/models/adherent/member_spec.rb
         | 
| @@ -1627,7 +1623,6 @@ test_files: | |
| 1627 1623 | 
             
            - spec/controllers/adherent/reglements_controller_spec.rb
         | 
| 1628 1624 | 
             
            - spec/controllers/adherent/payments_controller_spec.rb
         | 
| 1629 1625 | 
             
            - spec/controllers/adherent/adhesions_controller_spec.rb
         | 
| 1630 | 
            -
            - spec/support/fixtures.rb
         | 
| 1631 1626 | 
             
            - spec/helpers/adherent/allpayments_helper_spec.rb
         | 
| 1632 1627 | 
             
            - spec/features/reglements_spec.rb
         | 
| 1633 1628 | 
             
            - spec/features/js_spec.rb
         |