46 lines
1.5 KiB
Ruby
46 lines
1.5 KiB
Ruby
|
# frozen_string_literal: true
|
||
|
|
||
|
require 'test_helper'
|
||
|
require_relative 'metadata_test'
|
||
|
|
||
|
class MetadataHasManyTest < ActiveSupport::TestCase
|
||
|
include MetadataTest
|
||
|
|
||
|
test 'se pueden relacionar artículos' do
|
||
|
reply = @site.posts.create(layout: :post, title: SecureRandom.hex)
|
||
|
post = @site.posts.create(layout: :post, title: SecureRandom.hex, posts: [reply.uuid.value])
|
||
|
|
||
|
assert_equal post, reply.in_reply_to.belongs_to
|
||
|
assert_includes post.posts.has_many, reply
|
||
|
end
|
||
|
|
||
|
test 'se puede eliminar la relación' do
|
||
|
reply = @site.posts.create(layout: :post, title: SecureRandom.hex)
|
||
|
post = @site.posts.create(layout: :post, title: SecureRandom.hex, posts: [reply.uuid.value])
|
||
|
|
||
|
post.posts.value = []
|
||
|
post.save
|
||
|
|
||
|
assert_not_equal post, reply.in_reply_to.belongs_to
|
||
|
assert_equal post, reply.in_reply_to.belonged_to
|
||
|
assert_nil reply.in_reply_to.belongs_to
|
||
|
assert_not_includes post.posts.has_many, reply
|
||
|
end
|
||
|
|
||
|
test 'se puede cambiar la relación' do
|
||
|
reply = @site.posts.create(layout: :post, title: SecureRandom.hex)
|
||
|
post1 = @site.posts.create(layout: :post, title: SecureRandom.hex, posts: [reply.uuid.value])
|
||
|
post2 = @site.posts.create(layout: :post, title: SecureRandom.hex)
|
||
|
|
||
|
reply.in_reply_to.value = post2.uuid.value
|
||
|
reply.save
|
||
|
|
||
|
assert_not_equal post1, reply.in_reply_to.belongs_to
|
||
|
assert_equal post1, reply.in_reply_to.belonged_to
|
||
|
assert_not_includes post1.posts.has_many, reply
|
||
|
|
||
|
assert_equal post2, reply.in_reply_to.belongs_to
|
||
|
assert_includes post2.posts.has_many, reply
|
||
|
end
|
||
|
end
|