Prefabricated user at the top level

This commit is contained in:
Daniel Waterworth 2019-05-06 10:44:15 +01:00 committed by Robin Ward
parent 73f25311fa
commit a473a56dc2

View File

@ -59,7 +59,6 @@ RSpec.describe TopicsController do
end end
describe 'moving to a new topic' do describe 'moving to a new topic' do
fab!(:user) { Fabricate(:user) }
fab!(:moderator) { Fabricate(:moderator) } fab!(:moderator) { Fabricate(:moderator) }
let(:p1) { Fabricate(:post, user: user, post_number: 1) } let(:p1) { Fabricate(:post, user: user, post_number: 1) }
let(:p2) { Fabricate(:post, user: user, post_number: 2, topic: p1.topic) } let(:p2) { Fabricate(:post, user: user, post_number: 2, topic: p1.topic) }
@ -245,7 +244,6 @@ RSpec.describe TopicsController do
end end
describe 'moving to a new message' do describe 'moving to a new message' do
fab!(:user) { Fabricate(:user) }
fab!(:trust_level_4) { Fabricate(:trust_level_4) } fab!(:trust_level_4) { Fabricate(:trust_level_4) }
fab!(:moderator) { Fabricate(:moderator) } fab!(:moderator) { Fabricate(:moderator) }
let!(:message) { Fabricate(:private_message_topic) } let!(:message) { Fabricate(:private_message_topic) }
@ -388,7 +386,6 @@ RSpec.describe TopicsController do
describe 'merging into another topic' do describe 'merging into another topic' do
fab!(:moderator) { Fabricate(:moderator) } fab!(:moderator) { Fabricate(:moderator) }
fab!(:user) { Fabricate(:user) }
let(:p1) { Fabricate(:post, user: user) } let(:p1) { Fabricate(:post, user: user) }
let(:topic) { p1.topic } let(:topic) { p1.topic }
@ -423,7 +420,6 @@ RSpec.describe TopicsController do
describe 'merging into another message' do describe 'merging into another message' do
fab!(:moderator) { Fabricate(:moderator) } fab!(:moderator) { Fabricate(:moderator) }
fab!(:user) { Fabricate(:user) }
fab!(:trust_level_4) { Fabricate(:trust_level_4) } fab!(:trust_level_4) { Fabricate(:trust_level_4) }
let(:message) { Fabricate(:private_message_topic, user: user) } let(:message) { Fabricate(:private_message_topic, user: user) }
let!(:p1) { Fabricate(:post, topic: message, user: trust_level_4) } let!(:p1) { Fabricate(:post, topic: message, user: trust_level_4) }
@ -546,7 +542,7 @@ RSpec.describe TopicsController do
end end
it "works with deleted users" do it "works with deleted users" do
deleted_user = Fabricate(:user) deleted_user = user
t2 = Fabricate(:topic, user: deleted_user) t2 = Fabricate(:topic, user: deleted_user)
p3 = Fabricate(:post, topic: t2, user: deleted_user) p3 = Fabricate(:post, topic: t2, user: deleted_user)
@ -628,7 +624,6 @@ RSpec.describe TopicsController do
context 'when logged in' do context 'when logged in' do
let(:topic) { Fabricate(:topic) } let(:topic) { Fabricate(:topic) }
let(:pm) { Fabricate(:private_message_topic) } let(:pm) { Fabricate(:private_message_topic) }
fab!(:user) { Fabricate(:user) }
before do before do
sign_in(user) sign_in(user)
end end
@ -658,7 +653,6 @@ RSpec.describe TopicsController do
end end
describe 'when logged in' do describe 'when logged in' do
fab!(:user) { Fabricate(:user) }
fab!(:moderator) { Fabricate(:moderator) } fab!(:moderator) { Fabricate(:moderator) }
let(:topic) { Fabricate(:topic) } let(:topic) { Fabricate(:topic) }
before do before do
@ -793,7 +787,7 @@ RSpec.describe TopicsController do
context 'when logged in' do context 'when logged in' do
before do before do
@user = sign_in(Fabricate(:user)) @user = sign_in(user)
@topic = Fabricate(:topic, user: @user) @topic = Fabricate(:topic, user: @user)
Fabricate(:post, user: @user, topic: @topic, post_number: 2) Fabricate(:post, user: @user, topic: @topic, post_number: 2)
TopicUser.create!(topic: @topic, user: @user) TopicUser.create!(topic: @topic, user: @user)
@ -827,7 +821,6 @@ RSpec.describe TopicsController do
end end
describe 'when logged in' do describe 'when logged in' do
fab!(:user) { Fabricate(:user) }
fab!(:moderator) { Fabricate(:moderator) } fab!(:moderator) { Fabricate(:moderator) }
let(:topic) { Fabricate(:topic, user: user, deleted_at: Time.now, deleted_by: moderator) } let(:topic) { Fabricate(:topic, user: user, deleted_at: Time.now, deleted_by: moderator) }
let!(:post) { Fabricate(:post, user: user, topic: topic, post_number: 1, deleted_at: Time.now, deleted_by: moderator) } let!(:post) { Fabricate(:post, user: user, topic: topic, post_number: 1, deleted_at: Time.now, deleted_by: moderator) }
@ -864,7 +857,6 @@ RSpec.describe TopicsController do
end end
describe 'when logged in' do describe 'when logged in' do
fab!(:user) { Fabricate(:user) }
fab!(:moderator) { Fabricate(:moderator) } fab!(:moderator) { Fabricate(:moderator) }
let(:topic) { Fabricate(:topic, user: user, created_at: 48.hours.ago) } let(:topic) { Fabricate(:topic, user: user, created_at: 48.hours.ago) }
let!(:post) { Fabricate(:post, topic: topic, user: user, post_number: 1) } let!(:post) { Fabricate(:post, topic: topic, user: user, post_number: 1) }
@ -1308,7 +1300,7 @@ RSpec.describe TopicsController do
context 'normal user' do context 'normal user' do
before do before do
sign_in(Fabricate(:user)) sign_in(user)
end end
expected = { expected = {
@ -1382,8 +1374,6 @@ RSpec.describe TopicsController do
end end
it 'records a view to invalid post_number' do it 'records a view to invalid post_number' do
user = Fabricate(:user)
expect do expect do
get "/t/#{topic.slug}/#{topic.id}/#{256**4}", params: { get "/t/#{topic.slug}/#{topic.id}/#{256**4}", params: {
u: user.username u: user.username
@ -1394,8 +1384,6 @@ RSpec.describe TopicsController do
end end
it 'records incoming links' do it 'records incoming links' do
user = Fabricate(:user)
expect do expect do
get "/t/#{topic.slug}/#{topic.id}", params: { get "/t/#{topic.slug}/#{topic.id}", params: {
u: user.username u: user.username
@ -1781,7 +1769,6 @@ RSpec.describe TopicsController do
describe 'filtering by post number with filters' do describe 'filtering by post number with filters' do
describe 'username filters' do describe 'username filters' do
fab!(:user) { Fabricate(:user) }
let(:post) { Fabricate(:post, user: user) } let(:post) { Fabricate(:post, user: user) }
let!(:post2) { Fabricate(:post, topic: topic, user: user) } let!(:post2) { Fabricate(:post, topic: topic, user: user) }
let!(:post3) { Fabricate(:post, topic: topic) } let!(:post3) { Fabricate(:post, topic: topic) }
@ -1846,7 +1833,7 @@ RSpec.describe TopicsController do
describe 'filtering by post number with filters' do describe 'filtering by post number with filters' do
describe 'username filters' do describe 'username filters' do
let!(:post2) { Fabricate(:post, topic: topic, user: Fabricate(:user)) } let!(:post2) { Fabricate(:post, topic: topic, user: user) }
let!(:post3) { Fabricate(:post, topic: topic) } let!(:post3) { Fabricate(:post, topic: topic) }
it 'should return the right posts' do it 'should return the right posts' do
@ -1979,7 +1966,6 @@ RSpec.describe TopicsController do
describe '#remove_allowed_user' do describe '#remove_allowed_user' do
it 'admin can be removed from a pm' do it 'admin can be removed from a pm' do
admin = sign_in(Fabricate(:admin)) admin = sign_in(Fabricate(:admin))
user = Fabricate(:user)
pm = create_post(user: user, archetype: 'private_message', target_usernames: [user.username, admin.username]) pm = create_post(user: user, archetype: 'private_message', target_usernames: [user.username, admin.username])
put "/t/#{pm.topic_id}/remove-allowed-user.json", params: { put "/t/#{pm.topic_id}/remove-allowed-user.json", params: {
@ -1998,7 +1984,7 @@ RSpec.describe TopicsController do
end end
describe "when logged in" do describe "when logged in" do
let!(:user) { sign_in(Fabricate(:user)) } before { sign_in(user) }
let(:operation) { { type: 'change_category', category_id: '1' } } let(:operation) { { type: 'change_category', category_id: '1' } }
let(:topic_ids) { [1, 2, 3] } let(:topic_ids) { [1, 2, 3] }
@ -2041,7 +2027,7 @@ RSpec.describe TopicsController do
describe '#remove_bookmarks' do describe '#remove_bookmarks' do
it "should remove bookmarks properly from non first post" do it "should remove bookmarks properly from non first post" do
bookmark = PostActionType.types[:bookmark] bookmark = PostActionType.types[:bookmark]
user = sign_in(Fabricate(:user)) sign_in(user)
post = create_post post = create_post
post2 = create_post(topic_id: post.topic_id) post2 = create_post(topic_id: post.topic_id)
@ -2057,7 +2043,6 @@ RSpec.describe TopicsController do
it "should disallow bookmarks on posts you have no access to" do it "should disallow bookmarks on posts you have no access to" do
sign_in(Fabricate(:user)) sign_in(Fabricate(:user))
user = Fabricate(:user)
pm = create_post(user: user, archetype: 'private_message', target_usernames: [user.username]) pm = create_post(user: user, archetype: 'private_message', target_usernames: [user.username])
put "/t/#{pm.topic_id}/bookmark.json" put "/t/#{pm.topic_id}/bookmark.json"
@ -2066,13 +2051,14 @@ RSpec.describe TopicsController do
end end
describe '#reset_new' do describe '#reset_new' do
let(:user) { sign_in(Fabricate(:user)) }
it 'needs you to be logged in' do it 'needs you to be logged in' do
put "/topics/reset-new.json" put "/topics/reset-new.json"
expect(response.status).to eq(403) expect(response.status).to eq(403)
end end
it "updates the `new_since` date" do it "updates the `new_since` date" do
sign_in(user)
old_date = 2.years.ago old_date = 2.years.ago
user.user_stat.update_column(:new_since, old_date) user.user_stat.update_column(:new_since, old_date)
@ -2137,12 +2123,11 @@ RSpec.describe TopicsController do
end end
describe 'converting public topic to private message' do describe 'converting public topic to private message' do
fab!(:user) { Fabricate(:user) }
let(:topic) { Fabricate(:topic, user: user) } let(:topic) { Fabricate(:topic, user: user) }
let!(:post) { Fabricate(:post, topic: topic) } let!(:post) { Fabricate(:post, topic: topic) }
it "raises an error when the user doesn't have permission to convert topic" do it "raises an error when the user doesn't have permission to convert topic" do
sign_in(Fabricate(:user)) sign_in(user)
put "/t/#{topic.id}/convert-topic/private.json" put "/t/#{topic.id}/convert-topic/private.json"
expect(response).to be_forbidden expect(response).to be_forbidden
end end
@ -2164,12 +2149,11 @@ RSpec.describe TopicsController do
end end
describe 'converting private message to public topic' do describe 'converting private message to public topic' do
fab!(:user) { Fabricate(:user) }
let(:topic) { Fabricate(:private_message_topic, user: user) } let(:topic) { Fabricate(:private_message_topic, user: user) }
let!(:post) { Fabricate(:post, topic: topic) } let!(:post) { Fabricate(:post, topic: topic) }
it "raises an error when the user doesn't have permission to convert topic" do it "raises an error when the user doesn't have permission to convert topic" do
sign_in(Fabricate(:user)) sign_in(user)
put "/t/#{topic.id}/convert-topic/public.json" put "/t/#{topic.id}/convert-topic/public.json"
expect(response).to be_forbidden expect(response).to be_forbidden
end end
@ -2385,7 +2369,7 @@ RSpec.describe TopicsController do
it 'should return the right response' do it 'should return the right response' do
post "/t/#{group_private_topic.id}/invite.json", params: { post "/t/#{group_private_topic.id}/invite.json", params: {
user: Fabricate(:user) user: user
} }
expect(response.status).to eq(403) expect(response.status).to eq(403)
@ -2395,7 +2379,7 @@ RSpec.describe TopicsController do
describe 'when user is not part of the required group' do describe 'when user is not part of the required group' do
it 'should return the right response' do it 'should return the right response' do
post "/t/#{group_private_topic.id}/invite.json", params: { post "/t/#{group_private_topic.id}/invite.json", params: {
user: Fabricate(:user) user: user
} }
expect(response.status).to eq(422) expect(response.status).to eq(422)
@ -2414,7 +2398,7 @@ RSpec.describe TopicsController do
describe 'when topic id is invalid' do describe 'when topic id is invalid' do
it 'should return the right response' do it 'should return the right response' do
post "/t/999/invite.json", params: { post "/t/999/invite.json", params: {
email: Fabricate(:user).email email: user.email
} }
expect(response.status).to eq(400) expect(response.status).to eq(400)
@ -2637,7 +2621,7 @@ RSpec.describe TopicsController do
end end
it "fails as a regular user" do it "fails as a regular user" do
sign_in(Fabricate(:user)) sign_in(user)
put "/t/#{topic.id}/publish.json", params: { destination_category_id: category.id } put "/t/#{topic.id}/publish.json", params: { destination_category_id: category.id }
expect(response.status).to eq(403) expect(response.status).to eq(403)
end end