Permalink
Please sign in to comment.
Browse files
Add RSpec tests for locales.json
(and apparently locales.json was already in good shape, phew!)
- Loading branch information...
Showing
with
80 additions
and 22 deletions.
- +26 −22 Gemfile.lock
- +53 −0 spec/repository_spec.rb
- +1 −0 spec/spec_helper.rb
@@ -0,0 +1,53 @@ | ||
describe "The file \"locales.json\"" do | ||
before(:all) do | ||
locales_file_path = File.join("#{LOCALE_ROOT}", "locales.json") | ||
@locales_file_exists = File.exist?(locales_file_path) | ||
@locales_file_validates = false | ||
begin | ||
locales = JSON.parse(File.read(locales_file_path)) | ||
@locales_file_validates = true | ||
rescue JSON::ParserError => e | ||
end | ||
@primary_dialects = {} | ||
@language_names = {} | ||
if @locales_file_validates | ||
@primary_dialects = locales["primary-dialects"] | ||
@language_names = locales["language-names"] | ||
end | ||
# Store locales of locale files (based on their file names) | ||
@locale_file_locales = Dir[File.join(LOCALE_ROOT, 'locales-*.xml')].map { |path| | ||
filename = File.basename(path) | ||
locale = filename[8..-5] | ||
} | ||
@locale_file_languages = @locale_file_locales.map { |locale| language = locale[0..1] } | ||
@locale_file_languages.uniq! | ||
end | ||
it "must be present" do | ||
expect(@locales_file_exists).to be true | ||
end | ||
it "must be valid JSON" do | ||
if @locales_file_exists | ||
expect(@locales_file_validates).to be true | ||
end | ||
end | ||
it "must define a primary dialect for every language (e.g. \"de-DE\" for \"de\")" do | ||
expect(@locale_file_languages - @primary_dialects.keys).to eq([]) | ||
end | ||
it "must define language names for every locale" do | ||
expect(@locale_file_locales - @language_names.keys).to eq([]) | ||
end | ||
it "must define two language names for every locale (in the language itself and in English)" do | ||
incorrect_entries = @language_names.select { |locale, descriptions| descriptions.length != 2 } | ||
expect(incorrect_entries).to eq({}) | ||
end | ||
end | ||
0 comments on commit
6525420