このコミットが含まれているのは:
@@ -26,10 +26,10 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
describe 'GET /materials' do
|
||||
let!(:tag_a) do
|
||||
create(:tag, name: 'material_index_a', category: :material)
|
||||
create(:tag, primary_name: 'material_index_a', category: :material)
|
||||
end
|
||||
let!(:tag_b) do
|
||||
create(:tag, name: 'material_index_b', category: :material)
|
||||
create(:tag, primary_name: 'material_index_b', category: :material)
|
||||
end
|
||||
|
||||
let!(:material_a) do
|
||||
@@ -116,20 +116,20 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
it 'filters by descendant tags and returns stable parent tag groups' do
|
||||
root =
|
||||
create(:tag, name: 'material_scope_root',
|
||||
create(:tag, primary_name: 'material_scope_root',
|
||||
category: :material)
|
||||
child_b =
|
||||
create(:tag, name: 'material_scope_b',
|
||||
create(:tag, primary_name: 'material_scope_b',
|
||||
category: :material)
|
||||
child_a =
|
||||
create(:tag, name: 'material_scope_a',
|
||||
create(:tag, primary_name: 'material_scope_a',
|
||||
category: :material)
|
||||
deprecated =
|
||||
create(:tag, name: 'material_scope_old',
|
||||
create(:tag, primary_name: 'material_scope_old',
|
||||
category: :material,
|
||||
deprecated_at: Time.current)
|
||||
grandchild =
|
||||
create(:tag, name: 'material_scope_grandchild',
|
||||
create(:tag, primary_name: 'material_scope_grandchild',
|
||||
category: :material)
|
||||
root_material =
|
||||
build_material(tag: root, user: member_user,
|
||||
@@ -179,7 +179,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
describe 'GET /materials/:id' do
|
||||
let!(:tag) do
|
||||
create(:tag, name: 'material_show', category: :material)
|
||||
create(:tag, primary_name: 'material_show', category: :material)
|
||||
end
|
||||
let!(:material) do
|
||||
build_material(tag:, user: member_user, file: dummy_upload(filename: 'show.png'))
|
||||
@@ -269,7 +269,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
expect(response).to have_http_status(:created)
|
||||
|
||||
material = Material.order(:id).last
|
||||
expect(material.tag.name).to eq('material_create_new')
|
||||
expect(primary_tag_name_for(material.tag, 'ja').name).to eq('material_create_new')
|
||||
expect(material.tag.category).to eq('material')
|
||||
expect(material.created_by_user).to eq(member_user)
|
||||
expect(material.updated_by_user).to eq(member_user)
|
||||
@@ -297,7 +297,8 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
expect(response).to have_http_status(:created)
|
||||
|
||||
tag = Tag.joins(:tag_name).find_by!(tag_names: { name: 'material_create_versioned_tag' })
|
||||
tag = TagName.find_by!(name: 'material_create_versioned_tag',
|
||||
language_code: 'ja', primary_flg: true).tag
|
||||
version = tag.tag_versions.order(:version_no).last
|
||||
|
||||
expect(version.event_type).to eq('create')
|
||||
@@ -324,7 +325,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
it 'returns 422 when the existing tag is not material/character' do
|
||||
general_tag_name = create(:tag_name, name: 'material_create_general_tag')
|
||||
create(:tag, tag_name: general_tag_name, category: :general)
|
||||
create(:tag, primary_tag_name: general_tag_name, category: :general)
|
||||
|
||||
post '/materials', params: {
|
||||
tag: 'material_create_general_tag',
|
||||
@@ -345,7 +346,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
expect(response).to have_http_status(:created)
|
||||
|
||||
material = Material.order(:id).last
|
||||
expect(material.tag.name).to eq('material_create_url_only')
|
||||
expect(primary_tag_name_for(material.tag, 'ja').name).to eq('material_create_url_only')
|
||||
expect(material.url).to eq('https://example.com/material-source')
|
||||
expect(material.file.attached?).to be(false)
|
||||
end
|
||||
@@ -384,7 +385,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
describe 'PUT /materials/:id' do
|
||||
let!(:tag) do
|
||||
create(:tag, name: 'material_update_old', category: :material)
|
||||
create(:tag, primary_name: 'material_update_old', category: :material)
|
||||
end
|
||||
let!(:material) do
|
||||
build_material(tag:, user: member_user, file: dummy_upload(filename: 'old.png'))
|
||||
@@ -463,7 +464,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
expect(response).to have_http_status(:ok)
|
||||
|
||||
material.reload
|
||||
expect(material.tag.name).to eq('material_update_new')
|
||||
expect(primary_tag_name_for(material.tag, 'ja').name).to eq('material_update_new')
|
||||
expect(material.tag.category).to eq('material')
|
||||
expect(material.url).to eq('https://example.com/updated-source')
|
||||
expect(material.updated_by_user).to eq(member_user)
|
||||
@@ -497,7 +498,8 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
|
||||
tag = Tag.joins(:tag_name).find_by!(tag_names: { name: 'material_update_versioned_tag' })
|
||||
tag = TagName.find_by!(name: 'material_update_versioned_tag',
|
||||
language_code: 'ja', primary_flg: true).tag
|
||||
version = tag.tag_versions.order(:version_no).last
|
||||
|
||||
expect(version.event_type).to eq('create')
|
||||
@@ -508,7 +510,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
it 'backfills a create tag_version for an existing material tag without history' do
|
||||
existing_tag =
|
||||
create(:tag, name: 'material_update_existing_no_history',
|
||||
create(:tag, primary_name: 'material_update_existing_no_history',
|
||||
category: :material)
|
||||
|
||||
expect(existing_tag.tag_versions).to be_empty
|
||||
@@ -531,7 +533,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
it 'backfills a create tag_version for an existing character tag without history' do
|
||||
existing_tag =
|
||||
create(:tag, name: 'material_update_character_no_history',
|
||||
create(:tag, primary_name: 'material_update_character_no_history',
|
||||
category: :character)
|
||||
|
||||
expect(existing_tag.tag_versions).to be_empty
|
||||
@@ -563,7 +565,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
expect(response).to have_http_status(:ok)
|
||||
|
||||
material.reload
|
||||
expect(material.tag.name).to eq('material_update_remove_file')
|
||||
expect(primary_tag_name_for(material.tag, 'ja').name).to eq('material_update_remove_file')
|
||||
expect(material.url).to eq('https://example.com/updated-source')
|
||||
expect(material.updated_by_user).to eq(member_user)
|
||||
expect(material.file.attached?).to be(false)
|
||||
@@ -651,8 +653,8 @@ RSpec.describe 'Materials API', type: :request do
|
||||
end
|
||||
|
||||
describe 'GET /materials/download.zip' do
|
||||
let!(:tag_a) { create(:tag, name: 'zip_a', category: :material) }
|
||||
let!(:tag_b) { create(:tag, name: 'zip_b', category: :material) }
|
||||
let!(:tag_a) { create(:tag, primary_name: 'zip_a', category: :material) }
|
||||
let!(:tag_b) { create(:tag, primary_name: 'zip_b', category: :material) }
|
||||
let!(:material_a) do
|
||||
build_material(tag: tag_a, user: member_user,
|
||||
file: dummy_upload(filename: 'a.png', body: 'zip-a'))
|
||||
@@ -701,7 +703,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
describe 'GET /materials/versions' do
|
||||
let!(:tag) do
|
||||
create(:tag, name: 'material_history', category: :material)
|
||||
create(:tag, primary_name: 'material_history', category: :material)
|
||||
end
|
||||
let!(:material) do
|
||||
build_material(tag:, user: member_user, file: dummy_upload(filename: 'history.png'))
|
||||
@@ -776,7 +778,7 @@ RSpec.describe 'Materials API', type: :request do
|
||||
|
||||
describe 'DELETE /materials/:id' do
|
||||
let!(:tag) do
|
||||
create(:tag, name: 'material_destroy', category: :material)
|
||||
create(:tag, primary_name: 'material_destroy', category: :material)
|
||||
end
|
||||
let!(:material) do
|
||||
build_material(tag:, user: member_user, file: dummy_upload(filename: 'destroy.png'))
|
||||
|
||||
新しいイシューから参照
ユーザーをブロックする