このコミットが含まれているのは:
2026-10-19 20:56:07 +09:00
コミット d365406019
60個のファイルの変更、434行の追加、285行の削除
+8 -10
ファイルの表示
@@ -67,20 +67,18 @@ RSpec.describe Locale, type: :model do
primary_flg: true, auto_generated: false)
end
it 'creates a primary name when the language has only an alias' do
prepare_ainu_reference!
tag = create(:tag, primary_name: 'alias_only_tag')
alias_name = create(:tag_name, :alias, name: 'alias_en',
tag:,
language_code: 'ain', script_code: 'Kana')
it 'adds the new language primary while preserving existing names and aliases' do
tag = create(:tag, primary_name: 'named_tag')
create(:tag_name, :alias, name: 'existing_alias', tag:,
language_code: 'ja', script_code: 'Jpan')
original_names = tag.tag_names.order(:id).map(&:attributes)
create_ainu_locale!
expect(alias_name.reload).to have_attributes(
tag_id: tag.id,
language_code: 'ain', script_code: 'Kana', primary_flg: false)
expect(tag.tag_names.where(language_code: 'ja').order(:id).map(&:attributes))
.to eq(original_names)
generated = TagName.find_by!(tag_id: tag.id, language_code: 'ain', primary_flg: true)
expect(generated).to have_attributes(tag_id: tag.id, language_code: 'ain',
expect(generated).to have_attributes(name: 'named_tag', tag_id: tag.id, language_code: 'ain',
script_code: 'Kana', primary_flg: true,
auto_generated: true)
expect(TagName.where(tag_id: tag.id, language_code: 'ain', primary_flg: true).count).to eq(1)
+2
ファイルの表示
@@ -113,6 +113,8 @@ RSpec.describe TagNameSanitisationRule, type: :model do
it 'renames without merging tags or deleting either language identity' do
locale
nipponese = create(:tag, primary_name: 'foobar')
primary_tag_name_for(nipponese, 'ain').update!(
name: 'different_ainu_name', auto_generated: false)
ainu_name = create(:tag_name, name: 'temporary',
language_code: 'ain', script_code: 'Kana')
ainu = create(:tag, primary_tag_name: ainu_name)
+4 -4
ファイルの表示
@@ -66,7 +66,7 @@ RSpec.describe Tag, type: :model do
it 'canonicalises aliases in the supplied language only' do
prepare_ainu_reference!
nipponese = create(:tag, primary_name: 'nipponese_canonical')
ainu_name = create(:tag_name, name: 'ainu_canonical',
ainu_name = build(:tag_name, tag: nil, name: 'ainu_canonical',
language_code: 'ain', script_code: 'Kana')
ainu = create(:tag, primary_tag_name: ainu_name)
primary_tag_name_for(ainu, 'ja').update!(
@@ -265,7 +265,7 @@ RSpec.describe Tag, type: :model do
expect(tag.category).to eq('character')
end
it 'uses a Japanese fallback for an Ainu-origin tag without reverse transcription' do
it 'copies an Ainu-origin name to Japanese without reverse transcription' do
locale
allow(TagName).to receive(:generate_name).and_call_original
@@ -277,9 +277,9 @@ RSpec.describe Tag, type: :model do
name: 'ainu_origin', auto_generated: false))
expect(TagName.where(tag:, language_code: 'ja', primary_flg: true))
.to contain_exactly(have_attributes(
name: "Tag_##{ tag.id }", auto_generated: true))
name: 'ainu_origin', auto_generated: true))
expect(TagName).to have_received(:generate_name)
.with(Locale.nipponese, tag, nil)
.with(Locale.nipponese, tag, tag.tag_name('ain'))
end
it 'gives a new tag one primary name for every active language' do