このコミットが含まれているのは:
@@ -2,7 +2,7 @@ require 'rails_helper'
|
||||
|
||||
RSpec.describe MaterialSyncImporter do
|
||||
let(:user) { create(:user, :member) }
|
||||
let(:tag) { create(:tag, name: 'sync_tag', category: :material) }
|
||||
let(:tag) { create(:tag, primary_name: 'sync_tag', category: :material) }
|
||||
|
||||
def tempfile_for body
|
||||
Tempfile.new(['material-sync-importer', '.png']).tap do |file|
|
||||
|
||||
@@ -65,7 +65,7 @@ RSpec.describe NicoTagVersionRecorder do
|
||||
end
|
||||
|
||||
it 'records sorted linked internal names and later link removal' do
|
||||
tags = ['z_link', 'a_link'].map { |name| create(:tag, name:, category: :general) }
|
||||
tags = ['z_link', 'a_link'].map { |name| create(:tag, primary_name: name, category: :general) }
|
||||
tags.each { |tag| NicoTagRelation.create!(nico_tag: external_tag, tag:) }
|
||||
|
||||
expect(record(:create).linked_tags).to eq('a_link z_link')
|
||||
|
||||
@@ -2,7 +2,7 @@ require 'rails_helper'
|
||||
|
||||
RSpec.describe PostCreatePlan do
|
||||
def create_tag! name, category
|
||||
create(:tag, name:, category:)
|
||||
create(:tag, primary_name: name, category:)
|
||||
end
|
||||
|
||||
before do
|
||||
@@ -16,12 +16,15 @@ RSpec.describe PostCreatePlan do
|
||||
it 'resolves the matching language identity and its parents' do
|
||||
english_name = create(:tag_name, name: 'shared_name',
|
||||
language_code: 'en', script_code: 'Latn')
|
||||
english = create(:tag, tag_name: english_name, category: :character)
|
||||
japanese = create(:tag, name: 'temporary_japanese', category: :general)
|
||||
english = create(:tag, primary_tag_name: english_name, category: :character)
|
||||
japanese = create(:tag, primary_name: 'temporary_japanese', category: :general)
|
||||
# The DB permits this identity; validation has its own contract spec.
|
||||
japanese.tag_name.update_columns(name: 'shared_name')
|
||||
english_parent = create(:tag, name: 'english_parent', category: :material)
|
||||
japanese_parent = create(:tag, name: 'japanese_parent', category: :general)
|
||||
primary_tag_name_for(japanese, '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)
|
||||
TagImplication.create!(tag: english, parent_tag: english_parent)
|
||||
TagImplication.create!(tag: japanese, parent_tag: japanese_parent)
|
||||
|
||||
@@ -30,15 +33,16 @@ RSpec.describe PostCreatePlan do
|
||||
expect(plan[:direct_tag_specs]).to eq(
|
||||
[{ name: 'shared_name', category: :character }])
|
||||
expect(plan[:post_tag_specs]).to include(
|
||||
{ name: english_parent.name, category: :material })
|
||||
expect(plan[:post_tag_specs].pluck(:name)).not_to include(japanese_parent.name)
|
||||
{ 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)
|
||||
end
|
||||
|
||||
it 'resolves aliases within the requested language' do
|
||||
japanese = create(:tag, name: 'japanese_canonical')
|
||||
japanese = create(:tag, primary_name: 'japanese_canonical')
|
||||
english_name = create(:tag_name, name: 'english_canonical',
|
||||
language_code: 'en', script_code: 'Latn')
|
||||
english = create(:tag, tag_name: english_name, category: :character)
|
||||
english = create(:tag, primary_tag_name: english_name, category: :character)
|
||||
japanese_alias = create(:tag_name, :alias, name: 'shared_alias',
|
||||
tag: japanese)
|
||||
english_alias = create(:tag_name, :alias, name: 'shared_alias',
|
||||
@@ -55,7 +59,7 @@ RSpec.describe PostCreatePlan do
|
||||
plan = described_class.new(attributes: { tags: 'shared_alias' }).build!(locale)
|
||||
|
||||
expect(plan[:direct_tag_specs]).to eq(
|
||||
[{ name: english.name, category: :character }])
|
||||
[{ name: english_name.name, category: :character }])
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -64,7 +64,7 @@ RSpec.describe PostImportPreviewer do
|
||||
end
|
||||
|
||||
it 'applies metadata to automatic fields and recognises metadata tags' do
|
||||
create(:tag, name: 'known-tag', category: :general)
|
||||
create(:tag, primary_name: 'known-tag', category: :general)
|
||||
allow(PostMetadataFetcher).to receive(:fetch).and_return(
|
||||
title: 'metadata title',
|
||||
thumbnail_base: 'https://example.com/thumb.jpg',
|
||||
|
||||
@@ -77,7 +77,7 @@ RSpec.describe Wiki::Commit do
|
||||
|
||||
it 'does not record tag_version on body-only wiki update' do
|
||||
tag_name = create(:tag_name, name: 'commit_integrity_linked_tag')
|
||||
tag = create(:tag, tag_name:, category: :general)
|
||||
tag = create(:tag, primary_tag_name: tag_name, category: :general)
|
||||
|
||||
page =
|
||||
described_class.create_content!(
|
||||
|
||||
@@ -81,7 +81,7 @@ RSpec.describe Wiki::Commit do
|
||||
|
||||
it 'does not record tag version when corresponding tag has no versions' do
|
||||
tag_name = create(:tag_name, name: 'commit_linked_tag_without_versions')
|
||||
tag = create(:tag, tag_name:, category: :general)
|
||||
tag = create(:tag, primary_tag_name: tag_name, category: :general)
|
||||
|
||||
page =
|
||||
described_class.create_content!(
|
||||
@@ -108,7 +108,7 @@ RSpec.describe Wiki::Commit do
|
||||
|
||||
it 'does not record tag version when corresponding tag has no versions' do
|
||||
tag_name = create(:tag_name, name: 'commit_linked_tag_without_versions')
|
||||
tag = create(:tag, tag_name:, category: :general)
|
||||
tag = create(:tag, primary_tag_name: tag_name, category: :general)
|
||||
|
||||
page =
|
||||
described_class.create_content!(
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする