spec/data_spec.rb in countries-2.0.0.pre.2 vs spec/data_spec.rb in countries-2.0.0.pre.3
- old
+ new
@@ -23,10 +23,19 @@
ISO3166.configuration.locales = [:en]
data = ISO3166::Data.new('US').call
expect(data['translated_names'].size).to eq (1)
end
+ describe "#codes" do
+ it 'returns an array' do
+ data = ISO3166::Data.codes
+ expect(data).to be_a Array
+ expect(data.size).to eq 250
+ end
+ end
+
+
it 'locales will load prior to return results' do
# require 'memory_profiler'
ISO3166.configuration.locales = [:es, :de, :en]
# report = MemoryProfiler.report do
ISO3166::Data.update_cache
@@ -67,7 +76,81 @@
expect(ISO3166::Country.new('DE').translation('de')).to eq 'Deutschland'
ISO3166::Data.update_cache
ISO3166.configuration.locales = [:es, :en]
expect(ISO3166::Data.send(:locales_to_remove) ).to eql(['de'])
expect(ISO3166::Country.new('DE').translation('de')).to eq nil
+ end
+
+ describe 'hotloading existing data' do
+ before do
+ ISO3166::Data.register(
+ alpha2: "TW",
+ name: 'NEW Taiwan',
+ translations: {
+ 'en' => "NEW Taiwan",
+ 'de' => "NEW Taiwan"
+ }
+ )
+ end
+
+ subject {ISO3166::Country.new('TW')}
+
+ it 'can be done' do
+ data = ISO3166::Data.new('TW').call
+ ISO3166.configuration.locales = [:es, :de, :de]
+ expect(data['name']).to eq 'NEW Taiwan'
+ expect(subject.name).to eq 'NEW Taiwan'
+ expect(subject.translations).to eq({
+ 'en' => "NEW Taiwan",
+ 'de' => "NEW Taiwan"})
+ end
+ end
+
+ describe 'hotloading data' do
+ before do
+ ISO3166::Data.register(
+ alpha2: "LOL",
+ name: 'Happy Country',
+ translations: {
+ 'en' => "Happy Country",
+ 'de' => "glückliches Land"
+ }
+ )
+ end
+
+ subject {ISO3166::Country.new('LOL')}
+
+ it 'can be done' do
+ data = ISO3166::Data.new('LOL').call
+ expect(data['name']).to eq 'Happy Country'
+ expect(subject.name).to eq 'Happy Country'
+ end
+
+ it 'detect a stale cache' do
+ ISO3166::Data.register(alpha2: "SAD", name: 'Sad Country')
+ data = ISO3166::Data.new('SAD').call
+ expect(data['name']).to eq 'Sad Country'
+ expect(ISO3166::Country.new('SAD').name).to eq 'Sad Country'
+ ISO3166::Data.unregister('SAD')
+ end
+
+ it 'will not override custom translations' do
+ data = ISO3166::Data.new('LOL').call
+ expect(data['translations']).to eq({
+ 'en' => "Happy Country",
+ 'de' => "glückliches Land"})
+ expect(subject.translations).to eq({
+ 'en' => "Happy Country",
+ 'de' => "glückliches Land"})
+ end
+
+ it 'can be undone' do
+ ISO3166::Data.unregister('lol')
+ data = ISO3166::Data.new('LOL').call
+ expect(data).to eq nil
+ end
+
+ after do
+ ISO3166::Data.unregister('lol')
+ end
end
end