#309 #309 #309 #309 #309 Merge remote-tracking branch 'origin/main' into feature/309 #309 Co-authored-by: miteruzo <miteruzo@naver.com> Reviewed-on: #319
This commit was merged in pull request #319.
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
include ActiveSupport::Testing::TimeHelpers
|
||||
|
||||
require 'rails_helper'
|
||||
require 'set'
|
||||
|
||||
include ActiveSupport::Testing::TimeHelpers
|
||||
|
||||
RSpec.describe 'Posts API', type: :request do
|
||||
# create / update で thumbnail.attach は走るが、
|
||||
# resized_thumbnail! が MiniMagick 依存でコケやすいので request spec ではスタブしとくのが無難。
|
||||
@@ -1082,15 +1082,16 @@ RSpec.describe 'Posts API', type: :request do
|
||||
|
||||
it 'does not create a new version on PUT /posts/:id when snapshot is unchanged' do
|
||||
sign_in_as(member)
|
||||
create_post_version_for!(post_record)
|
||||
|
||||
expect do
|
||||
PostTag.create!(post: post_record, tag: Tag.no_deerjikist)
|
||||
create_post_version_for!(post_record.reload)
|
||||
|
||||
expect {
|
||||
put "/posts/#{post_record.id}", params: {
|
||||
title: post_record.title,
|
||||
tags: 'spec_tag'
|
||||
}
|
||||
end.not_to change(PostVersion, :count)
|
||||
|
||||
}.not_to change(PostVersion, :count)
|
||||
expect(response).to have_http_status(:ok)
|
||||
|
||||
version = post_record.reload.post_versions.order(:version_no).last
|
||||
@@ -1130,4 +1131,52 @@ RSpec.describe 'Posts API', type: :request do
|
||||
expect(response).to have_http_status(:unprocessable_entity)
|
||||
end
|
||||
end
|
||||
|
||||
describe 'tag versioning from post write actions' do
|
||||
let(:member) { create(:user, :member) }
|
||||
|
||||
it 'creates tag snapshot for normalised tags on POST /posts' do
|
||||
sign_in_as(member)
|
||||
|
||||
expect {
|
||||
post '/posts', params: {
|
||||
title: 'tag versioned post',
|
||||
url: 'https://example.com/tag-versioned-post',
|
||||
tags: 'spec_tag',
|
||||
thumbnail: dummy_upload
|
||||
}
|
||||
}.to change { tag.reload.tag_versions.count }.by(1)
|
||||
|
||||
expect(response).to have_http_status(:created)
|
||||
|
||||
version = tag.reload.tag_versions.order(:version_no).last
|
||||
expect(version.version_no).to eq(1)
|
||||
expect(version.event_type).to eq('create')
|
||||
expect(version.name).to eq('spec_tag')
|
||||
expect(version.category).to eq('general')
|
||||
expect(version.created_by_user_id).to eq(member.id)
|
||||
end
|
||||
|
||||
it 'creates tag snapshot for normalised tags on PUT /posts/:id' do
|
||||
sign_in_as(member)
|
||||
|
||||
tag_name2 = TagName.create!(name: 'spec_tag_2')
|
||||
tag2 = Tag.create!(tag_name: tag_name2, category: :general)
|
||||
|
||||
expect {
|
||||
put "/posts/#{post_record.id}", params: {
|
||||
title: 'updated title',
|
||||
tags: 'spec_tag_2'
|
||||
}
|
||||
}.to change { tag2.reload.tag_versions.count }.by(1)
|
||||
|
||||
expect(response).to have_http_status(:ok)
|
||||
|
||||
version = tag2.reload.tag_versions.order(:version_no).last
|
||||
expect(version.version_no).to eq(1)
|
||||
expect(version.event_type).to eq('create')
|
||||
expect(version.name).to eq('spec_tag_2')
|
||||
expect(version.created_by_user_id).to eq(member.id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user