|
6 | 6 | let(:dossier) { create(:dossier, procedure:) } |
7 | 7 | let(:date_champ) { dossier.champ_data.first } |
8 | 8 |
|
9 | | - describe '#convert_to_iso8601_date' do |
| 9 | + describe 'value normalization' do |
10 | 10 | it 'preserves nil' do |
11 | | - champ = champ_with_value(nil) |
12 | | - champ.validate |
13 | | - expect(champ.value).to be_nil |
| 11 | + expect(champ_with_value(nil).value).to be_nil |
14 | 12 | end |
15 | 13 |
|
16 | 14 | it 'converts to nil if empty string' do |
17 | | - champ = champ_with_value("") |
18 | | - champ.validate |
19 | | - expect(champ.value).to be_nil |
| 15 | + expect(champ_with_value("").value).to be_nil |
20 | 16 | end |
21 | 17 |
|
22 | 18 | it 'converts unambiguous US format to ISO' do |
23 | | - champ = champ_with_value("12-21-2023") |
24 | | - champ.validate |
25 | | - expect(champ.value).to eq("2023-12-21") |
| 19 | + expect(champ_with_value("12-21-2023").value).to eq("2023-12-21") |
26 | 20 | end |
27 | 21 |
|
28 | 22 | it 'converts to nil if not a valid date' do |
29 | | - champ = champ_with_value("13/13/2023") |
30 | | - champ.validate |
31 | | - expect(champ.value).to be_nil |
| 23 | + expect(champ_with_value("13/13/2023").value).to be_nil |
32 | 24 | end |
33 | 25 |
|
34 | 26 | it 'converts to nil if not date' do |
35 | | - champ = champ_with_value("value") |
36 | | - champ.validate |
37 | | - expect(champ.value).to be_nil |
| 27 | + expect(champ_with_value("value").value).to be_nil |
38 | 28 | end |
39 | 29 |
|
40 | 30 | it "converts %d/%m/%Y format to ISO" do |
41 | | - champ = champ_with_value("31/12/2017") |
42 | | - champ.validate |
43 | | - expect(champ.value).to eq("2017-12-31") |
| 31 | + expect(champ_with_value("31/12/2017").value).to eq("2017-12-31") |
44 | 32 | end |
45 | 33 |
|
46 | 34 | it 'preserves if ISO8601' do |
47 | | - champ = champ_with_value("2023-12-21") |
48 | | - champ.validate |
49 | | - expect(champ.value).to eq("2023-12-21") |
| 35 | + expect(champ_with_value("2023-12-21").value).to eq("2023-12-21") |
50 | 36 | end |
51 | 37 |
|
52 | 38 | it 'converts to nil if false iso' do |
53 | | - champ = champ_with_value("2023-27-02") |
54 | | - champ.validate |
55 | | - expect(champ.value).to eq(nil) |
| 39 | + expect(champ_with_value("2023-27-02").value).to eq(nil) |
56 | 40 | end |
57 | 41 | end |
58 | 42 |
|
|
62 | 46 | expect(date_champ.to_s).to eq("20 juin 2020") |
63 | 47 | end |
64 | 48 |
|
65 | | - it "does not fail when value is not iso" do |
66 | | - champ_with_value("2023-30-01") |
| 49 | + it "does not fail when a legacy value stored in database is not iso" do |
| 50 | + allow(date_champ).to receive(:value).and_return("2023-30-01") |
67 | 51 | expect(date_champ.to_s).to eq("2023-30-01") |
68 | 52 | end |
69 | 53 | end |
|
0 commit comments