-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathcensus_datum_spec.rb
More file actions
50 lines (43 loc) · 1.95 KB
/
Copy pathcensus_datum_spec.rb
File metadata and controls
50 lines (43 loc) · 1.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
# frozen_string_literal: true
require "spec_helper"
RSpec.describe Decidim::Census::CensusDatum do
let(:organization) { create(:organization) }
CensusDatum = Decidim::Census::CensusDatum
describe "get census for a given identity document" do
it "returns the last inserted when duplicates" do
create(:census_datum, id_document: encode_id_document("AAA"))
last = create(:census_datum, id_document: encode_id_document("AAA"),
organization:)
expect(CensusDatum.search_id_document(organization, "AAA")).to eq(last)
end
it "normalizes the document" do
census = create(:census_datum, id_document: encode_id_document("AAA"),
organization:)
expect(CensusDatum.search_id_document(organization, "a-a-a")).to eq(census)
end
end
# rubocop:disable Rails/SkipsModelValidations
it "inserts a collection of values" do
CensusDatum.insert_all(organization, [["1111A", "1990/12/1"], ["2222B", "1990/12/2"]])
expect(CensusDatum.count).to be 2
CensusDatum.insert_all(organization, [["1111A", "2001/12/1"], ["3333C", "1990/12/3"]])
expect(CensusDatum.count).to be 4
end
# rubocop:enable Rails/SkipsModelValidations
describe "normalization methods" do
it "normalizes and encodes the id document" do
expect(CensusDatum.normalize_and_encode_id_document("1234a"))
.to eq encode_id_document("1234A")
expect(CensusDatum.normalize_and_encode_id_document(" 1234a "))
.to eq encode_id_document("1234A")
expect(CensusDatum.normalize_and_encode_id_document(")($·$")).to eq ""
expect(CensusDatum.normalize_and_encode_id_document(nil)).to eq ""
end
it "normalizes dates" do
expect(CensusDatum.parse_date("20/3/1992"))
.to eq Date.strptime("1992/03/20", "%Y/%m/%d")
expect(CensusDatum.parse_date("1/20/1992")).to be_nil
expect(CensusDatum.parse_date("n/3/1992")).to be_nil
end
end
end