spec/i18n_tasks_spec.rb in i18n-tasks-0.7.12 vs spec/i18n_tasks_spec.rb in i18n-tasks-0.7.13

- old
+ new

@@ -1,17 +1,17 @@ # coding: utf-8 require 'spec_helper' require 'fileutils' describe 'i18n-tasks' do - delegate :run_cmd, :i18n_task, :in_test_app_dir, to: :TestCodebase + delegate :run_cmd, :i18n_task, :in_test_app_dir, :i18n_cmd, to: :TestCodebase describe 'health' do it 'outputs stats' do t = i18n_task stats = in_test_app_dir { t.forest_stats(t.data_forest t.locales) } - out = capture_stderr { run_cmd :health } + out = in_test_app_dir { capture_stderr { capture_stdout { i18n_cmd.run(:health) } } } stats.values.each do |v| expect(out).to include(v.to_s) end end end @@ -35,30 +35,26 @@ en.only_in_es en.events.show.success ) } it 'detects missing' do - capture_stderr do - es_keys = expected_missing_keys.grep(/^es\./) - expect(run_cmd :missing).to be_i18n_keys expected_missing_keys - # locale argument - expect(run_cmd :missing, locales: %w(es)).to be_i18n_keys es_keys - expect(run_cmd :missing, arguments: %w(es)).to be_i18n_keys es_keys - end + es_keys = expected_missing_keys.grep(/^es\./) + expect(run_cmd :missing).to be_i18n_keys expected_missing_keys + # locale argument + expect(run_cmd :missing, locales: %w(es)).to be_i18n_keys es_keys + expect(run_cmd :missing, arguments: %w(es)).to be_i18n_keys es_keys end end describe 'eq_base' do it 'detects eq_base' do - capture_stderr do - expect(run_cmd :eq_base).to be_i18n_keys %w(es.same_in_es.a) - end + expect(run_cmd :eq_base).to be_i18n_keys %w(es.same_in_es.a) end end let(:expected_unused_keys) do - %w(unused.a unused.numeric unused.plural).map do |k| + %w(unused.a unused.numeric unused.plural).map do |k| %w(en es).map { |l| "#{l}.#{k}" } end.reduce(:+) end let(:expected_unused_keys_strict) do @@ -67,35 +63,29 @@ end.reduce(:+) end describe 'unused' do it 'detects unused' do - capture_stderr do - expect(run_cmd :unused).to be_i18n_keys expected_unused_keys - end + expect(run_cmd :unused).to be_i18n_keys expected_unused_keys end it 'detects unused (--strict)' do - capture_stderr do - expect(run_cmd :unused, strict: true).to be_i18n_keys expected_unused_keys_strict - end + expect(run_cmd :unused, strict: true).to be_i18n_keys expected_unused_keys_strict end end describe 'remove_unused' do it 'removes unused' do in_test_app_dir do - t = i18n_task + t = i18n_task unused = expected_unused_keys.map { |k| ::I18n::Tasks::SplitKey.split_key(k, 2)[1] } unused.each do |key| expect(t.key_value?(key, :en)).to be true expect(t.key_value?(key, :es)).to be true end ENV['CONFIRM'] = '1' - capture_stderr { - run_cmd :remove_unused - } + run_cmd :remove_unused t.data.reload unused.each do |key| expect(t.key_value?(key, :en)).to be false expect(t.key_value?(key, :es)).to be false end @@ -129,11 +119,11 @@ end describe 'xlsx_report' do it 'saves' do in_test_app_dir { - capture_stderr { run_cmd :xlsx_report } + run_cmd :xlsx_report expect(File).to exist 'tmp/i18n-report.xlsx' FileUtils.cp('tmp/i18n-report.xlsx', '..') } end @@ -195,24 +185,22 @@ end end describe 'find' do it 'prints usages' do - capture_stderr do - result = Term::ANSIColor.uncolor(run_cmd :find, arguments: ['used.*']) - expect(result).to eq(<<-TXT) + result = Term::ANSIColor.uncolor(run_cmd :find, arguments: ['used.*']) + expect(result).to eq(<<-TXT) used.a 2 app/views/usages.html.slim:1 p = t 'used.a' app/views/usages.html.slim:2 b = t 'used.a' - TXT - end + TXT end end # --- setup --- - BENCH_KEYS = 10 + BENCH_KEYS = ENV['BENCH_KEYS'].to_i before(:each) do gen_data = ->(v) { v_num = v.chars.map(&:ord).join('').to_i { 'ca' => {'a' => v, 'b' => v, 'c' => v, 'd' => v, 'e' => "#{v}%{i}", 'f' => "#{v}%{i}"}, @@ -240,24 +228,28 @@ 'numeric' => {'a' => v_num}, 'plural' => {'a' => {'one' => v, 'other' => "%{count} #{v}s"}}, 'devise' => {'a' => v}, 'scoped' => {'x' => v}, 'very' => {'scoped' => {'x' => v}}, - 'used' => {'a' => v} + 'used' => {'a' => v}, + 'latin_extra' => {'çüéö' => v}, + 'not_a_comment' => v }.tap { |r| - gen = r["bench"] = {} - BENCH_KEYS.times { |i| gen["key#{i}"] = v } + if BENCH_KEYS > 0 + gen = r['bench'] = {} + BENCH_KEYS.times { |i| gen["key#{i}"] = v } + end } } - en_data = gen_data.('EN_TEXT') - es_data = gen_data.('ES_TEXT').except( - 'missing_in_es', 'missing_in_es_plural_1', 'missing_in_es_plural_2') - es_data['same_in_es']['a'] = 'EN_TEXT' - es_data['blank_in_es']['a'] = '' - es_data['ignore_eq_base_all']['a'] = 'EN_TEXT' - es_data['ignore_eq_base_es']['a'] = 'EN_TEXT' - es_data['only_in_es'] = 1 + en_data = gen_data.('EN_TEXT') + es_data = gen_data.('ES_TEXT').except('missing_in_es', 'missing_in_es_plural_1', 'missing_in_es_plural_2') + + es_data['same_in_es']['a'] = 'EN_TEXT' + es_data['blank_in_es']['a'] = '' + es_data['ignore_eq_base_all']['a'] = 'EN_TEXT' + es_data['ignore_eq_base_es']['a'] = 'EN_TEXT' + es_data['only_in_es'] = 1 es_data['present_in_es_but_not_en'] = {'a' => 'ES_TEXT'} fs = fixtures_contents.merge( 'config/locales/en.yml' => {'en' => en_data}.to_yaml, 'config/locales/es.yml' => {'es' => es_data}.to_yaml,