diff options
| -rw-r--r-- | app/models/chouette/vehicle_journey.rb | 9 | ||||
| -rw-r--r-- | spec/models/custom_field_spec.rb | 11 | 
2 files changed, 17 insertions, 3 deletions
| diff --git a/app/models/chouette/vehicle_journey.rb b/app/models/chouette/vehicle_journey.rb index a8c9c1824..32f3cb731 100644 --- a/app/models/chouette/vehicle_journey.rb +++ b/app/models/chouette/vehicle_journey.rb @@ -256,8 +256,15 @@ module Chouette        end      end +    def self.custom_fields +      CustomField.where(resource_type: self.name.split("::").last) +    end + +      def custom_fields -      CustomField.where(resource_type: self.class.name.split("::").last) +      Hash[*self.class.custom_fields.map do |v| +        [v.code, v.slice(:code, :name, :field_type, :options).update(value: custom_field_value(v.code))] +      end.flatten]      end      def custom_field_value key diff --git a/spec/models/custom_field_spec.rb b/spec/models/custom_field_spec.rb index 80873683c..6ebf994db 100644 --- a/spec/models/custom_field_spec.rb +++ b/spec/models/custom_field_spec.rb @@ -17,8 +17,15 @@ RSpec.describe CustomField, type: :model do    context "custom fields for a resource" do -    let!( :fields ){ (1..2).map{ create :custom_field } } -    it { expect(vj.custom_fields).to eq(fields) } +    let!( :fields ){ [create(:custom_field), create(:custom_field, code: :energy)] } +    let!( :instance_fields ){ +      { +        fields[0].code => fields[0].slice(:code, :name, :field_type, :options).update(value: nil), +        "energy" => fields[1].slice(:code, :name, :field_type, :options).update(value: 99) +      } +    } +    it { expect(Chouette::VehicleJourney.custom_fields).to eq(fields) } +    it { expect(vj.custom_fields).to eq(instance_fields) }    end    context "custom field_values for a resource" do | 
