このコミットが含まれているのは:
2026-09-30 00:30:05 +09:00
コミット 1e398bfb97
13個のファイルの変更、385行の追加、346行の削除
+10 -10
ファイルの表示
@@ -17,16 +17,16 @@ RSpec.describe PostCreatePlan do
english_name = create(:tag_name, name: 'shared_name',
language_code: 'en', script_code: 'Latn')
english = create(:tag, primary_tag_name: english_name, category: :character)
japanese = create(:tag, primary_name: 'temporary_japanese', category: :general)
nipponese = create(:tag, primary_name: 'temporary_nipponese', category: :general)
# The DB permits this identity; validation has its own contract spec.
primary_tag_name_for(japanese, 'ja').update_columns(name: 'shared_name')
primary_tag_name_for(nipponese, 'ja').update_columns(name: 'shared_name')
english_parent_name = create(:tag_name, name: 'english_parent',
language_code: 'en', script_code: 'Latn')
english_parent = create(:tag, primary_tag_name: english_parent_name,
category: :material)
japanese_parent = create(:tag, primary_name: 'japanese_parent', category: :general)
nipponese_parent = create(:tag, primary_name: 'nipponese_parent', category: :general)
TagImplication.create!(tag: english, parent_tag: english_parent)
TagImplication.create!(tag: japanese, parent_tag: japanese_parent)
TagImplication.create!(tag: nipponese, parent_tag: nipponese_parent)
plan = described_class.new(attributes: { tags: 'shared_name' }).build!(locale)
@@ -35,22 +35,22 @@ RSpec.describe PostCreatePlan do
expect(plan[:post_tag_specs]).to include(
{ name: primary_tag_name_for(english_parent, 'en').name, category: :material })
expect(plan[:post_tag_specs].pluck(:name))
.not_to include(primary_tag_name_for(japanese_parent, 'ja').name)
.not_to include(primary_tag_name_for(nipponese_parent, 'ja').name)
end
it 'resolves aliases within the requested language' do
japanese = create(:tag, primary_name: 'japanese_canonical')
nipponese = create(:tag, primary_name: 'nipponese_canonical')
english_name = create(:tag_name, name: 'english_canonical',
language_code: 'en', script_code: 'Latn')
english = create(:tag, primary_tag_name: english_name, category: :character)
japanese_alias = create(:tag_name, :alias, name: 'shared_alias',
tag: japanese)
nipponese_alias = create(:tag_name, :alias, name: 'shared_alias',
tag: nipponese)
english_alias = create(:tag_name, :alias, name: 'shared_alias',
tag: english,
language_code: 'en', script_code: 'Latn')
expect(japanese_alias.reload).to have_attributes(
tag_id: japanese.id,
expect(nipponese_alias.reload).to have_attributes(
tag_id: nipponese.id,
primary_flg: false, language_code: 'ja')
expect(english_alias.reload).to have_attributes(
tag_id: english.id,
+3 -6
ファイルの表示
@@ -2,15 +2,12 @@ require 'rails_helper'
RSpec.describe TagVersionRecorder do
let(:user) { create_member_user! }
let(:tag) { create(:tag, primary_name: '日本語名') }
let!(:tag) { create(:tag, primary_name: '日本語名') }
include_context 'English locale'
before do
Language.insert_all!([{ code: 'en', name: 'English', created_at: Time.current }])
Script.insert_all!([{ code: 'Latn', name: 'Latin', created_at: Time.current }])
Locale.insert_all!([{ code: 'en', language_code: 'en', script_code: 'Latn',
name: 'English', created_at: Time.current }])
create(:tag_name, :alias, tag:, name: '別名')
create(:tag_name, tag:, language_code: 'en', script_code: 'Latn', name: 'English name')
primary_tag_name_for(tag, 'en').update!(name: 'English name', auto_generated: false)
create(:tag_name, :alias, tag:, language_code: 'en', script_code: 'Latn',
name: 'English alias')
end