diff --git a/spec/components/admin_confirmation_spec.rb b/spec/components/admin_confirmation_spec.rb
index a6efab9615..1c09b8f236 100644
--- a/spec/components/admin_confirmation_spec.rb
+++ b/spec/components/admin_confirmation_spec.rb
@@ -5,8 +5,8 @@ require 'rails_helper'
describe AdminConfirmation do
- let(:admin) { Fabricate(:admin) }
- let(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
describe "create_confirmation" do
it "raises an error for non-admins" do
diff --git a/spec/components/admin_user_index_query_spec.rb b/spec/components/admin_user_index_query_spec.rb
index d2f0afd5f1..2e23232c8a 100644
--- a/spec/components/admin_user_index_query_spec.rb
+++ b/spec/components/admin_user_index_query_spec.rb
@@ -93,8 +93,8 @@ describe AdminUserIndexQuery do
end
describe 'with a suspected user' do
- let(:user) { Fabricate(:active_user, created_at: 1.day.ago) }
- let(:bot) { Fabricate(:active_user, id: -10, created_at: 1.day.ago) }
+ fab!(:user) { Fabricate(:active_user, created_at: 1.day.ago) }
+ fab!(:bot) { Fabricate(:active_user, id: -10, created_at: 1.day.ago) }
it 'finds the suspected user' do
bot
@@ -106,8 +106,8 @@ describe AdminUserIndexQuery do
describe "with a pending user" do
- let!(:user) { Fabricate(:user, active: true, approved: false) }
- let!(:inactive_user) { Fabricate(:user, approved: false, active: false) }
+ fab!(:user) { Fabricate(:user, active: true, approved: false) }
+ fab!(:inactive_user) { Fabricate(:user, approved: false, active: false) }
it "finds the unapproved user" do
query = ::AdminUserIndexQuery.new(query: 'pending')
@@ -116,7 +116,7 @@ describe AdminUserIndexQuery do
end
context 'and a suspended pending user' do
- let!(:suspended_user) { Fabricate(:user, approved: false, suspended_at: 1.hour.ago, suspended_till: 20.years.from_now) }
+ fab!(:suspended_user) { Fabricate(:user, approved: false, suspended_at: 1.hour.ago, suspended_till: 20.years.from_now) }
it "doesn't return the suspended user" do
query = ::AdminUserIndexQuery.new(query: 'pending')
expect(query.find_users).not_to include(suspended_user)
@@ -149,8 +149,8 @@ describe AdminUserIndexQuery do
describe "with an admin user" do
- let!(:user) { Fabricate(:user, admin: true) }
- let!(:user2) { Fabricate(:user, admin: false) }
+ fab!(:user) { Fabricate(:user, admin: true) }
+ fab!(:user2) { Fabricate(:user, admin: false) }
it "finds the admin" do
query = ::AdminUserIndexQuery.new(query: 'admins')
@@ -161,8 +161,8 @@ describe AdminUserIndexQuery do
describe "with a moderator" do
- let!(:user) { Fabricate(:user, moderator: true) }
- let!(:user2) { Fabricate(:user, moderator: false) }
+ fab!(:user) { Fabricate(:user, moderator: true) }
+ fab!(:user2) { Fabricate(:user, moderator: false) }
it "finds the moderator" do
query = ::AdminUserIndexQuery.new(query: 'moderators')
@@ -173,8 +173,8 @@ describe AdminUserIndexQuery do
describe "with a silenced user" do
- let!(:user) { Fabricate(:user, silenced_till: 1.year.from_now) }
- let!(:user2) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user, silenced_till: 1.year.from_now) }
+ fab!(:user2) { Fabricate(:user) }
it "finds the silenced user" do
query = ::AdminUserIndexQuery.new(query: 'silenced')
@@ -185,8 +185,8 @@ describe AdminUserIndexQuery do
describe "with a staged user" do
- let!(:user) { Fabricate(:user, staged: true) }
- let!(:user2) { Fabricate(:user, staged: false) }
+ fab!(:user) { Fabricate(:user, staged: true) }
+ fab!(:user2) { Fabricate(:user, staged: false) }
it "finds the staged user" do
query = ::AdminUserIndexQuery.new(query: 'staged')
@@ -256,7 +256,7 @@ describe AdminUserIndexQuery do
context "by ip address fragment" do
- let!(:user) { Fabricate(:user, ip_address: "117.207.94.9") }
+ fab!(:user) { Fabricate(:user, ip_address: "117.207.94.9") }
it "matches the ip address" do
query = ::AdminUserIndexQuery.new(filter: " 117.207.94.9 ")
diff --git a/spec/components/auth/default_current_user_provider_spec.rb b/spec/components/auth/default_current_user_provider_spec.rb
index 3027a16e86..d6320a919d 100644
--- a/spec/components/auth/default_current_user_provider_spec.rb
+++ b/spec/components/auth/default_current_user_provider_spec.rb
@@ -368,7 +368,7 @@ describe Auth::DefaultCurrentUserProvider do
end
describe "#current_user" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:unhashed_token) do
new_provider = provider('/')
@@ -605,7 +605,7 @@ describe Auth::DefaultCurrentUserProvider do
end
context "user api" do
- let :user do
+ fab! :user do
Fabricate(:user)
end
diff --git a/spec/components/auth/facebook_authenticator_spec.rb b/spec/components/auth/facebook_authenticator_spec.rb
index babac8feec..eae3e2bf21 100644
--- a/spec/components/auth/facebook_authenticator_spec.rb
+++ b/spec/components/auth/facebook_authenticator_spec.rb
@@ -49,7 +49,7 @@ describe Auth::FacebookAuthenticator do
end
context 'description_for_user' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it 'returns empty string if no entry for user' do
expect(authenticator.description_for_user(user)).to eq("")
@@ -62,7 +62,7 @@ describe Auth::FacebookAuthenticator do
end
context 'revoke' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:authenticator) { Auth::FacebookAuthenticator.new }
it 'raises exception if no entry for user' do
diff --git a/spec/components/auth/github_authenticator_spec.rb b/spec/components/auth/github_authenticator_spec.rb
index 0e7264e5c8..37c14b1546 100644
--- a/spec/components/auth/github_authenticator_spec.rb
+++ b/spec/components/auth/github_authenticator_spec.rb
@@ -23,7 +23,7 @@ end
describe Auth::GithubAuthenticator do
let(:authenticator) { described_class.new }
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
context 'after_authenticate' do
let(:data) do
@@ -251,7 +251,7 @@ describe Auth::GithubAuthenticator do
end
context 'revoke' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:authenticator) { Auth::GithubAuthenticator.new }
it 'raises exception if no entry for user' do
@@ -271,8 +271,8 @@ describe Auth::GithubAuthenticator do
let(:job_klass) { Jobs::DownloadAvatarFromUrl }
context 'when user has a custom avatar' do
- let(:user_avatar) { Fabricate(:user_avatar, custom_upload: Fabricate(:upload)) }
- let(:user_with_custom_avatar) { Fabricate(:user, user_avatar: user_avatar) }
+ fab!(:user_avatar) { Fabricate(:user_avatar, custom_upload: Fabricate(:upload)) }
+ fab!(:user_with_custom_avatar) { Fabricate(:user, user_avatar: user_avatar) }
it 'does not enqueue a download_avatar_from_url job' do
expect {
diff --git a/spec/components/auth/google_oauth2_authenticator_spec.rb b/spec/components/auth/google_oauth2_authenticator_spec.rb
index 19824c7535..71bd5ccbc0 100644
--- a/spec/components/auth/google_oauth2_authenticator_spec.rb
+++ b/spec/components/auth/google_oauth2_authenticator_spec.rb
@@ -116,7 +116,7 @@ describe Auth::GoogleOAuth2Authenticator do
end
context 'revoke' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:authenticator) { Auth::GoogleOAuth2Authenticator.new }
it 'raises exception if no entry for user' do
diff --git a/spec/components/auth/instagram_authenticator_spec.rb b/spec/components/auth/instagram_authenticator_spec.rb
index 2efd982270..d78c632b19 100644
--- a/spec/components/auth/instagram_authenticator_spec.rb
+++ b/spec/components/auth/instagram_authenticator_spec.rb
@@ -42,7 +42,7 @@ describe Auth::InstagramAuthenticator do
end
context 'revoke' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:authenticator) { Auth::InstagramAuthenticator.new }
it 'raises exception if no entry for user' do
diff --git a/spec/components/auth/managed_authenticator_spec.rb b/spec/components/auth/managed_authenticator_spec.rb
index f29dd6c07b..ea788144a6 100644
--- a/spec/components/auth/managed_authenticator_spec.rb
+++ b/spec/components/auth/managed_authenticator_spec.rb
@@ -54,8 +54,8 @@ describe Auth::ManagedAuthenticator do
end
describe 'connecting to another user account' do
- let(:user1) { Fabricate(:user) }
- let(:user2) { Fabricate(:user) }
+ fab!(:user1) { Fabricate(:user) }
+ fab!(:user2) { Fabricate(:user) }
before { UserAssociatedAccount.create!(user: user1, provider_name: 'myauth', provider_uid: "1234") }
it 'works by default' do
@@ -138,7 +138,7 @@ describe Auth::ManagedAuthenticator do
end
describe "avatar on update" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let!(:associated) { UserAssociatedAccount.create!(user: user, provider_name: 'myauth', provider_uid: "1234") }
it "schedules the job upon update correctly" do
@@ -159,7 +159,7 @@ describe Auth::ManagedAuthenticator do
end
describe "profile on update" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let!(:associated) { UserAssociatedAccount.create!(user: user, provider_name: 'myauth', provider_uid: "1234") }
it "updates the user's location and bio, unless already set" do
@@ -183,7 +183,7 @@ describe Auth::ManagedAuthenticator do
end
describe "email update" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let!(:associated) { UserAssociatedAccount.create!(user: user, provider_name: 'myauth', provider_uid: "1234") }
it "updates the user's email if currently invalid" do
@@ -212,7 +212,7 @@ describe Auth::ManagedAuthenticator do
end
describe "avatar on create" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let!(:association) { UserAssociatedAccount.create!(provider_name: 'myauth', provider_uid: "1234") }
it "doesn't schedule with no image" do
@@ -229,7 +229,7 @@ describe Auth::ManagedAuthenticator do
end
describe "profile on create" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let!(:association) { UserAssociatedAccount.create!(provider_name: 'myauth', provider_uid: "1234") }
it "doesn't explode without profile" do
@@ -248,7 +248,7 @@ describe Auth::ManagedAuthenticator do
end
describe 'description_for_user' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it 'returns empty string if no entry for user' do
expect(authenticator.description_for_user(user)).to eq("")
@@ -265,7 +265,7 @@ describe Auth::ManagedAuthenticator do
end
describe 'revoke' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it 'raises exception if no entry for user' do
expect { authenticator.revoke(user) }.to raise_error(Discourse::NotFound)
diff --git a/spec/components/auth/open_id_authenticator_spec.rb b/spec/components/auth/open_id_authenticator_spec.rb
index 8656b13e09..2ebf7e9ee6 100644
--- a/spec/components/auth/open_id_authenticator_spec.rb
+++ b/spec/components/auth/open_id_authenticator_spec.rb
@@ -38,7 +38,7 @@ describe Auth::OpenIdAuthenticator do
end
context 'revoke' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:authenticator) { Auth::OpenIdAuthenticator.new("test", "id", "enable_yahoo_logins", trusted: true) }
it 'raises exception if no entry for user' do
diff --git a/spec/components/auth/twitter_authenticator_spec.rb b/spec/components/auth/twitter_authenticator_spec.rb
index 55d9e5f549..0e99fbdc71 100644
--- a/spec/components/auth/twitter_authenticator_spec.rb
+++ b/spec/components/auth/twitter_authenticator_spec.rb
@@ -54,7 +54,7 @@ describe Auth::TwitterAuthenticator do
end
context 'revoke' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:authenticator) { Auth::TwitterAuthenticator.new }
it 'raises exception if no entry for user' do
diff --git a/spec/components/avatar_lookup_spec.rb b/spec/components/avatar_lookup_spec.rb
index 0a592c6ded..33f01f5f29 100644
--- a/spec/components/avatar_lookup_spec.rb
+++ b/spec/components/avatar_lookup_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
require_dependency 'avatar_lookup'
describe AvatarLookup do
- let!(:user) { Fabricate(:user, username: "john_doe", name: "John Doe") }
+ fab!(:user) { Fabricate(:user, username: "john_doe", name: "John Doe") }
describe '#[]' do
before do
diff --git a/spec/components/composer_messages_finder_spec.rb b/spec/components/composer_messages_finder_spec.rb
index ada5f1ed5d..6b8214ea75 100644
--- a/spec/components/composer_messages_finder_spec.rb
+++ b/spec/components/composer_messages_finder_spec.rb
@@ -45,7 +45,7 @@ describe ComposerMessagesFinder do
end
context 'private message' do
- let(:topic) { Fabricate(:private_message_topic) }
+ fab!(:topic) { Fabricate(:private_message_topic) }
context 'starting a new private message' do
let(:finder) { ComposerMessagesFinder.new(user, composer_action: 'createTopic', topic_id: topic.id) }
@@ -104,7 +104,7 @@ describe ComposerMessagesFinder do
context '.check_avatar_notification' do
let(:finder) { ComposerMessagesFinder.new(user, composer_action: 'createTopic') }
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
context "success" do
let!(:message) { finder.check_avatar_notification }
@@ -150,8 +150,8 @@ describe ComposerMessagesFinder do
end
context '.check_sequential_replies' do
- let(:user) { Fabricate(:user) }
- let(:topic) { Fabricate(:topic) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic) }
before do
SiteSetting.educate_until_posts = 10
@@ -223,8 +223,8 @@ describe ComposerMessagesFinder do
end
context '.check_dominating_topic' do
- let(:user) { Fabricate(:user) }
- let(:topic) { Fabricate(:topic) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic) }
before do
SiteSetting.educate_until_posts = 10
@@ -308,21 +308,21 @@ describe ComposerMessagesFinder do
end
context '.check_get_a_room' do
- let(:user) { Fabricate(:user) }
- let(:other_user) { Fabricate(:user) }
- let(:third_user) { Fabricate(:user) }
- let(:topic) { Fabricate(:topic, user: other_user) }
- let(:op) { Fabricate(:post, topic_id: topic.id, user: other_user) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:other_user) { Fabricate(:user) }
+ fab!(:third_user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic, user: other_user) }
+ fab!(:op) { Fabricate(:post, topic_id: topic.id, user: other_user) }
- let!(:other_user_reply) do
+ fab!(:other_user_reply) do
Fabricate(:post, topic: topic, user: third_user, reply_to_user_id: op.user_id)
end
- let!(:first_reply) do
+ fab!(:first_reply) do
Fabricate(:post, topic: topic, user: user, reply_to_user_id: op.user_id)
end
- let!(:second_reply) do
+ fab!(:second_reply) do
Fabricate(:post, topic: topic, user: user, reply_to_user_id: op.user_id)
end
@@ -424,8 +424,8 @@ describe ComposerMessagesFinder do
end
context '.check_reviving_old_topic' do
- let(:user) { Fabricate(:user) }
- let(:topic) { Fabricate(:topic) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic) }
it "does not give a message without a topic id" do
expect(described_class.new(user, composer_action: 'createTopic').check_reviving_old_topic).to be_blank
@@ -470,8 +470,8 @@ describe ComposerMessagesFinder do
end
context 'when editing a post' do
- let(:user) { Fabricate(:user) }
- let(:topic) { Fabricate(:post).topic }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:post).topic }
let!(:post) do
PostCreator.create!(
diff --git a/spec/components/concern/category_hashtag_spec.rb b/spec/components/concern/category_hashtag_spec.rb
index 29cf5579bf..e446fc27d2 100644
--- a/spec/components/concern/category_hashtag_spec.rb
+++ b/spec/components/concern/category_hashtag_spec.rb
@@ -4,8 +4,8 @@ require 'rails_helper'
describe CategoryHashtag do
describe '#query_from_hashtag_slug' do
- let(:parent_category) { Fabricate(:category) }
- let(:child_category) { Fabricate(:category, parent_category: parent_category) }
+ fab!(:parent_category) { Fabricate(:category) }
+ fab!(:child_category) { Fabricate(:category, parent_category: parent_category) }
it "should return the right result for a parent category slug" do
expect(Category.query_from_hashtag_slug(parent_category.slug))
diff --git a/spec/components/concern/second_factor_manager_spec.rb b/spec/components/concern/second_factor_manager_spec.rb
index 9875fc166a..2c92ec393a 100644
--- a/spec/components/concern/second_factor_manager_spec.rb
+++ b/spec/components/concern/second_factor_manager_spec.rb
@@ -3,11 +3,11 @@
require 'rails_helper'
RSpec.describe SecondFactorManager do
- let(:user_second_factor_totp) { Fabricate(:user_second_factor_totp) }
+ fab!(:user_second_factor_totp) { Fabricate(:user_second_factor_totp) }
let(:user) { user_second_factor_totp.user }
- let(:another_user) { Fabricate(:user) }
+ fab!(:another_user) { Fabricate(:user) }
- let(:user_second_factor_backup) { Fabricate(:user_second_factor_backup) }
+ fab!(:user_second_factor_backup) { Fabricate(:user_second_factor_backup) }
let(:user_backup) { user_second_factor_backup.user }
describe '#totp' do
diff --git a/spec/components/cooked_post_processor_spec.rb b/spec/components/cooked_post_processor_spec.rb
index 8e742290db..9ec8b3472a 100644
--- a/spec/components/cooked_post_processor_spec.rb
+++ b/spec/components/cooked_post_processor_spec.rb
@@ -6,13 +6,13 @@ require "file_store/s3_store"
describe CookedPostProcessor do
context "#post_process" do
- let(:upload) do
+ fab!(:upload) do
Fabricate(:upload,
url: '/uploads/default/original/1X/1/1234567890123456.jpg'
)
end
- let(:post) do
+ fab!(:post) do
Fabricate(:post, raw: <<~RAW)
RAW
@@ -132,9 +132,9 @@ describe CookedPostProcessor do
end
describe 'internal links' do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:post) { Fabricate(:post, raw: "Hello #{topic.url}") }
let(:url) { topic.url }
- let(:post) { Fabricate(:post, raw: "Hello #{url}") }
it "includes the topic title" do
cpp.post_process
@@ -364,7 +364,7 @@ describe CookedPostProcessor do
end
context "with image_sizes" do
- let(:post) { Fabricate(:post_with_image_urls) }
+ fab!(:post) { Fabricate(:post_with_image_urls) }
let(:cpp) { CookedPostProcessor.new(post, image_sizes: image_sizes) }
before do
@@ -401,7 +401,7 @@ describe CookedPostProcessor do
context "with unsized images" do
- let(:post) { Fabricate(:post_with_unsized_images) }
+ fab!(:post) { Fabricate(:post_with_unsized_images) }
let(:cpp) { CookedPostProcessor.new(post) }
it "adds the width and height to images that don't have them" do
@@ -415,8 +415,8 @@ describe CookedPostProcessor do
context "with large images" do
- let(:upload) { Fabricate(:upload) }
- let(:post) { Fabricate(:post_with_large_image) }
+ fab!(:upload) { Fabricate(:upload) }
+ fab!(:post) { Fabricate(:post_with_large_image) }
let(:cpp) { CookedPostProcessor.new(post, disable_loading_image: true) }
before do
@@ -463,7 +463,7 @@ describe CookedPostProcessor do
end
describe 'when image is an svg' do
- let(:post) do
+ fab!(:post) do
Fabricate(:post, raw: '
')
end
@@ -552,8 +552,8 @@ describe CookedPostProcessor do
context "with large images when using subfolders" do
- let(:upload) { Fabricate(:upload) }
- let(:post) { Fabricate(:post_with_large_image_on_subfolder) }
+ fab!(:upload) { Fabricate(:upload) }
+ fab!(:post) { Fabricate(:post_with_large_image_on_subfolder) }
let(:cpp) { CookedPostProcessor.new(post, disable_loading_image: true) }
let(:base_url) { "http://test.localhost/subfolder" }
let(:base_uri) { "/subfolder" }
@@ -1281,7 +1281,7 @@ describe CookedPostProcessor do
end
context "remove direct reply full quote" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
let!(:post) { Fabricate(:post, topic: topic, raw: "this is the first post") }
let(:raw) do
diff --git a/spec/components/discourse_spec.rb b/spec/components/discourse_spec.rb
index 9299e8f1eb..391691ff9b 100644
--- a/spec/components/discourse_spec.rb
+++ b/spec/components/discourse_spec.rb
@@ -111,8 +111,8 @@ describe Discourse do
context '#site_contact_user' do
- let!(:admin) { Fabricate(:admin) }
- let!(:another_admin) { Fabricate(:admin) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:another_admin) { Fabricate(:admin) }
it 'returns the user specified by the site setting site_contact_username' do
SiteSetting.site_contact_username = another_admin.username
diff --git a/spec/components/discourse_tagging_spec.rb b/spec/components/discourse_tagging_spec.rb
index fdb8b1131d..39ff18920d 100644
--- a/spec/components/discourse_tagging_spec.rb
+++ b/spec/components/discourse_tagging_spec.rb
@@ -8,13 +8,13 @@ require 'discourse_tagging'
describe DiscourseTagging do
- let(:admin) { Fabricate(:admin) }
- let(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
let(:guardian) { Guardian.new(user) }
- let!(:tag1) { Fabricate(:tag, name: "fun") }
- let!(:tag2) { Fabricate(:tag, name: "fun2") }
- let!(:tag3) { Fabricate(:tag, name: "Fun3") }
+ fab!(:tag1) { Fabricate(:tag, name: "fun") }
+ fab!(:tag2) { Fabricate(:tag, name: "fun2") }
+ fab!(:tag3) { Fabricate(:tag, name: "Fun3") }
before do
SiteSetting.tagging_enabled = true
@@ -42,7 +42,7 @@ describe DiscourseTagging do
end
context 'with tags visible only to staff' do
- let(:hidden_tag) { Fabricate(:tag) }
+ fab!(:hidden_tag) { Fabricate(:tag) }
let!(:staff_tag_group) { Fabricate(:tag_group, permissions: { "staff" => 1 }, tag_names: [hidden_tag.name]) }
it 'should return all tags to staff' do
@@ -61,9 +61,9 @@ describe DiscourseTagging do
end
describe 'filter_visible' do
- let(:hidden_tag) { Fabricate(:tag) }
+ fab!(:hidden_tag) { Fabricate(:tag) }
let!(:staff_tag_group) { Fabricate(:tag_group, permissions: { "staff" => 1 }, tag_names: [hidden_tag.name]) }
- let(:topic) { Fabricate(:topic, tags: [tag1, tag2, tag3, hidden_tag]) }
+ fab!(:topic) { Fabricate(:topic, tags: [tag1, tag2, tag3, hidden_tag]) }
it 'returns all tags to staff' do
tags = DiscourseTagging.filter_visible(topic.tags, Guardian.new(admin))
@@ -89,7 +89,7 @@ describe DiscourseTagging do
describe 'tag_topic_by_names' do
context 'staff-only tags' do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
before do
create_staff_tags(['alpha'])
@@ -109,8 +109,8 @@ describe DiscourseTagging do
end
context 'respects category minimum_required_tags setting' do
- let(:category) { Fabricate(:category, minimum_required_tags: 2) }
- let(:topic) { Fabricate(:topic, category: category) }
+ fab!(:category) { Fabricate(:category, minimum_required_tags: 2) }
+ fab!(:topic) { Fabricate(:topic, category: category) }
it 'when tags are not present' do
valid = DiscourseTagging.tag_topic_by_names(topic, Guardian.new(user), [])
@@ -138,10 +138,10 @@ describe DiscourseTagging do
end
context 'hidden tags' do
- let(:hidden_tag) { Fabricate(:tag) }
+ fab!(:hidden_tag) { Fabricate(:tag) }
let!(:staff_tag_group) { Fabricate(:tag_group, permissions: { "staff" => 1 }, tag_names: [hidden_tag.name]) }
- let(:topic) { Fabricate(:topic, user: user) }
- let(:post) { Fabricate(:post, user: user, topic: topic, post_number: 1) }
+ fab!(:topic) { Fabricate(:topic, user: user) }
+ fab!(:post) { Fabricate(:post, user: user, topic: topic, post_number: 1) }
it 'user cannot add hidden tag by knowing its name' do
expect(PostRevisor.new(post).revise!(topic.user, raw: post.raw + " edit", tags: [hidden_tag.name])).to be_falsey
@@ -252,10 +252,10 @@ describe DiscourseTagging do
end
describe "staff_tag_names" do
- let(:tag) { Fabricate(:tag) }
+ fab!(:tag) { Fabricate(:tag) }
- let(:staff_tag) { Fabricate(:tag) }
- let(:other_staff_tag) { Fabricate(:tag) }
+ fab!(:staff_tag) { Fabricate(:tag) }
+ fab!(:other_staff_tag) { Fabricate(:tag) }
let!(:staff_tag_group) {
Fabricate(
diff --git a/spec/components/email/processor_spec.rb b/spec/components/email/processor_spec.rb
index 17eb988c04..40da5e4e7e 100644
--- a/spec/components/email/processor_spec.rb
+++ b/spec/components/email/processor_spec.rb
@@ -12,10 +12,10 @@ describe Email::Processor do
context "when reply via email is too short" do
let(:mail) { file_from_fixtures("chinese_reply.eml", "emails").read }
- let(:post) { Fabricate(:post) }
- let(:user) { Fabricate(:user, email: 'discourse@bar.com') }
+ fab!(:post) { Fabricate(:post) }
+ fab!(:user) { Fabricate(:user, email: 'discourse@bar.com') }
- let!(:post_reply_key) do
+ fab!(:post_reply_key) do
Fabricate(:post_reply_key,
user: user,
post: post,
@@ -179,7 +179,7 @@ describe Email::Processor do
describe 'when replying to a post that is too old' do
let(:mail) { file_from_fixtures("old_destination.eml", "emails").read }
- let!(:user) { Fabricate(:user, email: "discourse@bar.com") }
+ fab!(:user) { Fabricate(:user, email: "discourse@bar.com") }
it 'rejects the email with the right response' do
SiteSetting.disallow_reply_by_email_after_days = 2
diff --git a/spec/components/email/receiver_spec.rb b/spec/components/email/receiver_spec.rb
index 71d57a8f6d..a834f7cd10 100644
--- a/spec/components/email/receiver_spec.rb
+++ b/spec/components/email/receiver_spec.rb
@@ -119,8 +119,8 @@ describe Email::Receiver do
describe "creating whisper post in PMs for staged users" do
let(:email_address) { "linux-admin@b-s-c.co.jp" }
- let(:user1) { user1 = Fabricate(:user) }
- let(:user2) { user2 = Fabricate(:staged, email: email_address) }
+ fab!(:user1) { Fabricate(:user) }
+ let(:user2) { Fabricate(:staged, email: email_address) }
let(:topic) { Fabricate(:topic, archetype: 'private_message', category_id: nil, user: user1, allowed_users: [user1, user2]) }
let(:post) { create_post(topic: topic, user: user1) }
@@ -186,7 +186,7 @@ describe Email::Receiver do
let(:bounce_key) { "14b08c855160d67f2e0c2f8ef36e251e" }
let(:bounce_key_2) { "b542fb5a9bacda6d28cc061d18e4eb83" }
- let!(:user) { Fabricate(:user, email: "linux-admin@b-s-c.co.jp") }
+ fab!(:user) { Fabricate(:user, email: "linux-admin@b-s-c.co.jp") }
let!(:email_log) { Fabricate(:email_log, to_address: user.email, user: user, bounce_key: bounce_key) }
let!(:email_log_2) { Fabricate(:email_log, to_address: user.email, user: user, bounce_key: bounce_key_2) }
@@ -251,10 +251,10 @@ describe Email::Receiver do
context "reply" do
let(:reply_key) { "4f97315cc828096c9cb34c6f1a0d6fe8" }
- let(:category) { Fabricate(:category) }
- let(:user) { Fabricate(:user, email: "discourse@bar.com") }
- let(:topic) { create_topic(category: category, user: user) }
- let(:post) { create_post(topic: topic) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:user) { Fabricate(:user, email: "discourse@bar.com") }
+ fab!(:topic) { create_topic(category: category, user: user) }
+ fab!(:post) { create_post(topic: topic) }
let!(:post_reply_key) do
Fabricate(:post_reply_key,
@@ -661,7 +661,7 @@ describe Email::Receiver do
context "new message to a group" do
- let!(:group) { Fabricate(:group, incoming_email: "team@bar.com|meat@bar.com") }
+ fab!(:group) { Fabricate(:group, incoming_email: "team@bar.com|meat@bar.com") }
it "handles encoded display names" do
expect { process(:encoded_display_name) }.to change(Topic, :count)
@@ -833,7 +833,7 @@ describe Email::Receiver do
context "new topic in a category" do
- let!(:category) { Fabricate(:category, email_in: "category@bar.com|category@foo.com", email_in_allow_strangers: false) }
+ fab!(:category) { Fabricate(:category, email_in: "category@bar.com|category@foo.com", email_in_allow_strangers: false) }
it "raises a StrangersNotAllowedError when 'email_in_allow_strangers' is disabled" do
expect { process(:new_user) }.to raise_error(Email::Receiver::StrangersNotAllowedError)
@@ -960,7 +960,7 @@ describe Email::Receiver do
context "new topic in a category that allows strangers" do
- let!(:category) { Fabricate(:category, email_in: "category@bar.com|category@foo.com", email_in_allow_strangers: true) }
+ fab!(:category) { Fabricate(:category, email_in: "category@bar.com|category@foo.com", email_in_allow_strangers: true) }
it "lets an email in from a stranger" do
expect { process(:new_user) }.to change(Topic, :count)
@@ -1128,13 +1128,13 @@ describe Email::Receiver do
context "when email is sent to category" do
context "when email is sent by a new user and category does not allow strangers" do
- let!(:category) { Fabricate(:category, email_in: "category@foo.com", email_in_allow_strangers: false) }
+ fab!(:category) { Fabricate(:category, email_in: "category@foo.com", email_in_allow_strangers: false) }
include_examples "does not create staged users", :new_user, Email::Receiver::StrangersNotAllowedError
end
context "when email has no date" do
- let!(:category) { Fabricate(:category, email_in: "category@foo.com", email_in_allow_strangers: true) }
+ fab!(:category) { Fabricate(:category, email_in: "category@foo.com", email_in_allow_strangers: true) }
it "includes the translated string in the error" do
expect { process(:no_date) }.to raise_error(Email::Receiver::InvalidPost).with_message(I18n.t("system_messages.email_reject_invalid_post_specified.date_invalid"))
@@ -1146,11 +1146,11 @@ describe Email::Receiver do
context "email is a reply" do
let(:reply_key) { "4f97315cc828096c9cb34c6f1a0d6fe8" }
- let(:category) { Fabricate(:category) }
- let(:user) { Fabricate(:user, email: "discourse@bar.com") }
- let!(:user2) { Fabricate(:user, email: "someone_else@bar.com") }
- let(:topic) { create_topic(category: category, user: user) }
- let(:post) { create_post(topic: topic, user: user) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:user) { Fabricate(:user, email: "discourse@bar.com") }
+ fab!(:user2) { Fabricate(:user, email: "someone_else@bar.com") }
+ fab!(:topic) { create_topic(category: category, user: user) }
+ fab!(:post) { create_post(topic: topic, user: user) }
let!(:post_reply_key) do
Fabricate(:post_reply_key, reply_key: reply_key, user: user, post: post)
@@ -1162,7 +1162,7 @@ describe Email::Receiver do
end
context "replying without key is allowed" do
- let!(:group) { Fabricate(:group, incoming_email: "team@bar.com") }
+ fab!(:group) { Fabricate(:group, incoming_email: "team@bar.com") }
let!(:topic) do
SiteSetting.find_related_post_with_key = false
process(:email_reply_1)
@@ -1202,7 +1202,7 @@ describe Email::Receiver do
end
context "mailing list mirror" do
- let!(:category) { Fabricate(:mailinglist_mirror_category) }
+ fab!(:category) { Fabricate(:mailinglist_mirror_category) }
before do
SiteSetting.block_auto_generated_emails = true
diff --git a/spec/components/email/sender_spec.rb b/spec/components/email/sender_spec.rb
index 0ea9d5058b..995014f5c1 100644
--- a/spec/components/email/sender_spec.rb
+++ b/spec/components/email/sender_spec.rb
@@ -4,11 +4,11 @@ require 'rails_helper'
require 'email/sender'
describe Email::Sender do
- let(:post) { Fabricate(:post) }
+ fab!(:post) { Fabricate(:post) }
context "disable_emails is enabled" do
- let(:user) { Fabricate(:user) }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:moderator) { Fabricate(:moderator) }
context "disable_emails is enabled for everyone" do
before { SiteSetting.disable_emails = "yes" }
@@ -138,9 +138,9 @@ describe Email::Sender do
end
context "adds a List-ID header to identify the forum" do
- let(:category) { Fabricate(:category, name: 'Name With Space') }
- let(:topic) { Fabricate(:topic, category: category) }
- let(:post) { Fabricate(:post, topic: topic) }
+ fab!(:category) { Fabricate(:category, name: 'Name With Space') }
+ fab!(:topic) { Fabricate(:topic, category: category) }
+ fab!(:post) { Fabricate(:post, topic: topic) }
before do
message.header['X-Discourse-Post-Id'] = post.id
@@ -165,8 +165,8 @@ describe Email::Sender do
end
context "adds Precedence header" do
- let(:topic) { Fabricate(:topic) }
- let(:post) { Fabricate(:post, topic: topic) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:post) { Fabricate(:post, topic: topic) }
before do
message.header['X-Discourse-Post-Id'] = post.id
@@ -180,8 +180,8 @@ describe Email::Sender do
end
context "removes custom Discourse headers from topic notification mails" do
- let(:topic) { Fabricate(:topic) }
- let(:post) { Fabricate(:post, topic: topic) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:post) { Fabricate(:post, topic: topic) }
before do
message.header['X-Discourse-Post-Id'] = post.id
@@ -206,12 +206,12 @@ describe Email::Sender do
end
context "email threading" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
- let(:post_1) { Fabricate(:post, topic: topic, post_number: 1) }
- let(:post_2) { Fabricate(:post, topic: topic, post_number: 2) }
- let(:post_3) { Fabricate(:post, topic: topic, post_number: 3) }
- let(:post_4) { Fabricate(:post, topic: topic, post_number: 4) }
+ fab!(:post_1) { Fabricate(:post, topic: topic, post_number: 1) }
+ fab!(:post_2) { Fabricate(:post, topic: topic, post_number: 2) }
+ fab!(:post_3) { Fabricate(:post, topic: topic, post_number: 3) }
+ fab!(:post_4) { Fabricate(:post, topic: topic, post_number: 4) }
let!(:post_reply_1_4) { PostReply.create(post: post_1, reply: post_4) }
let!(:post_reply_2_4) { PostReply.create(post: post_2, reply: post_4) }
@@ -377,7 +377,7 @@ describe Email::Sender do
message
end
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:email_sender) { Email::Sender.new(message, :valid_type, user) }
before do
@@ -390,7 +390,7 @@ describe Email::Sender do
end
describe "post reply keys" do
- let(:post) { Fabricate(:post) }
+ fab!(:post) { Fabricate(:post) }
before do
message.header['X-Discourse-Post-Id'] = post.id
diff --git a/spec/components/file_store/base_store_spec.rb b/spec/components/file_store/base_store_spec.rb
index cf2d103631..ac2aebd0fa 100644
--- a/spec/components/file_store/base_store_spec.rb
+++ b/spec/components/file_store/base_store_spec.rb
@@ -4,7 +4,7 @@ require 'rails_helper'
require_dependency 'file_store/base_store'
RSpec.describe FileStore::BaseStore do
- let(:upload) { Fabricate(:upload, id: 9999, sha1: Digest::SHA1.hexdigest('9999')) }
+ fab!(:upload) { Fabricate(:upload, id: 9999, sha1: Digest::SHA1.hexdigest('9999')) }
describe '#get_path_for_upload' do
it 'should return the right path' do
diff --git a/spec/components/file_store/local_store_spec.rb b/spec/components/file_store/local_store_spec.rb
index 36768bb1b1..5baf22a9eb 100644
--- a/spec/components/file_store/local_store_spec.rb
+++ b/spec/components/file_store/local_store_spec.rb
@@ -7,10 +7,10 @@ describe FileStore::LocalStore do
let(:store) { FileStore::LocalStore.new }
- let(:upload) { Fabricate(:upload) }
+ fab!(:upload) { Fabricate(:upload) }
let(:uploaded_file) { file_from_fixtures("logo.png") }
- let(:optimized_image) { Fabricate(:optimized_image) }
+ fab!(:optimized_image) { Fabricate(:optimized_image) }
describe "#store_upload" do
diff --git a/spec/components/file_store/s3_store_spec.rb b/spec/components/file_store/s3_store_spec.rb
index 6bf2be7f4b..1e497a6697 100644
--- a/spec/components/file_store/s3_store_spec.rb
+++ b/spec/components/file_store/s3_store_spec.rb
@@ -8,10 +8,10 @@ describe FileStore::S3Store do
let(:store) { FileStore::S3Store.new }
let(:s3_helper) { store.instance_variable_get(:@s3_helper) }
- let(:upload) { Fabricate(:upload) }
+ fab!(:upload) { Fabricate(:upload) }
let(:uploaded_file) { file_from_fixtures("logo.png") }
- let(:optimized_image) { Fabricate(:optimized_image) }
+ fab!(:optimized_image) { Fabricate(:optimized_image) }
let(:optimized_image_file) { file_from_fixtures("logo.png") }
before(:each) do
@@ -22,7 +22,7 @@ describe FileStore::S3Store do
end
shared_context 's3 helpers' do
- let(:upload) do
+ fab!(:upload) do
Fabricate(:upload, sha1: Digest::SHA1.hexdigest('secreet image string'))
end
@@ -199,7 +199,7 @@ describe FileStore::S3Store do
end
describe "#remove_optimized_image" do
- let(:optimized_image) { Fabricate(:optimized_image, upload: upload) }
+ fab!(:optimized_image) { Fabricate(:optimized_image, upload: upload) }
let(:image_path) do
FileStore::BaseStore.new.get_path_for_optimized_image(optimized_image)
diff --git a/spec/components/filter_best_posts_spec.rb b/spec/components/filter_best_posts_spec.rb
index 717de9998b..d88a359eea 100644
--- a/spec/components/filter_best_posts_spec.rb
+++ b/spec/components/filter_best_posts_spec.rb
@@ -6,16 +6,16 @@ require 'topic_view'
describe FilterBestPosts do
- let(:topic) { Fabricate(:topic) }
- let(:coding_horror) { Fabricate(:coding_horror) }
- let(:first_poster) { topic.user }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:coding_horror) { Fabricate(:coding_horror) }
+ fab!(:first_poster) { topic.user }
- let!(:p1) { Fabricate(:post, topic: topic, user: first_poster, percent_rank: 1) }
- let!(:p2) { Fabricate(:post, topic: topic, user: coding_horror, percent_rank: 0.5) }
- let!(:p3) { Fabricate(:post, topic: topic, user: first_poster, percent_rank: 0) }
+ fab!(:p1) { Fabricate(:post, topic: topic, user: first_poster, percent_rank: 1) }
+ fab!(:p2) { Fabricate(:post, topic: topic, user: coding_horror, percent_rank: 0.5) }
+ fab!(:p3) { Fabricate(:post, topic: topic, user: first_poster, percent_rank: 0) }
- let(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
it "can find the best responses" do
diff --git a/spec/components/flag_query_spec.rb b/spec/components/flag_query_spec.rb
index babe2f22cd..d829a95832 100644
--- a/spec/components/flag_query_spec.rb
+++ b/spec/components/flag_query_spec.rb
@@ -5,7 +5,7 @@ require_dependency 'flag_query'
describe FlagQuery do
- let(:codinghorror) { Fabricate(:coding_horror) }
+ fab!(:codinghorror) { Fabricate(:coding_horror) }
describe "flagged_topics" do
it "respects `min_score_default_visibility`" do
diff --git a/spec/components/guardian/category_guardian_spec.rb b/spec/components/guardian/category_guardian_spec.rb
index 5f6dac0e1f..5443591d75 100644
--- a/spec/components/guardian/category_guardian_spec.rb
+++ b/spec/components/guardian/category_guardian_spec.rb
@@ -3,9 +3,9 @@
require 'rails_helper'
RSpec.describe CategoryGuardian do
- let(:admin) { Fabricate(:admin) }
+ fab!(:admin) { Fabricate(:admin) }
let(:guardian) { Guardian.new(admin) }
- let(:category) { Fabricate(:category) }
+ fab!(:category) { Fabricate(:category) }
describe '#cannot_delete_category_reason' do
describe 'when category is uncategorized' do
diff --git a/spec/components/guardian/user_guardian_spec.rb b/spec/components/guardian/user_guardian_spec.rb
index 03939c2f39..867a9c44c5 100644
--- a/spec/components/guardian/user_guardian_spec.rb
+++ b/spec/components/guardian/user_guardian_spec.rb
@@ -116,7 +116,7 @@ describe UserGuardian do
context "hidden profile" do
# Mixing Fabricate.build() and Fabricate() could cause ID clashes, so override :user
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:hidden_user) do
result = Fabricate(:user)
diff --git a/spec/components/guardian_spec.rb b/spec/components/guardian_spec.rb
index d5f7d7f149..2a25eb5e1a 100644
--- a/spec/components/guardian_spec.rb
+++ b/spec/components/guardian_spec.rb
@@ -8,10 +8,10 @@ require_dependency 'post_locker'
describe Guardian do
- let(:user) { Fabricate(:user) }
- let(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
- let(:anonymous_user) { Fabricate(:anonymous) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:anonymous_user) { Fabricate(:anonymous) }
let(:trust_level_1) { build(:user, trust_level: 1) }
let(:trust_level_2) { build(:user, trust_level: 2) }
let(:trust_level_3) { build(:user, trust_level: 3) }
@@ -132,7 +132,7 @@ describe Guardian do
end
describe 'when allow_flagging_staff is false' do
- let(:staff_post) { Fabricate(:post, user: Fabricate(:moderator)) }
+ fab!(:staff_post) { Fabricate(:post, user: Fabricate(:moderator)) }
before do
SiteSetting.allow_flagging_staff = false
@@ -250,9 +250,9 @@ describe Guardian do
end
describe 'can_send_private_message' do
- let(:user) { Fabricate(:user) }
- let(:another_user) { Fabricate(:user) }
- let(:suspended_user) { Fabricate(:user, suspended_till: 1.week.from_now, suspended_at: 1.day.ago) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:another_user) { Fabricate(:user) }
+ fab!(:suspended_user) { Fabricate(:user, suspended_till: 1.week.from_now, suspended_at: 1.day.ago) }
it "returns false when the user is nil" do
expect(Guardian.new(nil).can_send_private_message?(user)).to be_falsey
@@ -371,9 +371,9 @@ describe Guardian do
end
describe 'can_reply_as_new_topic' do
- let(:user) { Fabricate(:user) }
- let(:topic) { Fabricate(:topic) }
- let(:private_message) { Fabricate(:private_message_topic) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:private_message) { Fabricate(:private_message_topic) }
it "returns false for a non logged in user" do
expect(Guardian.new(nil).can_reply_as_new_topic?(topic)).to be_falsey
@@ -478,8 +478,8 @@ describe Guardian do
end
context 'with groups' do
- let(:group) { Fabricate(:group) }
- let(:another_group) { Fabricate(:group) }
+ fab!(:group) { Fabricate(:group) }
+ fab!(:another_group) { Fabricate(:group) }
let(:groups) { [group, another_group] }
before do
@@ -505,17 +505,17 @@ describe Guardian do
describe 'can_invite_to?' do
describe "regular topics" do
- let(:group) { Fabricate(:group) }
- let(:category) { Fabricate(:category, read_restricted: true) }
- let(:topic) { Fabricate(:topic) }
- let(:private_topic) { Fabricate(:topic, category: category) }
- let(:user) { topic.user }
- let(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:group) { Fabricate(:group) }
+ fab!(:category) { Fabricate(:category, read_restricted: true) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:private_topic) { Fabricate(:topic, category: category) }
+ fab!(:user) { topic.user }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
let(:private_category) { Fabricate(:private_category, group: group) }
let(:group_private_topic) { Fabricate(:topic, category: private_category) }
let(:group_owner) { group_private_topic.user.tap { |u| group.add_owner(u) } }
- let(:pm) { Fabricate(:topic) }
+ fab!(:pm) { Fabricate(:topic) }
it 'handles invitation correctly' do
expect(Guardian.new(nil).can_invite_to?(topic)).to be_falsey
@@ -548,8 +548,8 @@ describe Guardian do
end
describe 'for a private category for automatic and non-automatic group' do
- let(:automatic_group) { Fabricate(:group, automatic: true) }
- let(:group) { Fabricate(:group) }
+ fab!(:automatic_group) { Fabricate(:group, automatic: true) }
+ fab!(:group) { Fabricate(:group) }
let(:category) do
Fabricate(:category, read_restricted: true).tap do |category|
@@ -592,10 +592,10 @@ describe Guardian do
end
describe "private messages" do
- let(:user) { Fabricate(:user, trust_level: TrustLevel[2]) }
- let!(:pm) { Fabricate(:private_message_topic, user: user) }
- let(:admin) { Fabricate(:admin) }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:user) { Fabricate(:user, trust_level: TrustLevel[2]) }
+ fab!(:pm) { Fabricate(:private_message_topic, user: user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
context "when private messages are disabled" do
it "allows an admin to invite to the pm" do
@@ -796,7 +796,7 @@ describe Guardian do
end
describe 'a Post' do
- let(:another_admin) { Fabricate(:admin) }
+ fab!(:another_admin) { Fabricate(:admin) }
it 'correctly handles post visibility' do
post = Fabricate(:post)
topic = post.topic
@@ -844,7 +844,7 @@ describe Guardian do
end
describe 'a PostRevision' do
- let(:post_revision) { Fabricate(:post_revision) }
+ fab!(:post_revision) { Fabricate(:post_revision) }
context 'edit_history_visible_to_public is true' do
before { SiteSetting.edit_history_visible_to_public = true }
@@ -1030,7 +1030,7 @@ describe Guardian do
end
context "system message" do
- let(:private_message) {
+ fab!(:private_message) {
Fabricate(
:topic,
archetype: Archetype.private_message,
@@ -1049,7 +1049,7 @@ describe Guardian do
end
context "private message" do
- let(:private_message) { Fabricate(:topic, archetype: Archetype.private_message, category_id: nil) }
+ fab!(:private_message) { Fabricate(:topic, archetype: Archetype.private_message, category_id: nil) }
before { user.save! }
@@ -1542,7 +1542,7 @@ describe Guardian do
describe 'a Category' do
- let(:category) { Fabricate(:category) }
+ fab!(:category) { Fabricate(:category) }
it 'returns false when not logged in' do
expect(Guardian.new.can_edit?(category)).to be_falsey
@@ -1700,7 +1700,7 @@ describe Guardian do
end
context "can_delete_post_action?" do
- let(:post) { Fabricate(:post) }
+ fab!(:post) { Fabricate(:post) }
it "allows us to remove a bookmark" do
pa = PostActionCreator.bookmark(user, post).post_action
@@ -2138,7 +2138,7 @@ describe Guardian do
end
context "delete myself" do
- let(:myself) { Fabricate(:user, created_at: 6.months.ago) }
+ fab!(:myself) { Fabricate(:user, created_at: 6.months.ago) }
subject { Guardian.new(myself).can_delete_user?(myself) }
it "is true to delete myself and I have never made a post" do
@@ -2332,9 +2332,9 @@ describe Guardian do
end
context 'with title argument' do
- let(:title_badge) { Fabricate(:badge, name: 'Helper', allow_title: true) }
- let(:no_title_badge) { Fabricate(:badge, name: 'Writer', allow_title: false) }
- let(:group) { Fabricate(:group, title: 'Groupie') }
+ fab!(:title_badge) { Fabricate(:badge, name: 'Helper', allow_title: true) }
+ fab!(:no_title_badge) { Fabricate(:badge, name: 'Writer', allow_title: false) }
+ fab!(:group) { Fabricate(:group, title: 'Groupie') }
it 'returns true if title belongs to a badge that user has' do
BadgeGranter.grant(title_badge, user)
@@ -2418,7 +2418,7 @@ describe Guardian do
end
context 'for a new user' do
- let(:target_user) { Fabricate(:user, created_at: 1.minute.ago) }
+ fab!(:target_user) { Fabricate(:user, created_at: 1.minute.ago) }
include_examples "staff can always change usernames"
it "is true for the user to change their own username" do
@@ -2818,8 +2818,8 @@ describe Guardian do
end
describe "#allow_themes?" do
- let(:theme) { Fabricate(:theme) }
- let(:theme2) { Fabricate(:theme) }
+ let!(:theme) { Fabricate(:theme) }
+ let!(:theme2) { Fabricate(:theme) }
it "allows staff to use any themes" do
expect(Guardian.new(moderator).allow_themes?([theme.id, theme2.id])).to eq(false)
@@ -3074,7 +3074,7 @@ describe Guardian do
let(:uncategorized) { Category.find(SiteSetting.uncategorized_category_id) }
context "uncategorized" do
- let!(:link_category) { Fabricate(:link_category) }
+ fab!(:link_category) { Fabricate(:link_category) }
it "allows featured links if uncategorized allows it" do
uncategorized.topic_featured_link_allowed = true
@@ -3090,8 +3090,8 @@ describe Guardian do
end
context 'when exist' do
- let!(:category) { Fabricate(:category, topic_featured_link_allowed: false) }
- let!(:link_category) { Fabricate(:link_category) }
+ fab!(:category) { Fabricate(:category, topic_featured_link_allowed: false) }
+ fab!(:link_category) { Fabricate(:link_category) }
it 'returns true if the category is listed' do
expect(guardian.can_edit_featured_link?(link_category.id)).to eq(true)
@@ -3104,14 +3104,14 @@ describe Guardian do
end
context "suspension reasons" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it "will be shown by default" do
expect(Guardian.new.can_see_suspension_reason?(user)).to eq(true)
end
context "with hide suspension reason enabled" do
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:moderator) { Fabricate(:moderator) }
before do
SiteSetting.hide_suspension_reasons = true
@@ -3140,8 +3140,8 @@ describe Guardian do
end
context 'normal user' do
- let(:topic) { Fabricate(:topic, user: Fabricate(:user)) }
- let(:another_user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic, user: Fabricate(:user)) }
+ fab!(:another_user) { Fabricate(:user) }
before do
topic.allowed_users << user
diff --git a/spec/components/inline_oneboxer_spec.rb b/spec/components/inline_oneboxer_spec.rb
index a7f81fd15b..d9bb7ebbf3 100644
--- a/spec/components/inline_oneboxer_spec.rb
+++ b/spec/components/inline_oneboxer_spec.rb
@@ -24,7 +24,7 @@ describe InlineOneboxer do
end
context "caching" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
before do
InlineOneboxer.purge(topic.url)
diff --git a/spec/components/new_post_manager_spec.rb b/spec/components/new_post_manager_spec.rb
index be0a4f276a..1a82f4a112 100644
--- a/spec/components/new_post_manager_spec.rb
+++ b/spec/components/new_post_manager_spec.rb
@@ -5,7 +5,7 @@ require 'new_post_manager'
describe NewPostManager do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
context "default action" do
it "creates the post by default" do
@@ -20,7 +20,7 @@ describe NewPostManager do
end
context "default action" do
- let(:other_user) { Fabricate(:user) }
+ fab!(:other_user) { Fabricate(:user) }
it "doesn't enqueue private messages" do
SiteSetting.approve_unless_trust_level = 4
@@ -355,8 +355,8 @@ describe NewPostManager do
end
context 'when posting in the category requires approval' do
- let(:user) { Fabricate(:user) }
- let(:category) { Fabricate(:category) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:category) { Fabricate(:category) }
context 'when new topics require approval' do
before do
@@ -379,7 +379,7 @@ describe NewPostManager do
end
context 'when new posts require approval' do
- let(:topic) { Fabricate(:topic, category: category) }
+ fab!(:topic) { Fabricate(:topic, category: category) }
before do
category.custom_fields[Category::REQUIRE_REPLY_APPROVAL] = true
diff --git a/spec/components/post_action_creator_spec.rb b/spec/components/post_action_creator_spec.rb
index c5bf19b6ea..ab0d2d8c8d 100644
--- a/spec/components/post_action_creator_spec.rb
+++ b/spec/components/post_action_creator_spec.rb
@@ -3,8 +3,8 @@
require 'rails_helper'
describe PostActionCreator do
- let(:user) { Fabricate(:user) }
- let(:post) { Fabricate(:post) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:post) { Fabricate(:post) }
let(:like_type_id) { PostActionType.types[:like] }
describe "rate limits" do
diff --git a/spec/components/post_creator_spec.rb b/spec/components/post_creator_spec.rb
index d1f97bbb05..90dcaf3f4c 100644
--- a/spec/components/post_creator_spec.rb
+++ b/spec/components/post_creator_spec.rb
@@ -6,11 +6,11 @@ require 'topic_subtype'
describe PostCreator do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:topic) { Fabricate(:topic, user: user) }
context "new topic" do
- let(:category) { Fabricate(:category, user: user) }
+ fab!(:category) { Fabricate(:category, user: user) }
let(:basic_topic_params) { { title: "hello world topic", raw: "my name is fred", archetype_id: 1 } }
let(:image_sizes) { { 'http://an.image.host/image.jpg' => { "width" => 111, "height" => 222 } } }
@@ -350,7 +350,7 @@ describe PostCreator do
end
describe "topic's auto close based on last post" do
- let(:topic_timer) do
+ fab!(:topic_timer) do
Fabricate(:topic_timer,
based_on_last_post: true,
execute_at: Time.zone.now - 12.hours,
@@ -360,8 +360,8 @@ describe PostCreator do
let(:topic) { topic_timer.topic }
- let(:post) do
- Fabricate(:post, topic: topic)
+ fab!(:post) do
+ Fabricate(:post, topic: topic_timer.topic)
end
it "updates topic's auto close date" do
@@ -475,7 +475,7 @@ describe PostCreator do
end
context 'whisper' do
- let!(:topic) { Fabricate(:topic, user: user) }
+ fab!(:topic) { Fabricate(:topic, user: user) }
it 'whispers do not mess up the public view' do
first = PostCreator.new(user,
@@ -544,7 +544,7 @@ describe PostCreator do
context 'uniqueness' do
- let!(:topic) { Fabricate(:topic, user: user) }
+ fab!(:topic) { Fabricate(:topic, user: user) }
let(:basic_topic_params) { { raw: 'test reply', topic_id: topic.id, reply_to_post_number: 4 } }
let(:creator) { PostCreator.new(user, basic_topic_params) }
@@ -606,7 +606,7 @@ describe PostCreator do
context "host spam" do
- let!(:topic) { Fabricate(:topic, user: user) }
+ fab!(:topic) { Fabricate(:topic, user: user) }
let(:basic_topic_params) { { raw: 'test reply', topic_id: topic.id, reply_to_post_number: 4 } }
let(:creator) { PostCreator.new(user, basic_topic_params) }
@@ -633,7 +633,7 @@ describe PostCreator do
# more integration testing ... maximise our testing
context 'existing topic' do
- let(:topic) { Fabricate(:topic, user: user, title: 'topic title with 25 chars') }
+ fab!(:topic) { Fabricate(:topic, user: user, title: 'topic title with 25 chars') }
let(:creator) { PostCreator.new(user, raw: 'test reply', topic_id: topic.id, reply_to_post_number: 4) }
it 'ensures the user can create the post' do
@@ -686,7 +686,7 @@ describe PostCreator do
end
context 'closed topic' do
- let!(:topic) { Fabricate(:topic, user: user, closed: true) }
+ fab!(:topic) { Fabricate(:topic, user: user, closed: true) }
let(:creator) { PostCreator.new(user, raw: 'test reply', topic_id: topic.id, reply_to_post_number: 4) }
it 'responds with an error message' do
@@ -698,7 +698,7 @@ describe PostCreator do
end
context 'missing topic' do
- let!(:topic) { Fabricate(:topic, user: user, deleted_at: 5.minutes.ago) }
+ let(:topic) { Fabricate(:topic, user: user, deleted_at: 5.minutes.ago) }
let(:creator) { PostCreator.new(user, raw: 'test reply', topic_id: topic.id, reply_to_post_number: 4) }
it 'responds with an error message' do
@@ -726,8 +726,8 @@ describe PostCreator do
# integration test ... minimise db work
context 'private message' do
let(:target_user1) { Fabricate(:coding_horror) }
- let(:target_user2) { Fabricate(:moderator) }
- let(:unrelated) { Fabricate(:user) }
+ fab!(:target_user2) { Fabricate(:moderator) }
+ fab!(:unrelated) { Fabricate(:user) }
let(:post) do
PostCreator.create(user, title: 'hi there welcome to my topic',
raw: "this is my awesome message @#{unrelated.username_lower}",
@@ -804,7 +804,7 @@ describe PostCreator do
context "warnings" do
let(:target_user1) { Fabricate(:coding_horror) }
- let(:target_user2) { Fabricate(:moderator) }
+ fab!(:target_user2) { Fabricate(:moderator) }
let(:base_args) do
{ title: 'you need a warning buddy!',
raw: "you did something bad and I'm telling you about it!",
@@ -885,7 +885,7 @@ describe PostCreator do
context 'private message to group' do
let(:target_user1) { Fabricate(:coding_horror) }
- let(:target_user2) { Fabricate(:moderator) }
+ fab!(:target_user2) { Fabricate(:moderator) }
let(:group) do
g = Fabricate.build(:group, messageable_level: Group::ALIAS_LEVELS[:everyone])
g.add(target_user1)
@@ -893,7 +893,7 @@ describe PostCreator do
g.save
g
end
- let(:unrelated) { Fabricate(:user) }
+ fab!(:unrelated) { Fabricate(:user) }
let(:post) do
PostCreator.create!(user,
title: 'hi there welcome to my topic',
@@ -1044,7 +1044,7 @@ describe PostCreator do
end
context "staged users" do
- let(:staged) { Fabricate(:staged) }
+ fab!(:staged) { Fabricate(:staged) }
it "automatically watches all messages it participates in" do
post = PostCreator.create(staged,
@@ -1171,7 +1171,7 @@ describe PostCreator do
end
context 'private message to a user that has disabled private messages' do
- let(:another_user) { Fabricate(:user) }
+ fab!(:another_user) { Fabricate(:user) }
before do
another_user.user_option.update!(allow_private_messages: false)
@@ -1195,8 +1195,8 @@ describe PostCreator do
end
context "private message to a muted user" do
- let(:muted_me) { Fabricate(:evil_trout) }
- let(:another_user) { Fabricate(:user) }
+ fab!(:muted_me) { Fabricate(:evil_trout) }
+ fab!(:another_user) { Fabricate(:user) }
it 'should fail' do
updater = UserUpdater.new(muted_me, muted_me)
@@ -1217,7 +1217,7 @@ describe PostCreator do
)
end
- let(:staff_user) { Fabricate(:admin) }
+ fab!(:staff_user) { Fabricate(:admin) }
it 'succeeds if the user is staff' do
updater = UserUpdater.new(muted_me, muted_me)
@@ -1236,8 +1236,8 @@ describe PostCreator do
end
context "private message to an ignored user" do
- let(:ignorer) { Fabricate(:evil_trout) }
- let(:another_user) { Fabricate(:user) }
+ fab!(:ignorer) { Fabricate(:evil_trout) }
+ fab!(:another_user) { Fabricate(:user) }
context "when post author is ignored" do
let!(:ignored_user) { Fabricate(:ignored_user, user: ignorer, ignored_user: user) }
@@ -1259,8 +1259,8 @@ describe PostCreator do
end
context "when post author is admin who is ignored" do
- let(:staff_user) { Fabricate(:admin) }
- let!(:ignored_user) { Fabricate(:ignored_user, user: ignorer, ignored_user: staff_user) }
+ fab!(:staff_user) { Fabricate(:admin) }
+ fab!(:ignored_user) { Fabricate(:ignored_user, user: ignorer, ignored_user: staff_user) }
it 'succeeds if the user is staff' do
pc = PostCreator.new(
@@ -1278,9 +1278,9 @@ describe PostCreator do
end
context "private message recipients limit (max_allowed_message_recipients) reached" do
- let(:target_user1) { Fabricate(:coding_horror) }
- let(:target_user2) { Fabricate(:evil_trout) }
- let(:target_user3) { Fabricate(:walter_white) }
+ fab!(:target_user1) { Fabricate(:coding_horror) }
+ fab!(:target_user2) { Fabricate(:evil_trout) }
+ fab!(:target_user3) { Fabricate(:walter_white) }
before do
SiteSetting.max_allowed_message_recipients = 2
@@ -1314,7 +1314,7 @@ describe PostCreator do
end
context "always succeeds if the user is staff" do
- let(:staff_user) { Fabricate(:admin) }
+ fab!(:staff_user) { Fabricate(:admin) }
it 'when sending message to multiple recipients' do
pc = PostCreator.new(
@@ -1331,9 +1331,9 @@ describe PostCreator do
end
context "#create_post_notice" do
- let(:user) { Fabricate(:user) }
- let(:staged) { Fabricate(:staged) }
- let(:anonymous) { Fabricate(:anonymous) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:staged) { Fabricate(:staged) }
+ fab!(:anonymous) { Fabricate(:anonymous) }
it "generates post notices for new users" do
post = PostCreator.create!(user, title: "one of my first topics", raw: "one of my first posts")
diff --git a/spec/components/post_destroyer_spec.rb b/spec/components/post_destroyer_spec.rb
index 2ab25e8e03..52f9d26fb7 100644
--- a/spec/components/post_destroyer_spec.rb
+++ b/spec/components/post_destroyer_spec.rb
@@ -9,8 +9,8 @@ describe PostDestroyer do
UserActionManager.enable
end
- let(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
let(:post) { create_post }
describe "destroy_old_hidden_posts" do
@@ -251,7 +251,7 @@ describe PostDestroyer do
end
describe "recovery and post actions" do
- let(:codinghorror) { Fabricate(:coding_horror) }
+ fab!(:codinghorror) { Fabricate(:coding_horror) }
let!(:like) { PostActionCreator.like(codinghorror, post).post_action }
let!(:another_like) { PostActionCreator.like(moderator, post).post_action }
@@ -436,10 +436,10 @@ describe PostDestroyer do
end
context 'private message' do
- let(:author) { Fabricate(:user) }
- let(:private_message) { Fabricate(:private_message_topic, user: author) }
- let!(:first_post) { Fabricate(:post, topic: private_message, user: author) }
- let!(:second_post) { Fabricate(:post, topic: private_message, user: author, post_number: 2) }
+ fab!(:author) { Fabricate(:user) }
+ fab!(:private_message) { Fabricate(:private_message_topic, user: author) }
+ fab!(:first_post) { Fabricate(:post, topic: private_message, user: author) }
+ fab!(:second_post) { Fabricate(:post, topic: private_message, user: author, post_number: 2) }
it "doesn't update post_count for a reply" do
expect {
@@ -473,10 +473,10 @@ describe PostDestroyer do
context 'deleting the second post in a topic' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let!(:post) { create_post(user: user) }
let(:topic) { post.topic }
- let(:second_user) { Fabricate(:coding_horror) }
+ fab!(:second_user) { Fabricate(:coding_horror) }
let!(:second_post) { create_post(topic: topic, user: second_user) }
before do
@@ -613,8 +613,8 @@ describe PostDestroyer do
describe 'after delete' do
- let!(:coding_horror) { Fabricate(:coding_horror) }
- let!(:post) { Fabricate(:post, raw: "Hello @CodingHorror") }
+ fab!(:coding_horror) { Fabricate(:coding_horror) }
+ fab!(:post) { Fabricate(:post, raw: "Hello @CodingHorror") }
it "should feature the users again (in case they've changed)" do
Jobs.expects(:enqueue).with(:feature_topic_users, has_entries(topic_id: post.topic_id))
@@ -623,7 +623,7 @@ describe PostDestroyer do
describe 'with a reply' do
- let!(:reply) { Fabricate(:basic_reply, user: coding_horror, topic: post.topic) }
+ fab!(:reply) { Fabricate(:basic_reply, user: coding_horror, topic: post.topic) }
let!(:post_reply) { PostReply.create(post_id: post.id, reply_id: reply.id) }
it 'changes the post count of the topic' do
@@ -766,7 +766,7 @@ describe PostDestroyer do
end
describe 'topic links' do
- let!(:first_post) { Fabricate(:post) }
+ fab!(:first_post) { Fabricate(:post) }
let!(:topic) { first_post.topic }
let!(:second_post) { Fabricate(:post_with_external_links, topic: topic) }
diff --git a/spec/components/post_locker_spec.rb b/spec/components/post_locker_spec.rb
index 471500c97a..9696d39c56 100644
--- a/spec/components/post_locker_spec.rb
+++ b/spec/components/post_locker_spec.rb
@@ -4,8 +4,8 @@ require 'rails_helper'
require_dependency 'post_locker'
describe PostLocker do
- let(:moderator) { Fabricate(:moderator) }
- let(:post) { Fabricate(:post) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:post) { Fabricate(:post) }
it "doesn't allow regular users to lock posts" do
expect {
diff --git a/spec/components/post_merger_spec.rb b/spec/components/post_merger_spec.rb
index 85324f1fb7..08a7ffe1f8 100644
--- a/spec/components/post_merger_spec.rb
+++ b/spec/components/post_merger_spec.rb
@@ -4,9 +4,9 @@ require 'rails_helper'
require 'post_merger'
describe PostMerger do
- let(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
- let(:user) { Fabricate(:user) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
let(:post) { create_post }
let(:topic) { post.topic }
diff --git a/spec/components/post_revisor_spec.rb b/spec/components/post_revisor_spec.rb
index e540ce9911..cdc23952ea 100644
--- a/spec/components/post_revisor_spec.rb
+++ b/spec/components/post_revisor_spec.rb
@@ -5,8 +5,8 @@ require 'post_revisor'
describe PostRevisor do
- let(:topic) { Fabricate(:topic) }
- let(:newuser) { Fabricate(:newuser) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:newuser) { Fabricate(:newuser) }
let(:post_args) { { user: newuser, topic: topic } }
context 'TopicChanges' do
@@ -336,7 +336,7 @@ describe PostRevisor do
end
describe 'rate limiter' do
- let(:changed_by) { Fabricate(:coding_horror) }
+ fab!(:changed_by) { Fabricate(:coding_horror) }
it "triggers a rate limiter" do
EditRateLimiter.any_instance.expects(:performed!)
@@ -345,7 +345,7 @@ describe PostRevisor do
end
describe "admin editing a new user's post" do
- let(:changed_by) { Fabricate(:admin) }
+ fab!(:changed_by) { Fabricate(:admin) }
before do
SiteSetting.newuser_max_images = 0
@@ -383,7 +383,7 @@ describe PostRevisor do
SiteSetting.editing_grace_period_max_diff = 1000
end
- let(:changed_by) { Fabricate(:coding_horror) }
+ fab!(:changed_by) { Fabricate(:coding_horror) }
let!(:result) { subject.revise!(changed_by, raw: "lets update the body. Здравствуйте") }
it 'correctly updates raw' do
@@ -466,7 +466,7 @@ describe PostRevisor do
end
context "logging staff edits" do
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:moderator) { Fabricate(:moderator) }
it "doesn't log when a regular user revises a post" do
subject.revise!(
@@ -513,7 +513,7 @@ describe PostRevisor do
context "staff_edit_locks_post" do
context "disabled" do
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:moderator) { Fabricate(:moderator) }
before do
SiteSetting.staff_edit_locks_post = false
@@ -532,7 +532,7 @@ describe PostRevisor do
end
context "enabled" do
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:moderator) { Fabricate(:moderator) }
before do
SiteSetting.staff_edit_locks_post = true
@@ -607,7 +607,7 @@ describe PostRevisor do
context "alerts" do
- let(:mentioned_user) { Fabricate(:user) }
+ fab!(:mentioned_user) { Fabricate(:user) }
before do
Jobs.run_immediately!
diff --git a/spec/components/pretty_text_spec.rb b/spec/components/pretty_text_spec.rb
index 182d789d5f..d56da1ac24 100644
--- a/spec/components/pretty_text_spec.rb
+++ b/spec/components/pretty_text_spec.rb
@@ -23,7 +23,7 @@ describe PrettyText do
describe "with avatar" do
let(:default_avatar) { "//test.localhost/uploads/default/avatars/42d/57c/46ce7ee487/{size}.png" }
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
before do
User.stubs(:default_template).returns(default_avatar)
@@ -134,8 +134,8 @@ describe PrettyText do
describe "with primary user group" do
let(:default_avatar) { "//test.localhost/uploads/default/avatars/42d/57c/46ce7ee487/{size}.png" }
- let(:group) { Fabricate(:group) }
- let!(:user) { Fabricate(:user, primary_group: group) }
+ fab!(:group) { Fabricate(:group) }
+ fab!(:user) { Fabricate(:user, primary_group: group) }
before do
User.stubs(:default_template).returns(default_avatar)
@@ -202,7 +202,7 @@ describe PrettyText do
end
describe "with letter avatar" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
context "subfolder" do
before do
@@ -713,7 +713,7 @@ describe PrettyText do
describe 'format_for_email' do
let(:base_url) { "http://baseurl.net" }
- let(:post) { Fabricate(:post) }
+ fab!(:post) { Fabricate(:post) }
before do
Discourse.stubs(:base_url).returns(base_url)
diff --git a/spec/components/promotion_spec.rb b/spec/components/promotion_spec.rb
index b4b9475dfb..8f29ef2725 100644
--- a/spec/components/promotion_spec.rb
+++ b/spec/components/promotion_spec.rb
@@ -17,7 +17,7 @@ describe Promotion do
context "newuser" do
- let(:user) { Fabricate(:user, trust_level: TrustLevel[0], created_at: 2.days.ago) }
+ fab!(:user) { Fabricate(:user, trust_level: TrustLevel[0], created_at: 2.days.ago) }
let(:promotion) { Promotion.new(user) }
it "doesn't raise an error with a nil user" do
@@ -106,7 +106,7 @@ describe Promotion do
context "basic" do
- let(:user) { Fabricate(:user, trust_level: TrustLevel[1], created_at: 2.days.ago) }
+ fab!(:user) { Fabricate(:user, trust_level: TrustLevel[1], created_at: 2.days.ago) }
let(:promotion) { Promotion.new(user) }
context 'that has done nothing' do
@@ -167,7 +167,7 @@ describe Promotion do
end
context "regular" do
- let(:user) { Fabricate(:user, trust_level: TrustLevel[2]) }
+ fab!(:user) { Fabricate(:user, trust_level: TrustLevel[2]) }
let(:promotion) { Promotion.new(user) }
context "doesn't qualify for promotion" do
diff --git a/spec/components/quote_comparer_spec.rb b/spec/components/quote_comparer_spec.rb
index 15dbe175b0..3bacaeef61 100644
--- a/spec/components/quote_comparer_spec.rb
+++ b/spec/components/quote_comparer_spec.rb
@@ -6,7 +6,7 @@ require 'quote_comparer'
describe QuoteComparer do
describe "#modified?" do
- let(:post) { Fabricate(:post, raw: "This has **text** we _are_ matching") }
+ fab!(:post) { Fabricate(:post, raw: "This has **text** we _are_ matching") }
def qc(text)
QuoteComparer.new(post.topic_id, post.post_number, text)
diff --git a/spec/components/rate_limiter_spec.rb b/spec/components/rate_limiter_spec.rb
index a4db789a17..4e03d06e83 100644
--- a/spec/components/rate_limiter_spec.rb
+++ b/spec/components/rate_limiter_spec.rb
@@ -5,7 +5,7 @@ require 'rate_limiter'
describe RateLimiter do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:rate_limiter) { RateLimiter.new(user, "peppermint-butler", 2, 60) }
context 'disabled' do
diff --git a/spec/components/score_calculator_spec.rb b/spec/components/score_calculator_spec.rb
index c74ab06594..07666eec55 100644
--- a/spec/components/score_calculator_spec.rb
+++ b/spec/components/score_calculator_spec.rb
@@ -5,8 +5,8 @@ require 'score_calculator'
describe ScoreCalculator do
- let!(:post) { Fabricate(:post, reads: 111) }
- let!(:another_post) { Fabricate(:post, topic: post.topic, reads: 222) }
+ fab!(:post) { Fabricate(:post, reads: 111) }
+ fab!(:another_post) { Fabricate(:post, topic: post.topic, reads: 222) }
let(:topic) { post.topic }
context 'with weightings' do
diff --git a/spec/components/site_setting_extension_spec.rb b/spec/components/site_setting_extension_spec.rb
index f89d3c4eb9..766048d6b1 100644
--- a/spec/components/site_setting_extension_spec.rb
+++ b/spec/components/site_setting_extension_spec.rb
@@ -840,8 +840,8 @@ describe SiteSettingExtension do
describe '.setup_methods' do
describe 'for uploads site settings' do
- let(:upload) { Fabricate(:upload) }
- let(:upload2) { Fabricate(:upload) }
+ fab!(:upload) { Fabricate(:upload) }
+ fab!(:upload2) { Fabricate(:upload) }
it 'should return the upload record' do
settings.setting(:some_upload, upload.id.to_s, type: :upload)
diff --git a/spec/components/stylesheet/importer_spec.rb b/spec/components/stylesheet/importer_spec.rb
index 7c9d1353e9..8f0d8b5a4a 100644
--- a/spec/components/stylesheet/importer_spec.rb
+++ b/spec/components/stylesheet/importer_spec.rb
@@ -37,15 +37,15 @@ describe Stylesheet::Importer do
context "#theme_variables" do
- let(:theme) { Fabricate(:theme) }
+ let!(:theme) { Fabricate(:theme) }
let(:importer) { described_class.new(theme: theme) }
- let(:upload) { Fabricate(:upload) }
- let(:upload_s3) { Fabricate(:upload_s3) }
+ fab!(:upload) { Fabricate(:upload) }
+ fab!(:upload_s3) { Fabricate(:upload_s3) }
- let(:theme_field) { ThemeField.create!(theme: theme, target_id: 0, name: "var", upload: upload, value: "", type_id: ThemeField.types[:theme_upload_var]) }
- let(:theme_field_s3) { ThemeField.create!(theme: theme, target_id: 1, name: "var_s3", upload: upload_s3, value: "", type_id: ThemeField.types[:theme_upload_var]) }
+ let!(:theme_field) { ThemeField.create!(theme: theme, target_id: 0, name: "var", upload: upload, value: "", type_id: ThemeField.types[:theme_upload_var]) }
+ let!(:theme_field_s3) { ThemeField.create!(theme: theme, target_id: 1, name: "var_s3", upload: upload_s3, value: "", type_id: ThemeField.types[:theme_upload_var]) }
it "should contain the URL" do
theme_field.save!
diff --git a/spec/components/suggested_topics_builder_spec.rb b/spec/components/suggested_topics_builder_spec.rb
index 69264c2a5c..ab135df796 100644
--- a/spec/components/suggested_topics_builder_spec.rb
+++ b/spec/components/suggested_topics_builder_spec.rb
@@ -5,7 +5,7 @@ require 'suggested_topics_builder'
describe SuggestedTopicsBuilder do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
let(:builder) { SuggestedTopicsBuilder.new(topic) }
before do
@@ -68,7 +68,7 @@ describe SuggestedTopicsBuilder do
end
context "adding topics" do
- let!(:other_topic) { Fabricate(:topic) }
+ fab!(:other_topic) { Fabricate(:topic) }
before do
# Add all topics
@@ -86,9 +86,9 @@ describe SuggestedTopicsBuilder do
end
context "adding topics that are not open" do
- let!(:archived_topic) { Fabricate(:topic, archived: true) }
- let!(:closed_topic) { Fabricate(:topic, closed: true) }
- let!(:invisible_topic) { Fabricate(:topic, visible: false) }
+ fab!(:archived_topic) { Fabricate(:topic, archived: true) }
+ fab!(:closed_topic) { Fabricate(:topic, closed: true) }
+ fab!(:invisible_topic) { Fabricate(:topic, visible: false) }
it "adds archived and closed, but not invisible topics" do
builder.add_results(Topic)
@@ -98,7 +98,7 @@ describe SuggestedTopicsBuilder do
end
context "category definition topics" do
- let!(:category) { Fabricate(:category) }
+ fab!(:category) { Fabricate(:category) }
it "doesn't add a category definition topic" do
expect(category.topic_id).to be_present
diff --git a/spec/components/system_message_spec.rb b/spec/components/system_message_spec.rb
index 29c25c4f59..b501fc5ebb 100644
--- a/spec/components/system_message_spec.rb
+++ b/spec/components/system_message_spec.rb
@@ -8,8 +8,8 @@ describe SystemMessage do
context 'send' do
- let(:admin) { Fabricate(:admin) }
- let(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
before do
SiteSetting.site_contact_username = admin.username
diff --git a/spec/components/theme_settings_manager_spec.rb b/spec/components/theme_settings_manager_spec.rb
index 8dba26c330..d66addeb3d 100644
--- a/spec/components/theme_settings_manager_spec.rb
+++ b/spec/components/theme_settings_manager_spec.rb
@@ -5,7 +5,7 @@ require 'theme_settings_manager'
describe ThemeSettingsManager do
- let(:theme) { Fabricate(:theme) }
+ let!(:theme) { Fabricate(:theme) }
let(:theme_settings) do
yaml = File.read("#{Rails.root}/spec/fixtures/theme_settings/valid_settings.yaml")
theme.set_field(target: :settings, name: "yaml", value: yaml)
diff --git a/spec/components/theme_store/tgz_exporter_spec.rb b/spec/components/theme_store/tgz_exporter_spec.rb
index eb2ff1afa5..5c3d08ec67 100644
--- a/spec/components/theme_store/tgz_exporter_spec.rb
+++ b/spec/components/theme_store/tgz_exporter_spec.rb
@@ -4,7 +4,7 @@ require 'rails_helper'
require 'theme_store/tgz_exporter'
describe ThemeStore::TgzExporter do
- let(:theme) do
+ let!(:theme) do
Fabricate(:theme, name: "Header Icons").tap do |theme|
theme.set_field(target: :common, name: :body_tag, value: "testtheme1")
theme.set_field(target: :settings, name: :yaml, value: "somesetting: test")
diff --git a/spec/components/topic_creator_spec.rb b/spec/components/topic_creator_spec.rb
index b3d62d7a48..cda1cb6719 100644
--- a/spec/components/topic_creator_spec.rb
+++ b/spec/components/topic_creator_spec.rb
@@ -4,9 +4,9 @@ require 'rails_helper'
describe TopicCreator do
- let(:user) { Fabricate(:user, trust_level: TrustLevel[2]) }
- let(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user, trust_level: TrustLevel[2]) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
let(:valid_attrs) { Fabricate.attributes_for(:topic) }
let(:pm_valid_attrs) { { raw: 'this is a new post', title: 'this is a new title', archetype: Archetype.private_message, target_usernames: moderator.username } }
@@ -63,8 +63,8 @@ describe TopicCreator do
end
context 'tags' do
- let!(:tag1) { Fabricate(:tag, name: "fun") }
- let!(:tag2) { Fabricate(:tag, name: "fun2") }
+ fab!(:tag1) { Fabricate(:tag, name: "fun") }
+ fab!(:tag2) { Fabricate(:tag, name: "fun2") }
before do
SiteSetting.tagging_enabled = true
@@ -99,7 +99,7 @@ describe TopicCreator do
end
context 'minimum_required_tags is present' do
- let!(:category) { Fabricate(:category, name: "beta", minimum_required_tags: 2) }
+ fab!(:category) { Fabricate(:category, name: "beta", minimum_required_tags: 2) }
it "fails for regular user if minimum_required_tags is not satisfied" do
expect do
diff --git a/spec/components/topic_publisher_spec.rb b/spec/components/topic_publisher_spec.rb
index 00a4f7b120..c684d3de77 100644
--- a/spec/components/topic_publisher_spec.rb
+++ b/spec/components/topic_publisher_spec.rb
@@ -6,18 +6,18 @@ require 'rails_helper'
describe TopicPublisher do
context "shared drafts" do
- let(:shared_drafts_category) { Fabricate(:category) }
- let(:category) { Fabricate(:category) }
+ fab!(:shared_drafts_category) { Fabricate(:category) }
+ fab!(:category) { Fabricate(:category) }
before do
SiteSetting.shared_drafts_category = shared_drafts_category.id
end
context "publishing" do
- let(:topic) { Fabricate(:topic, category: shared_drafts_category, visible: false) }
- let(:shared_draft) { Fabricate(:shared_draft, topic: topic, category: category) }
- let(:moderator) { Fabricate(:moderator) }
- let(:op) { Fabricate(:post, topic: topic) }
+ fab!(:topic) { Fabricate(:topic, category: shared_drafts_category, visible: false) }
+ fab!(:shared_draft) { Fabricate(:shared_draft, topic: topic, category: category) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:op) { Fabricate(:post, topic: topic) }
before do
# Create a revision
diff --git a/spec/components/topic_query_spec.rb b/spec/components/topic_query_spec.rb
index 6ebbbe2261..75787e592c 100644
--- a/spec/components/topic_query_spec.rb
+++ b/spec/components/topic_query_spec.rb
@@ -11,11 +11,11 @@ describe TopicQuery do
# we should remove the let! here and use freeze time to communicate how the clock moves
let!(:user) { Fabricate(:coding_horror) }
- let(:creator) { Fabricate(:user) }
+ fab!(:creator) { Fabricate(:user) }
let(:topic_query) { TopicQuery.new(user) }
- let(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
context 'secure category' do
it "filters categories out correctly" do
@@ -165,20 +165,20 @@ describe TopicQuery do
end
context 'tag filter' do
- let(:tag) { Fabricate(:tag) }
- let(:other_tag) { Fabricate(:tag) }
- let(:uppercase_tag) { Fabricate(:tag, name: "HeLlO") }
+ fab!(:tag) { Fabricate(:tag) }
+ fab!(:other_tag) { Fabricate(:tag) }
+ fab!(:uppercase_tag) { Fabricate(:tag, name: "HeLlO") }
before do
SiteSetting.tagging_enabled = true
end
context "no category filter" do
- let!(:tagged_topic1) { Fabricate(:topic, tags: [tag]) }
- let!(:tagged_topic2) { Fabricate(:topic, tags: [other_tag]) }
- let!(:tagged_topic3) { Fabricate(:topic, tags: [tag, other_tag]) }
- let!(:tagged_topic4) { Fabricate(:topic, tags: [uppercase_tag]) }
- let!(:no_tags_topic) { Fabricate(:topic) }
+ fab!(:tagged_topic1) { Fabricate(:topic, tags: [tag]) }
+ fab!(:tagged_topic2) { Fabricate(:topic, tags: [other_tag]) }
+ fab!(:tagged_topic3) { Fabricate(:topic, tags: [tag, other_tag]) }
+ fab!(:tagged_topic4) { Fabricate(:topic, tags: [uppercase_tag]) }
+ fab!(:no_tags_topic) { Fabricate(:topic) }
it "returns topics with the tag when filtered to it" do
expect(TopicQuery.new(moderator, tags: tag.name).list_latest.topics)
@@ -269,7 +269,7 @@ describe TopicQuery do
end
context 'a bunch of topics' do
- let!(:regular_topic) do
+ fab!(:regular_topic) do
Fabricate(:topic, title: 'this is a regular topic',
user: creator,
views: 100,
@@ -278,7 +278,7 @@ describe TopicQuery do
participant_count: 11,
bumped_at: 15.minutes.ago)
end
- let!(:pinned_topic) do
+ fab!(:pinned_topic) do
Fabricate(:topic, title: 'this is a pinned topic',
user: creator,
views: 10,
@@ -289,7 +289,7 @@ describe TopicQuery do
pinned_globally: true,
bumped_at: 10.minutes.ago)
end
- let!(:archived_topic) do
+ fab!(:archived_topic) do
Fabricate(:topic, title: 'this is an archived topic',
user: creator,
views: 50,
@@ -299,7 +299,7 @@ describe TopicQuery do
participant_count: 1,
bumped_at: 6.minutes.ago)
end
- let!(:invisible_topic) do
+ fab!(:invisible_topic) do
Fabricate(:topic, title: 'this is an invisible topic',
user: creator,
views: 1,
@@ -309,7 +309,7 @@ describe TopicQuery do
participant_count: 3,
bumped_at: 5.minutes.ago)
end
- let!(:closed_topic) do
+ fab!(:closed_topic) do
Fabricate(:topic, title: 'this is a closed topic',
user: creator,
views: 2,
@@ -319,7 +319,7 @@ describe TopicQuery do
participant_count: 2,
bumped_at: 1.minute.ago)
end
- let!(:future_topic) do
+ fab!(:future_topic) do
Fabricate(:topic, title: 'this is a topic in far future',
user: creator,
views: 30,
@@ -417,13 +417,13 @@ describe TopicQuery do
end
context 'categorized' do
- let(:category) { Fabricate(:category) }
+ fab!(:category) { Fabricate(:category) }
let(:topic_category) { category.topic }
- let!(:topic_no_cat) { Fabricate(:topic) }
- let!(:topic_in_cat1) { Fabricate(:topic, category: category,
+ fab!(:topic_no_cat) { Fabricate(:topic) }
+ fab!(:topic_in_cat1) { Fabricate(:topic, category: category,
bumped_at: 10.minutes.ago,
created_at: 10.minutes.ago) }
- let!(:topic_in_cat2) { Fabricate(:topic, category: category) }
+ fab!(:topic_in_cat2) { Fabricate(:topic, category: category) }
describe '#list_new_in_category' do
it 'returns the topic category and the categorized topic' do
@@ -486,8 +486,8 @@ describe TopicQuery do
end
context 'with read data' do
- let!(:partially_read) { Fabricate(:post, user: creator).topic }
- let!(:fully_read) { Fabricate(:post, user: creator).topic }
+ fab!(:partially_read) { Fabricate(:post, user: creator).topic }
+ fab!(:fully_read) { Fabricate(:post, user: creator).topic }
before do
TopicUser.update_last_read(user, partially_read.id, 0, 0, 0)
@@ -918,7 +918,7 @@ describe TopicQuery do
end
describe '#list_group_topics' do
- let(:group) { Fabricate(:group) }
+ fab!(:group) { Fabricate(:group) }
let(:user) do
user = Fabricate(:user)
@@ -932,9 +932,9 @@ describe TopicQuery do
user
end
- let(:user3) { Fabricate(:user) }
+ fab!(:user3) { Fabricate(:user) }
- let(:private_category) do
+ fab!(:private_category) do
Fabricate(:private_category, group: group)
end
@@ -970,7 +970,7 @@ describe TopicQuery do
end
describe '#list_private_messages_group' do
- let(:group) { Fabricate(:group) }
+ fab!(:group) { Fabricate(:group) }
let!(:group_message) do
Fabricate(:private_message_topic,
@@ -1011,13 +1011,13 @@ describe TopicQuery do
end
context "shared drafts" do
- let(:category) { Fabricate(:category) }
- let(:shared_drafts_category) { Fabricate(:category) }
- let!(:topic) { Fabricate(:topic, category: shared_drafts_category) }
- let!(:shared_draft) { Fabricate(:shared_draft, topic: topic, category: category) }
- let(:admin) { Fabricate(:admin) }
- let(:user) { Fabricate(:user) }
- let(:group) { Fabricate(:group) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:shared_drafts_category) { Fabricate(:category) }
+ fab!(:topic) { Fabricate(:topic, category: shared_drafts_category) }
+ fab!(:shared_draft) { Fabricate(:shared_draft, topic: topic, category: category) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:group) { Fabricate(:group) }
before do
shared_drafts_category.set_permissions(group => :full)
diff --git a/spec/components/topic_view_spec.rb b/spec/components/topic_view_spec.rb
index 0b03d5361f..042c0cced4 100644
--- a/spec/components/topic_view_spec.rb
+++ b/spec/components/topic_view_spec.rb
@@ -6,7 +6,7 @@ require 'topic_view'
describe TopicView do
let(:topic) { create_topic }
- let(:evil_trout) { Fabricate(:evil_trout) }
+ fab!(:evil_trout) { Fabricate(:evil_trout) }
let(:first_poster) { topic.user }
let(:topic_view) { TopicView.new(topic.id, evil_trout) }
@@ -35,8 +35,8 @@ describe TopicView do
context "setup_filtered_posts" do
describe "filters posts with ignored users" do
- let!(:user) { Fabricate(:user) }
- let!(:ignored_user) { Fabricate(:ignored_user, user: evil_trout, ignored_user: user) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:ignored_user) { Fabricate(:ignored_user, user: evil_trout, ignored_user: user) }
let!(:post) { Fabricate(:post, topic: topic, user: first_poster) }
let!(:post2) { Fabricate(:post, topic: topic, user: evil_trout) }
let!(:post3) { Fabricate(:post, topic: topic, user: user) }
@@ -104,8 +104,8 @@ describe TopicView do
let!(:p2) { Fabricate(:post, topic: topic, user: evil_trout, percent_rank: 0.5) }
let!(:p3) { Fabricate(:post, topic: topic, user: first_poster, percent_rank: 0) }
- let(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
it "it can find the best responses" do
@@ -167,8 +167,8 @@ describe TopicView do
end
context 'log_check_personal_message is enabled' do
- let(:group) { Fabricate(:group) }
- let(:private_message) { Fabricate(:private_message_topic, allowed_groups: [group]) }
+ fab!(:group) { Fabricate(:group) }
+ fab!(:private_message) { Fabricate(:private_message_topic, allowed_groups: [group]) }
before do
SiteSetting.log_personal_messages_views = true
@@ -232,8 +232,8 @@ describe TopicView do
end
describe "#get_canonical_path" do
- let(:user) { Fabricate(:user) }
- let(:topic) { Fabricate(:topic) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic) }
let(:path) { "/1234" }
before do
@@ -574,8 +574,8 @@ describe TopicView do
end
context "page_title" do
- let(:tag1) { Fabricate(:tag) }
- let(:tag2) { Fabricate(:tag, topic_count: 2) }
+ fab!(:tag1) { Fabricate(:tag) }
+ fab!(:tag2) { Fabricate(:tag, topic_count: 2) }
subject { TopicView.new(topic.id, evil_trout).page_title }
diff --git a/spec/components/topics_bulk_action_spec.rb b/spec/components/topics_bulk_action_spec.rb
index b73ef4d2a6..f722264ba8 100644
--- a/spec/components/topics_bulk_action_spec.rb
+++ b/spec/components/topics_bulk_action_spec.rb
@@ -32,8 +32,8 @@ describe TopicsBulkAction do
end
describe "change_category" do
- let(:topic) { Fabricate(:topic) }
- let(:category) { Fabricate(:category) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:category) { Fabricate(:category) }
context "when the user can edit the topic" do
it "changes the category and returns the topic_id" do
@@ -58,7 +58,7 @@ describe TopicsBulkAction do
end
describe "reset_read" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
it "delegates to PostTiming.destroy_for" do
tba = TopicsBulkAction.new(topic.user, [topic.id], type: 'reset_read')
@@ -68,8 +68,8 @@ describe TopicsBulkAction do
end
describe "delete" do
- let(:topic) { Fabricate(:post).topic }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:topic) { Fabricate(:post).topic }
+ fab!(:moderator) { Fabricate(:moderator) }
it "deletes the topic" do
tba = TopicsBulkAction.new(moderator, [topic.id], type: 'delete')
@@ -80,7 +80,7 @@ describe TopicsBulkAction do
end
describe "change_notification_level" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
context "when the user can see the topic" do
it "updates the notification level" do
@@ -103,7 +103,7 @@ describe TopicsBulkAction do
end
describe "close" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
context "when the user can moderate the topic" do
it "closes the topic and returns the topic_id" do
@@ -130,7 +130,7 @@ describe TopicsBulkAction do
end
describe "archive" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
context "when the user can moderate the topic" do
it "archives the topic and returns the topic_id" do
@@ -157,7 +157,7 @@ describe TopicsBulkAction do
end
describe "unlist" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
context "when the user can moderate the topic" do
it "unlists the topic and returns the topic_id" do
@@ -184,9 +184,9 @@ describe TopicsBulkAction do
end
describe "change_tags" do
- let(:topic) { Fabricate(:topic) }
- let(:tag1) { Fabricate(:tag) }
- let(:tag2) { Fabricate(:tag) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:tag1) { Fabricate(:tag) }
+ fab!(:tag2) { Fabricate(:tag) }
before do
SiteSetting.tagging_enabled = true
@@ -236,10 +236,10 @@ describe TopicsBulkAction do
end
describe "append tags" do
- let(:topic) { Fabricate(:topic) }
- let(:tag1) { Fabricate(:tag) }
- let(:tag2) { Fabricate(:tag) }
- let(:tag3) { Fabricate(:tag) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:tag1) { Fabricate(:tag) }
+ fab!(:tag2) { Fabricate(:tag) }
+ fab!(:tag3) { Fabricate(:tag) }
before do
SiteSetting.tagging_enabled = true
diff --git a/spec/components/validators/post_validator_spec.rb b/spec/components/validators/post_validator_spec.rb
index 1426caaf27..275a32b786 100644
--- a/spec/components/validators/post_validator_spec.rb
+++ b/spec/components/validators/post_validator_spec.rb
@@ -4,7 +4,7 @@ require 'rails_helper'
require_dependency 'validators/post_validator'
describe Validators::PostValidator do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
let(:post) { build(:post, topic: topic) }
let(:validator) { Validators::PostValidator.new({}) }
@@ -26,8 +26,8 @@ describe Validators::PostValidator do
end
describe "when post's topic is a PM between a human and a non human user" do
- let(:robot) { Fabricate(:user, id: -3) }
- let(:user) { Fabricate(:user) }
+ fab!(:robot) { Fabricate(:user, id: -3) }
+ fab!(:user) { Fabricate(:user) }
let(:topic) do
Fabricate(:private_message_topic, topic_allowed_users: [
@@ -189,8 +189,8 @@ describe Validators::PostValidator do
end
describe "unique_post_validator" do
- let(:user) { Fabricate(:user, id: 999) }
- let(:post) { Fabricate(:post, user: user, topic: topic) }
+ fab!(:user) { Fabricate(:user, id: 999) }
+ fab!(:post) { Fabricate(:post, user: user, topic: topic) }
before do
SiteSetting.unique_posts_mins = 5
@@ -240,9 +240,9 @@ describe Validators::PostValidator do
context "force_edit_last_validator" do
- let(:user) { Fabricate(:user) }
- let(:other_user) { Fabricate(:user) }
- let(:topic) { Fabricate(:topic) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:other_user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic) }
before do
SiteSetting.max_consecutive_replies = 2
diff --git a/spec/components/validators/upload_validator_spec.rb b/spec/components/validators/upload_validator_spec.rb
index cd4c339b27..e9a3dfe601 100644
--- a/spec/components/validators/upload_validator_spec.rb
+++ b/spec/components/validators/upload_validator_spec.rb
@@ -7,7 +7,7 @@ describe Validators::UploadValidator do
subject(:validator) { described_class.new }
describe 'validate' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:filename) { "discourse.csv" }
let(:csv_file) { file_from_fixtures(filename, "csv") }
@@ -57,7 +57,7 @@ describe Validators::UploadValidator do
end
describe 'upload for site settings' do
- let(:user) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:admin) }
let(:upload) do
Fabricate.build(:upload,
@@ -85,7 +85,7 @@ describe Validators::UploadValidator do
end
describe 'for normal user' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it 'should not allow the upload' do
expect(subject.validate(upload)).to eq(nil)
diff --git a/spec/components/validators/username_setting_validator_spec.rb b/spec/components/validators/username_setting_validator_spec.rb
index 36e541ca9e..99bbfd9671 100644
--- a/spec/components/validators/username_setting_validator_spec.rb
+++ b/spec/components/validators/username_setting_validator_spec.rb
@@ -21,8 +21,8 @@ describe UsernameSettingValidator do
end
context "regex support" do
- let!(:darthvader) { Fabricate(:user, username: 'darthvader') }
- let!(:luke) { Fabricate(:user, username: 'luke') }
+ fab!(:darthvader) { Fabricate(:user, username: 'darthvader') }
+ fab!(:luke) { Fabricate(:user, username: 'luke') }
it "returns false if regex doesn't match" do
v = described_class.new(regex: 'darth')
diff --git a/spec/components/wizard/step_updater_spec.rb b/spec/components/wizard/step_updater_spec.rb
index ccaab1d002..b8cec24874 100644
--- a/spec/components/wizard/step_updater_spec.rb
+++ b/spec/components/wizard/step_updater_spec.rb
@@ -10,7 +10,7 @@ describe Wizard::StepUpdater do
SiteSetting.wizard_enabled = true
end
- let(:user) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:admin) }
let(:wizard) { Wizard::Builder.new(user).build }
context "locale" do
@@ -171,7 +171,7 @@ describe Wizard::StepUpdater do
context "colors step" do
context "with an existing color scheme" do
- let!(:color_scheme) { Fabricate(:color_scheme, name: 'existing', via_wizard: true) }
+ fab!(:color_scheme) { Fabricate(:color_scheme, name: 'existing', via_wizard: true) }
it "updates the scheme" do
updater = wizard.create_updater('colors', theme_previews: 'Dark')
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index fb54c60192..d55023f3e1 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -166,7 +166,7 @@ describe ApplicationHelper do
end
describe '#html_classes' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it "includes 'rtl' when the I18n.locale is rtl" do
I18n.stubs(:locale).returns(:he)
diff --git a/spec/import_export/category_exporter_spec.rb b/spec/import_export/category_exporter_spec.rb
index 4d1125d180..88657f646b 100644
--- a/spec/import_export/category_exporter_spec.rb
+++ b/spec/import_export/category_exporter_spec.rb
@@ -5,11 +5,11 @@ require "import_export/category_exporter"
describe ImportExport::CategoryExporter do
- let(:category) { Fabricate(:category) }
- let(:group) { Fabricate(:group) }
- let(:user) { Fabricate(:user) }
- let(:user2) { Fabricate(:user) }
- let(:user3) { Fabricate(:user) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:group) { Fabricate(:group) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:user2) { Fabricate(:user) }
+ fab!(:user3) { Fabricate(:user) }
before do
STDOUT.stubs(:write)
diff --git a/spec/import_export/topic_exporter_spec.rb b/spec/import_export/topic_exporter_spec.rb
index 62eeba0341..d216846fa8 100644
--- a/spec/import_export/topic_exporter_spec.rb
+++ b/spec/import_export/topic_exporter_spec.rb
@@ -9,9 +9,9 @@ describe ImportExport::TopicExporter do
STDOUT.stubs(:write)
end
- let(:user) { Fabricate(:user) }
- let(:topic) { Fabricate(:topic, user: user) }
- let!(:post) { Fabricate(:post, topic: topic, user: user) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:topic) { Fabricate(:topic, user: user) }
+ fab!(:post) { Fabricate(:post, topic: topic, user: user) }
context '.perform' do
it 'export a single topic' do
diff --git a/spec/integration/category_tag_spec.rb b/spec/integration/category_tag_spec.rb
index ba6c93de64..b42839a18d 100644
--- a/spec/integration/category_tag_spec.rb
+++ b/spec/integration/category_tag_spec.rb
@@ -14,13 +14,13 @@ describe "category tag restrictions" do
DiscourseTagging.filter_allowed_tags(Tag.all, Guardian.new(user), opts)
end
- let!(:tag1) { Fabricate(:tag, name: 'tag1') }
- let!(:tag2) { Fabricate(:tag, name: 'tag2') }
- let!(:tag3) { Fabricate(:tag, name: 'tag3') }
- let!(:tag4) { Fabricate(:tag, name: 'tag4') }
+ fab!(:tag1) { Fabricate(:tag, name: 'tag1') }
+ fab!(:tag2) { Fabricate(:tag, name: 'tag2') }
+ fab!(:tag3) { Fabricate(:tag, name: 'tag3') }
+ fab!(:tag4) { Fabricate(:tag, name: 'tag4') }
- let(:user) { Fabricate(:user) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
before do
SiteSetting.tagging_enabled = true
@@ -29,8 +29,8 @@ describe "category tag restrictions" do
end
context "tags restricted to one category" do
- let!(:category_with_tags) { Fabricate(:category) }
- let!(:other_category) { Fabricate(:category) }
+ fab!(:category_with_tags) { Fabricate(:category) }
+ fab!(:other_category) { Fabricate(:category) }
before do
category_with_tags.tags = [tag1, tag2]
@@ -98,9 +98,9 @@ describe "category tag restrictions" do
end
context "tag groups restricted to a category" do
- let!(:tag_group1) { Fabricate(:tag_group) }
- let!(:category) { Fabricate(:category) }
- let!(:other_category) { Fabricate(:category) }
+ fab!(:tag_group1) { Fabricate(:tag_group) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:other_category) { Fabricate(:category) }
before do
tag_group1.tags = [tag1, tag2]
@@ -156,8 +156,8 @@ describe "category tag restrictions" do
end
context 'another category has restricted tags using groups' do
- let(:category2) { Fabricate(:category) }
- let(:tag_group2) { Fabricate(:tag_group) }
+ fab!(:category2) { Fabricate(:category) }
+ fab!(:tag_group2) { Fabricate(:tag_group) }
before do
tag_group2.tags = [tag2, tag3]
@@ -183,7 +183,7 @@ describe "category tag restrictions" do
end
context 'another category has restricted tags' do
- let(:category2) { Fabricate(:category) }
+ fab!(:category2) { Fabricate(:category) }
it "doesn't filter tags that are also restricted in another category" do
category2.tags = [tag2, tag3]
@@ -214,11 +214,11 @@ describe "category tag restrictions" do
end
context "and category restrictions" do
- let(:car_category) { Fabricate(:category) }
- let(:other_category) { Fabricate(:category) }
- let(:makes) { Fabricate(:tag_group, name: "Makes") }
- let(:honda_group) { Fabricate(:tag_group, name: "Honda Models") }
- let(:ford_group) { Fabricate(:tag_group, name: "Ford Models") }
+ fab!(:car_category) { Fabricate(:category) }
+ fab!(:other_category) { Fabricate(:category) }
+ fab!(:makes) { Fabricate(:tag_group, name: "Makes") }
+ fab!(:honda_group) { Fabricate(:tag_group, name: "Honda Models") }
+ fab!(:ford_group) { Fabricate(:tag_group, name: "Ford Models") }
before do
@tags = {}
@@ -290,12 +290,12 @@ describe "category tag restrictions" do
end
describe "tag topic counts per category" do
- let(:admin) { Fabricate(:admin) }
- let(:category) { Fabricate(:category) }
- let(:category2) { Fabricate(:category) }
- let(:tag1) { Fabricate(:tag) }
- let(:tag2) { Fabricate(:tag) }
- let(:tag3) { Fabricate(:tag) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:category2) { Fabricate(:category) }
+ fab!(:tag1) { Fabricate(:tag) }
+ fab!(:tag2) { Fabricate(:tag) }
+ fab!(:tag3) { Fabricate(:tag) }
before do
SiteSetting.tagging_enabled = true
@@ -323,8 +323,8 @@ describe "tag topic counts per category" do
end
context "topic with 2 tags" do
- let(:topic) { Fabricate(:topic, category: category, tags: [tag1, tag2]) }
- let(:post) { Fabricate(:post, user: topic.user, topic: topic) }
+ fab!(:topic) { Fabricate(:topic, category: category, tags: [tag1, tag2]) }
+ fab!(:post) { Fabricate(:post, user: topic.user, topic: topic) }
it "has correct counts after tag is removed from a topic" do
post
@@ -355,8 +355,8 @@ describe "tag topic counts per category" do
end
context "topic with one tag" do
- let(:topic) { Fabricate(:topic, tags: [tag1], category: category) }
- let(:post) { Fabricate(:post, user: topic.user, topic: topic) }
+ fab!(:topic) { Fabricate(:topic, tags: [tag1], category: category) }
+ fab!(:post) { Fabricate(:post, user: topic.user, topic: topic) }
it "counts after topic becomes uncategorized" do
PostRevisor.new(post).revise!(topic.user, raw: post.raw, tags: [tag1.name], category_id: SiteSetting.uncategorized_category_id)
diff --git a/spec/integration/spam_rules_spec.rb b/spec/integration/spam_rules_spec.rb
index f9ec29ff58..d5c482e38b 100644
--- a/spec/integration/spam_rules_spec.rb
+++ b/spec/integration/spam_rules_spec.rb
@@ -6,10 +6,10 @@ require 'rails_helper'
describe "spam rules for users" do
describe 'auto-silence users based on flagging' do
- let!(:admin) { Fabricate(:admin) } # needed to send a system message
- let!(:moderator) { Fabricate(:moderator) }
- let(:user1) { Fabricate(:user) }
- let(:user2) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) } # needed to send a system message
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:user1) { Fabricate(:user) }
+ fab!(:user2) { Fabricate(:user) }
before do
SiteSetting.score_required_to_hide_post = 0
@@ -18,7 +18,7 @@ describe "spam rules for users" do
end
context 'spammer is a new user' do
- let(:spammer) { Fabricate(:user, trust_level: TrustLevel[0]) }
+ fab!(:spammer) { Fabricate(:user, trust_level: TrustLevel[0]) }
context 'spammer post is not flagged enough times' do
let!(:spam_post) { create_post(user: spammer) }
@@ -43,7 +43,7 @@ describe "spam rules for users" do
end
context 'one spam post is flagged enough times by enough users' do
- let!(:another_topic) { Fabricate(:topic) }
+ fab!(:another_topic) { Fabricate(:topic) }
let!(:private_messages_count) { spammer.private_topics_count }
let!(:mod_pm_count) { moderator.private_topics_count }
let!(:reviewable) { PostActionCreator.spam(user2, spam_post).reviewable }
diff --git a/spec/integration/user_api_keys_spec.rb b/spec/integration/user_api_keys_spec.rb
index 24607b22d9..e094ed3a84 100644
--- a/spec/integration/user_api_keys_spec.rb
+++ b/spec/integration/user_api_keys_spec.rb
@@ -4,7 +4,7 @@ require 'rails_helper'
describe 'user api keys integration' do
- let(:user_api_key) { Fabricate(:readonly_user_api_key) }
+ fab!(:user_api_key) { Fabricate(:readonly_user_api_key) }
it 'updates last used time on use' do
user_api_key.update_columns(last_used_at: 7.days.ago)
diff --git a/spec/integration/watched_words_spec.rb b/spec/integration/watched_words_spec.rb
index cbb8fc0d5a..d8d127ef26 100644
--- a/spec/integration/watched_words_spec.rb
+++ b/spec/integration/watched_words_spec.rb
@@ -3,12 +3,12 @@
require 'rails_helper'
describe WatchedWord do
- let(:tl2_user) { Fabricate(:user, trust_level: TrustLevel[2]) }
- let(:admin) { Fabricate(:admin) }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:tl2_user) { Fabricate(:user, trust_level: TrustLevel[2]) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
- let(:topic) { Fabricate(:topic) }
- let(:first_post) { Fabricate(:post, topic: topic) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:first_post) { Fabricate(:post, topic: topic) }
let(:require_approval_word) { Fabricate(:watched_word, action: WatchedWord.actions[:require_approval]) }
let(:flag_word) { Fabricate(:watched_word, action: WatchedWord.actions[:flag]) }
diff --git a/spec/jobs/auto_expire_user_api_keys_spec.rb b/spec/jobs/auto_expire_user_api_keys_spec.rb
index 37da63ea85..ef490a113e 100644
--- a/spec/jobs/auto_expire_user_api_keys_spec.rb
+++ b/spec/jobs/auto_expire_user_api_keys_spec.rb
@@ -3,8 +3,8 @@
require 'rails_helper'
RSpec.describe Jobs::AutoExpireUserApiKeys do
- let(:key1) { Fabricate(:readonly_user_api_key) }
- let(:key2) { Fabricate(:readonly_user_api_key) }
+ fab!(:key1) { Fabricate(:readonly_user_api_key) }
+ fab!(:key2) { Fabricate(:readonly_user_api_key) }
context 'when user api key is unused in last 1 days' do
diff --git a/spec/jobs/auto_queue_handler_spec.rb b/spec/jobs/auto_queue_handler_spec.rb
index 2218faeada..d073718472 100644
--- a/spec/jobs/auto_queue_handler_spec.rb
+++ b/spec/jobs/auto_queue_handler_spec.rb
@@ -7,8 +7,8 @@ describe Jobs::AutoQueueHandler do
subject { Jobs::AutoQueueHandler.new.execute({}) }
context "old flag" do
- let!(:old) { Fabricate(:reviewable_flagged_post, created_at: 61.days.ago) }
- let!(:not_old) { Fabricate(:reviewable_flagged_post, created_at: 59.days.ago) }
+ fab!(:old) { Fabricate(:reviewable_flagged_post, created_at: 61.days.ago) }
+ fab!(:not_old) { Fabricate(:reviewable_flagged_post, created_at: 59.days.ago) }
it "defers the old flag if auto_handle_queued_age is 60" do
SiteSetting.auto_handle_queued_age = 60
@@ -26,10 +26,10 @@ describe Jobs::AutoQueueHandler do
end
context "reviewables" do
- let!(:new_post) { Fabricate(:reviewable_queued_post, created_at: 59.days.ago) }
- let!(:old_post) { Fabricate(:reviewable_queued_post, created_at: 61.days.ago) }
- let!(:new_user) { Fabricate(:reviewable, created_at: 10.days.ago) }
- let!(:old_user) { Fabricate(:reviewable, created_at: 80.days.ago) }
+ fab!(:new_post) { Fabricate(:reviewable_queued_post, created_at: 59.days.ago) }
+ fab!(:old_post) { Fabricate(:reviewable_queued_post, created_at: 61.days.ago) }
+ fab!(:new_user) { Fabricate(:reviewable, created_at: 10.days.ago) }
+ fab!(:old_user) { Fabricate(:reviewable, created_at: 80.days.ago) }
it "rejects the post when auto_handle_queued_age is 60" do
SiteSetting.auto_handle_queued_age = 60
diff --git a/spec/jobs/bulk_invite_spec.rb b/spec/jobs/bulk_invite_spec.rb
index 53bdcf2ec9..e6a7d0c2cc 100644
--- a/spec/jobs/bulk_invite_spec.rb
+++ b/spec/jobs/bulk_invite_spec.rb
@@ -4,11 +4,11 @@ require 'rails_helper'
describe Jobs::BulkInvite do
describe '#execute' do
- let(:user) { Fabricate(:user) }
- let(:admin) { Fabricate(:admin) }
- let!(:group1) { Fabricate(:group, name: 'group1') }
- let!(:group2) { Fabricate(:group, name: 'group2') }
- let!(:topic) { Fabricate(:topic, id: 999) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:group1) { Fabricate(:group, name: 'group1') }
+ fab!(:group2) { Fabricate(:group, name: 'group2') }
+ fab!(:topic) { Fabricate(:topic, id: 999) }
let(:email) { "test@discourse.org" }
let(:basename) { "bulk_invite.csv" }
let(:filename) { "#{Invite.base_directory}/#{basename}" }
diff --git a/spec/jobs/bump_topic_spec.rb b/spec/jobs/bump_topic_spec.rb
index a52c0d20f8..b228a51965 100644
--- a/spec/jobs/bump_topic_spec.rb
+++ b/spec/jobs/bump_topic_spec.rb
@@ -3,8 +3,8 @@
require 'rails_helper'
describe Jobs::BumpTopic do
- let(:admin) { Fabricate(:admin) }
- let(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
it "can bump a topic" do
topic = Fabricate(:topic_timer, user: admin).topic
diff --git a/spec/jobs/clean_up_email_logs_spec.rb b/spec/jobs/clean_up_email_logs_spec.rb
index 2e987333ad..7c84aa2b8f 100644
--- a/spec/jobs/clean_up_email_logs_spec.rb
+++ b/spec/jobs/clean_up_email_logs_spec.rb
@@ -3,15 +3,15 @@
require 'rails_helper'
describe Jobs::CleanUpEmailLogs do
- let!(:email_log) { Fabricate(:email_log, created_at: 2.years.ago) }
- let!(:email_log2) { Fabricate(:email_log, created_at: 2.weeks.ago) }
- let!(:email_log3) { Fabricate(:email_log, created_at: 2.days.ago) }
+ fab!(:email_log) { Fabricate(:email_log, created_at: 2.years.ago) }
+ fab!(:email_log2) { Fabricate(:email_log, created_at: 2.weeks.ago) }
+ fab!(:email_log3) { Fabricate(:email_log, created_at: 2.days.ago) }
let!(:skipped_email_log) do
Fabricate(:skipped_email_log, created_at: 2.years.ago)
end
- let!(:skipped_email_log2) { Fabricate(:skipped_email_log) }
+ fab!(:skipped_email_log2) { Fabricate(:skipped_email_log) }
it "removes old email logs" do
Jobs::CleanUpEmailLogs.new.execute({})
diff --git a/spec/jobs/clean_up_unused_staged_users_spec.rb b/spec/jobs/clean_up_unused_staged_users_spec.rb
index 9140c765c7..2a8679dcdb 100644
--- a/spec/jobs/clean_up_unused_staged_users_spec.rb
+++ b/spec/jobs/clean_up_unused_staged_users_spec.rb
@@ -3,8 +3,8 @@
require 'rails_helper'
RSpec.describe Jobs::CleanUpUnusedStagedUsers do
- let(:user) { Fabricate(:user) }
- let(:staged_user) { Fabricate(:user, staged: true) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:staged_user) { Fabricate(:user, staged: true) }
context 'when staged user is unused' do
it 'should clean up the staged user' do
diff --git a/spec/jobs/delete_topic_spec.rb b/spec/jobs/delete_topic_spec.rb
index 4acf85d69f..7b420ed344 100644
--- a/spec/jobs/delete_topic_spec.rb
+++ b/spec/jobs/delete_topic_spec.rb
@@ -3,9 +3,9 @@
require 'rails_helper'
describe Jobs::DeleteTopic do
- let(:admin) { Fabricate(:admin) }
+ fab!(:admin) { Fabricate(:admin) }
- let(:topic) do
+ fab!(:topic) do
Fabricate(:topic_timer, user: admin).topic
end
diff --git a/spec/jobs/disable_bootstrap_mode_spec.rb b/spec/jobs/disable_bootstrap_mode_spec.rb
index 46001c3a17..69cb62d9ca 100644
--- a/spec/jobs/disable_bootstrap_mode_spec.rb
+++ b/spec/jobs/disable_bootstrap_mode_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
describe Jobs::DisableBootstrapMode do
context '.execute' do
- let(:admin) { Fabricate(:admin) }
+ fab!(:admin) { Fabricate(:admin) }
before do
SiteSetting.bootstrap_mode_enabled = true
diff --git a/spec/jobs/download_avatar_from_url_spec.rb b/spec/jobs/download_avatar_from_url_spec.rb
index 98785c0c87..b34119e2b4 100644
--- a/spec/jobs/download_avatar_from_url_spec.rb
+++ b/spec/jobs/download_avatar_from_url_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
RSpec.describe Jobs::DownloadAvatarFromUrl do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
describe 'when url is invalid' do
it 'should not raise any error' do
diff --git a/spec/jobs/download_backup_email_spec.rb b/spec/jobs/download_backup_email_spec.rb
index 488db8dbbd..9fe526d7fe 100644
--- a/spec/jobs/download_backup_email_spec.rb
+++ b/spec/jobs/download_backup_email_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
RSpec.describe Jobs::DownloadBackupEmail do
- let(:user) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:admin) }
it "should work" do
described_class.new.execute(
diff --git a/spec/jobs/download_profile_background_from_url_spec.rb b/spec/jobs/download_profile_background_from_url_spec.rb
index ca66a51d36..b28b798e0c 100644
--- a/spec/jobs/download_profile_background_from_url_spec.rb
+++ b/spec/jobs/download_profile_background_from_url_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
RSpec.describe Jobs::DownloadProfileBackgroundFromUrl do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
describe 'when url is invalid' do
it 'should not raise any error' do
diff --git a/spec/jobs/emit_web_hook_event_spec.rb b/spec/jobs/emit_web_hook_event_spec.rb
index 0426e346ca..10ae498c9a 100644
--- a/spec/jobs/emit_web_hook_event_spec.rb
+++ b/spec/jobs/emit_web_hook_event_spec.rb
@@ -4,10 +4,10 @@ require 'rails_helper'
require 'excon'
describe Jobs::EmitWebHookEvent do
- let(:post_hook) { Fabricate(:web_hook) }
- let(:inactive_hook) { Fabricate(:inactive_web_hook) }
- let(:post) { Fabricate(:post) }
- let(:user) { Fabricate(:user) }
+ fab!(:post_hook) { Fabricate(:web_hook) }
+ fab!(:inactive_hook) { Fabricate(:inactive_web_hook) }
+ fab!(:post) { Fabricate(:post) }
+ fab!(:user) { Fabricate(:user) }
it 'raises an error when there is no web hook record' do
expect do
@@ -157,10 +157,10 @@ describe Jobs::EmitWebHookEvent do
end
context 'with category filters' do
- let(:category) { Fabricate(:category) }
- let(:topic) { Fabricate(:topic) }
- let(:topic_with_category) { Fabricate(:topic, category_id: category.id) }
- let(:topic_hook) { Fabricate(:topic_web_hook, categories: [category]) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:topic_with_category) { Fabricate(:topic, category_id: category.id) }
+ fab!(:topic_hook) { Fabricate(:topic_web_hook, categories: [category]) }
it "doesn't emit when event is not related with defined categories" do
subject.execute(
@@ -186,9 +186,9 @@ describe Jobs::EmitWebHookEvent do
end
context 'with tag filters' do
- let(:tag) { Fabricate(:tag) }
- let(:topic) { Fabricate(:topic, tags: [tag]) }
- let(:topic_hook) { Fabricate(:topic_web_hook, tags: [tag]) }
+ fab!(:tag) { Fabricate(:tag) }
+ fab!(:topic) { Fabricate(:topic, tags: [tag]) }
+ fab!(:topic_hook) { Fabricate(:topic_web_hook, tags: [tag]) }
it "doesn't emit when event is not included any tags" do
subject.execute(
diff --git a/spec/jobs/enable_bootstrap_mode_spec.rb b/spec/jobs/enable_bootstrap_mode_spec.rb
index 0562f4ab70..35ef588839 100644
--- a/spec/jobs/enable_bootstrap_mode_spec.rb
+++ b/spec/jobs/enable_bootstrap_mode_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
describe Jobs::EnableBootstrapMode do
context '.execute' do
- let(:admin) { Fabricate(:admin) }
+ fab!(:admin) { Fabricate(:admin) }
before do
SiteSetting.bootstrap_mode_enabled = false
diff --git a/spec/jobs/export_csv_file_spec.rb b/spec/jobs/export_csv_file_spec.rb
index eb076e6d81..615547c086 100644
--- a/spec/jobs/export_csv_file_spec.rb
+++ b/spec/jobs/export_csv_file_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
describe Jobs::ExportCsvFile do
context '.execute' do
- let(:user) { Fabricate(:user, username: "john_doe") }
+ fab!(:user) { Fabricate(:user, username: "john_doe") }
it 'raises an error when the entity is missing' do
expect { Jobs::ExportCsvFile.new.execute(user_id: user.id) }.to raise_error(Discourse::InvalidParameters)
diff --git a/spec/jobs/feature_topic_users_spec.rb b/spec/jobs/feature_topic_users_spec.rb
index 8afc87125c..ac74f37891 100644
--- a/spec/jobs/feature_topic_users_spec.rb
+++ b/spec/jobs/feature_topic_users_spec.rb
@@ -17,8 +17,8 @@ describe Jobs::FeatureTopicUsers do
context 'with a topic' do
let!(:post) { create_post }
let(:topic) { post.topic }
- let!(:coding_horror) { Fabricate(:coding_horror) }
- let!(:evil_trout) { Fabricate(:evil_trout) }
+ fab!(:coding_horror) { Fabricate(:coding_horror) }
+ fab!(:evil_trout) { Fabricate(:evil_trout) }
let!(:second_post) { create_post(topic: topic, user: coding_horror) }
let!(:third_post) { create_post(topic: topic, user: evil_trout) }
diff --git a/spec/jobs/ignored_users_summary_spec.rb b/spec/jobs/ignored_users_summary_spec.rb
index fa41210cfd..b98e6e0dac 100644
--- a/spec/jobs/ignored_users_summary_spec.rb
+++ b/spec/jobs/ignored_users_summary_spec.rb
@@ -20,9 +20,9 @@ describe Jobs::IgnoredUsersSummary do
end
context "when some ignored users exist" do
- let(:tarek) { Fabricate(:user, username: "tarek") }
- let(:matt) { Fabricate(:user, username: "matt") }
- let(:john) { Fabricate(:user, username: "john") }
+ fab!(:tarek) { Fabricate(:user, username: "tarek") }
+ fab!(:matt) { Fabricate(:user, username: "matt") }
+ fab!(:john) { Fabricate(:user, username: "john") }
before do
Fabricate(:ignored_user, user: tarek, ignored_user: matt)
diff --git a/spec/jobs/invalidate_inactive_admins_spec.rb b/spec/jobs/invalidate_inactive_admins_spec.rb
index baf3ce6519..dfae43525b 100644
--- a/spec/jobs/invalidate_inactive_admins_spec.rb
+++ b/spec/jobs/invalidate_inactive_admins_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
require_dependency 'jobs/scheduled/invalidate_inactive_admins'
describe Jobs::InvalidateInactiveAdmins do
- let!(:active_admin) { Fabricate(:admin, last_seen_at: 1.hour.ago) }
+ fab!(:active_admin) { Fabricate(:admin, last_seen_at: 1.hour.ago) }
before { active_admin.email_tokens.update_all(confirmed: true) }
subject { Jobs::InvalidateInactiveAdmins.new.execute({}) }
@@ -18,7 +18,7 @@ describe Jobs::InvalidateInactiveAdmins do
end
context "with an admin who hasn't been seen recently" do
- let!(:not_seen_admin) { Fabricate(:admin, last_seen_at: 370.days.ago) }
+ fab!(:not_seen_admin) { Fabricate(:admin, last_seen_at: 370.days.ago) }
before { not_seen_admin.email_tokens.update_all(confirmed: true) }
context 'invalidate_inactive_admin_email_after_days = 365' do
diff --git a/spec/jobs/invite_email_spec.rb b/spec/jobs/invite_email_spec.rb
index 270123c7f9..726a31600a 100644
--- a/spec/jobs/invite_email_spec.rb
+++ b/spec/jobs/invite_email_spec.rb
@@ -14,7 +14,7 @@ describe Jobs::InviteEmail do
context 'with an invite id' do
let (:mailer) { Mail::Message.new(to: 'eviltrout@test.domain') }
- let (:invite) { Fabricate(:invite) }
+ fab!(:invite) { Fabricate(:invite) }
it 'delegates to the test mailer' do
Email::Sender.any_instance.expects(:send)
diff --git a/spec/jobs/notify_mailing_list_subscribers_spec.rb b/spec/jobs/notify_mailing_list_subscribers_spec.rb
index 506f2b0c46..5f4fb51dd0 100644
--- a/spec/jobs/notify_mailing_list_subscribers_spec.rb
+++ b/spec/jobs/notify_mailing_list_subscribers_spec.rb
@@ -4,12 +4,12 @@ require "rails_helper"
describe Jobs::NotifyMailingListSubscribers do
- let(:mailing_list_user) { Fabricate(:user) }
+ fab!(:mailing_list_user) { Fabricate(:user) }
before { mailing_list_user.user_option.update(mailing_list_mode: true, mailing_list_mode_frequency: 1) }
- let(:user) { Fabricate(:user) }
- let(:post) { Fabricate(:post, user: user) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:post) { Fabricate(:post, user: user) }
shared_examples "no emails" do
it "doesn't send any emails" do
@@ -88,7 +88,7 @@ describe Jobs::NotifyMailingListSubscribers do
end
context "to an anonymous user" do
- let(:mailing_list_user) { Fabricate(:anonymous) }
+ fab!(:mailing_list_user) { Fabricate(:anonymous) }
include_examples "no emails"
end
@@ -195,7 +195,7 @@ describe Jobs::NotifyMailingListSubscribers do
end
context "with a valid post from same user" do
- let(:post) { Fabricate(:post, user: mailing_list_user) }
+ fab!(:post) { Fabricate(:post, user: mailing_list_user) }
context "to an user who has frequency set to 'daily'" do
before { mailing_list_user.user_option.update(mailing_list_mode_frequency: 0) }
diff --git a/spec/jobs/notify_moved_posts_spec.rb b/spec/jobs/notify_moved_posts_spec.rb
index 271fa950f5..68b1e68267 100644
--- a/spec/jobs/notify_moved_posts_spec.rb
+++ b/spec/jobs/notify_moved_posts_spec.rb
@@ -15,10 +15,10 @@ describe Jobs::NotifyMovedPosts do
end
context 'with post ids' do
- let!(:p1) { Fabricate(:post) }
- let!(:p2) { Fabricate(:post, user: Fabricate(:evil_trout), topic: p1.topic) }
- let!(:p3) { Fabricate(:post, user: p1.user, topic: p1.topic) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:p1) { Fabricate(:post) }
+ fab!(:p2) { Fabricate(:post, user: Fabricate(:evil_trout), topic: p1.topic) }
+ fab!(:p3) { Fabricate(:post, user: p1.user, topic: p1.topic) }
+ fab!(:admin) { Fabricate(:admin) }
let(:moved_post_notifications) { Notification.where(notification_type: Notification.types[:moved_post]) }
diff --git a/spec/jobs/notify_reviewable_spec.rb b/spec/jobs/notify_reviewable_spec.rb
index 7ce15536d3..d3d2871e12 100644
--- a/spec/jobs/notify_reviewable_spec.rb
+++ b/spec/jobs/notify_reviewable_spec.rb
@@ -4,9 +4,9 @@ require 'rails_helper'
describe Jobs::NotifyReviewable do
describe '.execute' do
- let!(:admin) { Fabricate(:admin, moderator: true) }
- let!(:moderator) { Fabricate(:moderator) }
- let!(:group_user) { Fabricate(:group_user) }
+ fab!(:admin) { Fabricate(:admin, moderator: true) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:group_user) { Fabricate(:group_user) }
let(:user) { group_user.user }
let(:group) { group_user.group }
diff --git a/spec/jobs/poll_feed_spec.rb b/spec/jobs/poll_feed_spec.rb
index 24b09f7db8..cee8520e0d 100644
--- a/spec/jobs/poll_feed_spec.rb
+++ b/spec/jobs/poll_feed_spec.rb
@@ -46,8 +46,8 @@ describe Jobs::PollFeed do
describe '#poll_feed' do
let(:embed_by_username) { 'eviltrout' }
let(:embed_username_key_from_feed) { 'discourse:username' }
- let!(:default_user) { Fabricate(:evil_trout) }
- let!(:feed_author) { Fabricate(:user, username: 'xrav3nz', email: 'hi@bye.com') }
+ fab!(:default_user) { Fabricate(:evil_trout) }
+ fab!(:feed_author) { Fabricate(:user, username: 'xrav3nz', email: 'hi@bye.com') }
shared_examples 'topic creation based on the the feed' do
describe 'author username parsing' do
diff --git a/spec/jobs/process_post_spec.rb b/spec/jobs/process_post_spec.rb
index 5dd207e239..35794be295 100644
--- a/spec/jobs/process_post_spec.rb
+++ b/spec/jobs/process_post_spec.rb
@@ -11,7 +11,7 @@ describe Jobs::ProcessPost do
context 'with a post' do
- let(:post) { Fabricate(:post) }
+ fab!(:post) { Fabricate(:post) }
it 'does not erase posts when CookedPostProcessor malfunctions' do
# Look kids, an actual reason why you want to use mocks
diff --git a/spec/jobs/publish_topic_to_category_spec.rb b/spec/jobs/publish_topic_to_category_spec.rb
index 27e8a71cbb..4b9a526b12 100644
--- a/spec/jobs/publish_topic_to_category_spec.rb
+++ b/spec/jobs/publish_topic_to_category_spec.rb
@@ -3,8 +3,8 @@
require 'rails_helper'
RSpec.describe Jobs::PublishTopicToCategory do
- let(:category) { Fabricate(:category) }
- let(:another_category) { Fabricate(:category) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:another_category) { Fabricate(:category) }
let(:topic) do
topic = Fabricate(:topic, category: category)
diff --git a/spec/jobs/pull_hotlinked_images_spec.rb b/spec/jobs/pull_hotlinked_images_spec.rb
index f4a65b3850..ba92da9530 100644
--- a/spec/jobs/pull_hotlinked_images_spec.rb
+++ b/spec/jobs/pull_hotlinked_images_spec.rb
@@ -171,7 +171,7 @@ describe Jobs::PullHotlinkedImages do
end
describe "with a lightboxed image" do
- let(:upload) { Fabricate(:upload) }
+ fab!(:upload) { Fabricate(:upload) }
before do
FastImage.expects(:size).returns([1750, 2000])
diff --git a/spec/jobs/purge_expired_ignored_users_spec.rb b/spec/jobs/purge_expired_ignored_users_spec.rb
index 707fe20c52..c49a45bd34 100644
--- a/spec/jobs/purge_expired_ignored_users_spec.rb
+++ b/spec/jobs/purge_expired_ignored_users_spec.rb
@@ -14,9 +14,9 @@ describe Jobs::PurgeExpiredIgnoredUsers do
end
context "when some ignored users exist" do
- let(:tarek) { Fabricate(:user, username: "tarek") }
- let(:matt) { Fabricate(:user, username: "matt") }
- let(:john) { Fabricate(:user, username: "john") }
+ fab!(:tarek) { Fabricate(:user, username: "tarek") }
+ fab!(:matt) { Fabricate(:user, username: "matt") }
+ fab!(:john) { Fabricate(:user, username: "john") }
before do
Fabricate(:ignored_user, user: tarek, ignored_user: matt)
@@ -30,7 +30,7 @@ describe Jobs::PurgeExpiredIgnoredUsers do
end
context "when there are expired ignored users" do
- let(:fred) { Fabricate(:user, username: "fred") }
+ fab!(:fred) { Fabricate(:user, username: "fred") }
it "purges expired ignored users" do
freeze_time(5.months.ago) do
@@ -43,7 +43,7 @@ describe Jobs::PurgeExpiredIgnoredUsers do
end
context "when there are expired ignored users by expiring_at" do
- let(:fred) { Fabricate(:user, username: "fred") }
+ fab!(:fred) { Fabricate(:user, username: "fred") }
it "purges expired ignored users" do
Fabricate(:ignored_user, user: tarek, ignored_user: fred, expiring_at: 1.month.from_now)
diff --git a/spec/jobs/send_system_message_spec.rb b/spec/jobs/send_system_message_spec.rb
index 09f8a5962b..58b7e79516 100644
--- a/spec/jobs/send_system_message_spec.rb
+++ b/spec/jobs/send_system_message_spec.rb
@@ -15,7 +15,7 @@ describe Jobs::SendSystemMessage do
context 'with valid parameters' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it "should call SystemMessage.create" do
SystemMessage.any_instance.expects(:create).with('welcome_invite', {})
diff --git a/spec/jobs/suspicious_login_spec.rb b/spec/jobs/suspicious_login_spec.rb
index 8e1ecef236..e3c9b34c32 100644
--- a/spec/jobs/suspicious_login_spec.rb
+++ b/spec/jobs/suspicious_login_spec.rb
@@ -4,7 +4,7 @@ require 'rails_helper'
describe Jobs::SuspiciousLogin do
- let(:user) { Fabricate(:moderator) }
+ fab!(:user) { Fabricate(:moderator) }
let(:zurich) { { latitude: 47.3686498, longitude: 8.5391825 } } # Zurich, Switzerland
let(:bern) { { latitude: 46.947922, longitude: 7.444608 } } # Bern, Switzerland
diff --git a/spec/jobs/toggle_topic_closed_spec.rb b/spec/jobs/toggle_topic_closed_spec.rb
index f52031ddb7..d903b69345 100644
--- a/spec/jobs/toggle_topic_closed_spec.rb
+++ b/spec/jobs/toggle_topic_closed_spec.rb
@@ -3,9 +3,9 @@
require 'rails_helper'
describe Jobs::ToggleTopicClosed do
- let(:admin) { Fabricate(:admin) }
+ fab!(:admin) { Fabricate(:admin) }
- let(:topic) do
+ fab!(:topic) do
Fabricate(:topic_timer, user: admin).topic
end
@@ -45,8 +45,8 @@ describe Jobs::ToggleTopicClosed do
end
describe 'when category has auto close configured' do
- let(:category) { Fabricate(:category, auto_close_hours: 5) }
- let(:topic) { Fabricate(:topic, category: category, closed: true) }
+ fab!(:category) { Fabricate(:category, auto_close_hours: 5) }
+ fab!(:topic) { Fabricate(:topic, category: category, closed: true) }
it "should restore the category's auto close timer" do
Fabricate(:topic_timer,
@@ -86,7 +86,7 @@ describe Jobs::ToggleTopicClosed do
end
describe 'when user is not authorized to close topics' do
- let(:topic) do
+ fab!(:topic) do
Fabricate(:topic_timer, execute_at: 2.hours.from_now).topic
end
diff --git a/spec/jobs/topic_reminder_spec.rb b/spec/jobs/topic_reminder_spec.rb
index 74e8affa4e..a0c331a889 100644
--- a/spec/jobs/topic_reminder_spec.rb
+++ b/spec/jobs/topic_reminder_spec.rb
@@ -3,9 +3,9 @@
require 'rails_helper'
describe Jobs::TopicReminder do
- let(:admin) { Fabricate(:admin) }
+ fab!(:admin) { Fabricate(:admin) }
- let(:topic) do
+ fab!(:topic) do
Fabricate(:topic_timer,
user: admin,
status_type: TopicTimer.types[:reminder]
diff --git a/spec/jobs/truncate_user_flag_stats_spec.rb b/spec/jobs/truncate_user_flag_stats_spec.rb
index 03e1231424..b7e23fbb8b 100644
--- a/spec/jobs/truncate_user_flag_stats_spec.rb
+++ b/spec/jobs/truncate_user_flag_stats_spec.rb
@@ -3,8 +3,8 @@
require 'rails_helper'
describe Jobs::TruncateUserFlagStats do
- let(:user) { Fabricate(:user) }
- let(:other_user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:other_user) { Fabricate(:user) }
before do
# We might make this a site setting eventually
diff --git a/spec/jobs/user_email_spec.rb b/spec/jobs/user_email_spec.rb
index 8eb2f95394..5615078a92 100644
--- a/spec/jobs/user_email_spec.rb
+++ b/spec/jobs/user_email_spec.rb
@@ -9,10 +9,10 @@ describe Jobs::UserEmail do
SiteSetting.email_time_window_mins = 10
end
- let(:user) { Fabricate(:user, last_seen_at: 11.minutes.ago) }
- let(:staged) { Fabricate(:user, staged: true, last_seen_at: 11.minutes.ago) }
- let(:suspended) { Fabricate(:user, last_seen_at: 10.minutes.ago, suspended_at: 5.minutes.ago, suspended_till: 7.days.from_now) }
- let(:anonymous) { Fabricate(:anonymous, last_seen_at: 11.minutes.ago) }
+ fab!(:user) { Fabricate(:user, last_seen_at: 11.minutes.ago) }
+ fab!(:staged) { Fabricate(:user, staged: true, last_seen_at: 11.minutes.ago) }
+ fab!(:suspended) { Fabricate(:user, last_seen_at: 10.minutes.ago, suspended_at: 5.minutes.ago, suspended_till: 7.days.from_now) }
+ fab!(:anonymous) { Fabricate(:anonymous, last_seen_at: 11.minutes.ago) }
it "raises an error when there is no user" do
expect { Jobs::UserEmail.new.execute(type: :digest) }.to raise_error(Discourse::InvalidParameters)
@@ -27,8 +27,8 @@ describe Jobs::UserEmail do
end
context 'digest can be generated' do
- let(:user) { Fabricate(:user, last_seen_at: 8.days.ago, last_emailed_at: 8.days.ago) }
- let!(:popular_topic) { Fabricate(:topic, user: Fabricate(:admin), created_at: 1.hour.ago) }
+ fab!(:user) { Fabricate(:user, last_seen_at: 8.days.ago, last_emailed_at: 8.days.ago) }
+ fab!(:popular_topic) { Fabricate(:topic, user: Fabricate(:admin), created_at: 1.hour.ago) }
it "doesn't call the mailer when the user is missing" do
Jobs::UserEmail.new.execute(type: :digest, user_id: 1234)
@@ -112,8 +112,8 @@ describe Jobs::UserEmail do
end
context "recently seen" do
- let(:post) { Fabricate(:post, user: user) }
- let(:notification) { Fabricate(
+ fab!(:post) { Fabricate(:post, user: user) }
+ fab!(:notification) { Fabricate(
:notification,
user: user,
topic: post.topic,
@@ -177,7 +177,7 @@ describe Jobs::UserEmail do
end
context "email_log" do
- let(:post) { Fabricate(:post) }
+ fab!(:post) { Fabricate(:post) }
before do
SiteSetting.editing_grace_period = 0
@@ -233,7 +233,7 @@ describe Jobs::UserEmail do
end
context "post" do
- let(:post) { Fabricate(:post, user: user) }
+ fab!(:post) { Fabricate(:post, user: user) }
it "doesn't send the email if you've seen the post" do
PostTiming.record_timing(topic_id: post.topic_id, user_id: user.id, post_number: post.post_number, msecs: 6666)
@@ -307,8 +307,8 @@ describe Jobs::UserEmail do
end
context 'notification' do
- let(:post) { Fabricate(:post, user: user) }
- let!(:notification) {
+ fab!(:post) { Fabricate(:post, user: user) }
+ fab!(:notification) {
Fabricate(:notification,
user: user,
topic: post.topic,
diff --git a/spec/lib/upload_creator_spec.rb b/spec/lib/upload_creator_spec.rb
index d32e7b34f4..1225873778 100644
--- a/spec/lib/upload_creator_spec.rb
+++ b/spec/lib/upload_creator_spec.rb
@@ -4,7 +4,7 @@ require 'rails_helper'
require 'file_store/s3_store'
RSpec.describe UploadCreator do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
describe '#create_for' do
describe 'when upload is not an image' do
diff --git a/spec/lib/upload_recovery_spec.rb b/spec/lib/upload_recovery_spec.rb
index 422baaa609..afcff5025c 100644
--- a/spec/lib/upload_recovery_spec.rb
+++ b/spec/lib/upload_recovery_spec.rb
@@ -4,7 +4,7 @@ require 'rails_helper'
require_dependency "upload_recovery"
RSpec.describe UploadRecovery do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:upload) do
UploadCreator.new(
diff --git a/spec/mailers/invite_mailer_spec.rb b/spec/mailers/invite_mailer_spec.rb
index d760501003..153799424a 100644
--- a/spec/mailers/invite_mailer_spec.rb
+++ b/spec/mailers/invite_mailer_spec.rb
@@ -9,7 +9,7 @@ describe InviteMailer do
context "invite to site" do
context "default invite message" do
- let(:invite) { Fabricate(:invite) }
+ fab!(:invite) { Fabricate(:invite) }
let(:invite_mail) { InviteMailer.send_invite(invite) }
it 'renders the invitee email' do
@@ -38,7 +38,7 @@ describe InviteMailer do
end
context "custom invite message" do
- let(:invite) { Fabricate(:invite, custom_message: "Hey, you should join this forum!") }
+ fab!(:invite) { Fabricate(:invite, custom_message: "Hey, you should join this forum!") }
context "custom message includes invite link" do
let(:custom_invite_mail) { InviteMailer.send_invite(invite) }
diff --git a/spec/mailers/rejection_mailer_spec.rb b/spec/mailers/rejection_mailer_spec.rb
index 51219abafd..7facc91635 100644
--- a/spec/mailers/rejection_mailer_spec.rb
+++ b/spec/mailers/rejection_mailer_spec.rb
@@ -7,7 +7,7 @@ describe RejectionMailer do
describe "send_rejection" do
context 'sends rejection email' do
- let (:user) { Fabricate(:user) }
+ fab! (:user) { Fabricate(:user) }
let (:template_args) { { former_title: "Mail Subject", destination: user.email, site_name: SiteSetting.title } }
let (:reject_mail) { RejectionMailer.send_rejection("email_reject_topic_not_found", user.email, template_args) }
diff --git a/spec/models/api_key_spec.rb b/spec/models/api_key_spec.rb
index 3a3d978c3c..288916e8b9 100644
--- a/spec/models/api_key_spec.rb
+++ b/spec/models/api_key_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
require_dependency 'api_key'
describe ApiKey do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it { is_expected.to belong_to :user }
it { is_expected.to belong_to :created_by }
diff --git a/spec/models/badge_spec.rb b/spec/models/badge_spec.rb
index eefb238ea8..eecd44ad18 100644
--- a/spec/models/badge_spec.rb
+++ b/spec/models/badge_spec.rb
@@ -64,7 +64,7 @@ describe Badge do
end
describe '#manually_grantable?' do
- let(:badge) { Fabricate(:badge, name: 'Test Badge') }
+ fab!(:badge) { Fabricate(:badge, name: 'Test Badge') }
subject { badge.manually_grantable? }
context 'when system badge' do
diff --git a/spec/models/category_featured_topic_spec.rb b/spec/models/category_featured_topic_spec.rb
index bd4f1e0506..0812237863 100644
--- a/spec/models/category_featured_topic_spec.rb
+++ b/spec/models/category_featured_topic_spec.rb
@@ -8,8 +8,8 @@ describe CategoryFeaturedTopic do
it { is_expected.to belong_to :topic }
context 'feature_topics_for' do
- let(:user) { Fabricate(:user) }
- let(:category) { Fabricate(:category) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:category) { Fabricate(:category) }
let!(:category_post) { PostCreator.create(user, raw: "I put this post in the category", title: "categorize THIS", category: category.id) }
it "works in batched mode" do
diff --git a/spec/models/category_list_spec.rb b/spec/models/category_list_spec.rb
index 108e09b4a1..a3b5bf3b95 100644
--- a/spec/models/category_list_spec.rb
+++ b/spec/models/category_list_spec.rb
@@ -5,8 +5,8 @@ require 'category_list'
describe CategoryList do
- let(:user) { Fabricate(:user) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
let(:category_list) { CategoryList.new(Guardian.new(user), include_topics: true) }
context "security" do
@@ -63,10 +63,10 @@ describe CategoryList do
context "with a category" do
- let!(:topic_category) { Fabricate(:category, num_featured_topics: 2) }
+ fab!(:topic_category) { Fabricate(:category, num_featured_topics: 2) }
context "with a topic in a category" do
- let!(:topic) { Fabricate(:topic, category: topic_category) }
+ fab!(:topic) { Fabricate(:topic, category: topic_category) }
let(:category) { category_list.categories.find { |c| c.id == topic_category.id } }
it "should return the category" do
@@ -77,10 +77,10 @@ describe CategoryList do
end
context "with pinned topics in a category" do
- let!(:topic1) { Fabricate(:topic, category: topic_category, bumped_at: 8.minutes.ago) }
- let!(:topic2) { Fabricate(:topic, category: topic_category, bumped_at: 5.minutes.ago) }
- let!(:topic3) { Fabricate(:topic, category: topic_category, bumped_at: 2.minutes.ago) }
- let!(:pinned) { Fabricate(:topic, category: topic_category, pinned_at: 10.minutes.ago, bumped_at: 10.minutes.ago) }
+ fab!(:topic1) { Fabricate(:topic, category: topic_category, bumped_at: 8.minutes.ago) }
+ fab!(:topic2) { Fabricate(:topic, category: topic_category, bumped_at: 5.minutes.ago) }
+ fab!(:topic3) { Fabricate(:topic, category: topic_category, bumped_at: 2.minutes.ago) }
+ fab!(:pinned) { Fabricate(:topic, category: topic_category, pinned_at: 10.minutes.ago, bumped_at: 10.minutes.ago) }
let(:category) { category_list.categories.find { |c| c.id == topic_category.id } }
it "returns pinned topic first" do
diff --git a/spec/models/category_spec.rb b/spec/models/category_spec.rb
index 9ff217b4de..c176b46161 100644
--- a/spec/models/category_spec.rb
+++ b/spec/models/category_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
require_dependency 'post_creator'
describe Category do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it { is_expected.to validate_presence_of :user_id }
it { is_expected.to validate_presence_of :name }
@@ -151,10 +151,10 @@ describe Category do
end
describe "security" do
- let(:category) { Fabricate(:category) }
- let(:category_2) { Fabricate(:category) }
- let(:user) { Fabricate(:user) }
- let(:group) { Fabricate(:group) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:category_2) { Fabricate(:category) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:group) { Fabricate(:group) }
it "secures categories correctly" do
expect(category.read_restricted?).to be false
@@ -220,7 +220,7 @@ describe Category do
end
describe "short name" do
- let!(:category) { Fabricate(:category, name: 'xx') }
+ fab!(:category) { Fabricate(:category, name: 'xx') }
it "creates the category" do
expect(category).to be_present
@@ -615,14 +615,14 @@ describe Category do
end
describe "#url_with_id" do
- let(:category) { Fabricate(:category, name: 'cats') }
+ fab!(:category) { Fabricate(:category, name: 'cats') }
it "includes the id in the URL" do
expect(category.url_with_id).to eq("/c/#{category.id}-cats")
end
context "child category" do
- let(:child_category) { Fabricate(:category, parent_category_id: category.id, name: 'dogs') }
+ fab!(:child_category) { Fabricate(:category, parent_category_id: category.id, name: 'dogs') }
it "includes the id in the URL" do
expect(child_category.url_with_id).to eq("/c/cats/dogs/#{child_category.id}")
@@ -644,8 +644,8 @@ describe Category do
end
describe "parent categories" do
- let(:user) { Fabricate(:user) }
- let(:parent_category) { Fabricate(:category, user: user) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:parent_category) { Fabricate(:category, user: user) }
it "can be associated with a parent category" do
sub_category = Fabricate.build(:category, parent_category_id: parent_category.id, user: user)
@@ -705,7 +705,7 @@ describe Category do
end
describe "validate email_in" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it "works with a valid email" do
expect(Category.new(name: 'test', user: user, email_in: 'test@example.com').valid?).to eq(true)
@@ -718,7 +718,7 @@ describe Category do
end
context "with a duplicate email in a group" do
- let(:group) { Fabricate(:group, name: 'testgroup', incoming_email: 'test@example.com') }
+ fab!(:group) { Fabricate(:group, name: 'testgroup', incoming_email: 'test@example.com') }
it "adds an error with an invalid email" do
category = Category.new(name: 'test', user: user, email_in: group.incoming_email)
@@ -727,7 +727,7 @@ describe Category do
end
context "with duplicate email in a category" do
- let!(:category) { Fabricate(:category, user: user, name: 'cool', email_in: 'test@example.com') }
+ fab!(:category) { Fabricate(:category, user: user, name: 'cool', email_in: 'test@example.com') }
it "adds an error with an invalid email" do
category = Category.new(name: 'test', user: user, email_in: "test@example.com")
@@ -739,7 +739,7 @@ describe Category do
end
describe 'require topic/post approval' do
- let(:category) { Fabricate(:category) }
+ fab!(:category) { Fabricate(:category) }
describe '#require_topic_approval?' do
before do
@@ -818,12 +818,12 @@ describe Category do
end
describe "validate permissions compatibility" do
- let(:admin) { Fabricate(:admin) }
- let(:group) { Fabricate(:group) }
- let(:group2) { Fabricate(:group) }
- let(:parent_category) { Fabricate(:category, name: "parent") }
- let(:subcategory) { Fabricate(:category, name: "child1", parent_category_id: parent_category.id) }
- let(:subcategory2) { Fabricate(:category, name: "child2", parent_category_id: parent_category.id) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:group) { Fabricate(:group) }
+ fab!(:group2) { Fabricate(:group) }
+ fab!(:parent_category) { Fabricate(:category, name: "parent") }
+ fab!(:subcategory) { Fabricate(:category, name: "child1", parent_category_id: parent_category.id) }
+ fab!(:subcategory2) { Fabricate(:category, name: "child2", parent_category_id: parent_category.id) }
context "when changing subcategory permissions" do
it "it is not valid if permissions are less restrictive" do
diff --git a/spec/models/discourse_single_sign_on_spec.rb b/spec/models/discourse_single_sign_on_spec.rb
index 6787866f1d..3bf8128bf3 100644
--- a/spec/models/discourse_single_sign_on_spec.rb
+++ b/spec/models/discourse_single_sign_on_spec.rb
@@ -606,7 +606,7 @@ describe DiscourseSingleSignOn do
end
context 'when sso_overrides_avatar is enabled' do
- let!(:sso_record) { Fabricate(:single_sign_on_record, external_avatar_url: "http://example.com/an_image.png") }
+ fab!(:sso_record) { Fabricate(:single_sign_on_record, external_avatar_url: "http://example.com/an_image.png") }
let!(:sso) {
sso = DiscourseSingleSignOn.new
@@ -686,7 +686,7 @@ describe DiscourseSingleSignOn do
end
context 'when sso_overrides_profile_background is enabled' do
- let!(:sso_record) { Fabricate(:single_sign_on_record, external_profile_background_url: "http://example.com/an_image.png") }
+ fab!(:sso_record) { Fabricate(:single_sign_on_record, external_profile_background_url: "http://example.com/an_image.png") }
let!(:sso) {
sso = DiscourseSingleSignOn.new
@@ -758,7 +758,7 @@ describe DiscourseSingleSignOn do
end
context 'when sso_overrides_card_background is enabled' do
- let!(:sso_record) { Fabricate(:single_sign_on_record, external_card_background_url: "http://example.com/an_image.png") }
+ fab!(:sso_record) { Fabricate(:single_sign_on_record, external_card_background_url: "http://example.com/an_image.png") }
let!(:sso) {
sso = DiscourseSingleSignOn.new
diff --git a/spec/models/draft_sequence_spec.rb b/spec/models/draft_sequence_spec.rb
index 92ce3d298c..5147f46a7c 100644
--- a/spec/models/draft_sequence_spec.rb
+++ b/spec/models/draft_sequence_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
describe DraftSequence do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it 'should produce next sequence for a key' do
expect(DraftSequence.next!(user, 'test')).to eq 1
diff --git a/spec/models/draft_spec.rb b/spec/models/draft_spec.rb
index d10d132ef5..2cdf5fa5d4 100644
--- a/spec/models/draft_spec.rb
+++ b/spec/models/draft_spec.rb
@@ -67,7 +67,7 @@ describe Draft do
end
describe '#stream' do
- let(:public_post) { Fabricate(:post) }
+ fab!(:public_post) { Fabricate(:post) }
let(:public_topic) { public_post.topic }
let(:stream) do
diff --git a/spec/models/email_log_spec.rb b/spec/models/email_log_spec.rb
index 806648e944..e77c8ad9c6 100644
--- a/spec/models/email_log_spec.rb
+++ b/spec/models/email_log_spec.rb
@@ -8,7 +8,7 @@ describe EmailLog do
it { is_expected.to validate_presence_of :to_address }
it { is_expected.to validate_presence_of :email_type }
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
context 'unique email per post' do
it 'only allows through one email per post' do
diff --git a/spec/models/email_token_spec.rb b/spec/models/email_token_spec.rb
index 29f7f90825..50df6b1004 100644
--- a/spec/models/email_token_spec.rb
+++ b/spec/models/email_token_spec.rb
@@ -9,7 +9,7 @@ describe EmailToken do
it { is_expected.to belong_to :user }
context '#create' do
- let(:user) { Fabricate(:user, active: false) }
+ fab!(:user) { Fabricate(:user, active: false) }
let!(:original_token) { user.email_tokens.first }
let!(:email_token) { user.email_tokens.create(email: 'bubblegum@adevnturetime.ooo') }
@@ -46,7 +46,7 @@ describe EmailToken do
context '#confirm' do
- let(:user) { Fabricate(:user, active: false) }
+ fab!(:user) { Fabricate(:user, active: false) }
let(:email_token) { user.email_tokens.first }
it 'returns nil with a nil token' do
@@ -122,8 +122,8 @@ describe EmailToken do
Jobs.run_immediately!
end
- let(:invite) { Fabricate(:invite, email: 'test@example.com', user_id: nil) }
- let(:invited_user) { Fabricate(:user, active: false, email: invite.email) }
+ fab!(:invite) { Fabricate(:invite, email: 'test@example.com', user_id: nil) }
+ fab!(:invited_user) { Fabricate(:user, active: false, email: invite.email) }
let(:user_email_token) { invited_user.email_tokens.first }
let!(:confirmed_invited_user) { EmailToken.confirm(user_email_token.token) }
diff --git a/spec/models/embeddable_host_spec.rb b/spec/models/embeddable_host_spec.rb
index 13fa4f019b..bdcc060be3 100644
--- a/spec/models/embeddable_host_spec.rb
+++ b/spec/models/embeddable_host_spec.rb
@@ -58,7 +58,7 @@ describe EmbeddableHost do
end
describe "it works with ports" do
- let!(:host) { Fabricate(:embeddable_host, host: 'localhost:8000') }
+ fab!(:host) { Fabricate(:embeddable_host, host: 'localhost:8000') }
it "works as expected" do
expect(EmbeddableHost.url_allowed?('http://localhost:8000/eviltrout')).to eq(true)
@@ -66,7 +66,7 @@ describe EmbeddableHost do
end
describe "url_allowed?" do
- let!(:host) { Fabricate(:embeddable_host) }
+ fab!(:host) { Fabricate(:embeddable_host) }
it 'works as expected' do
expect(EmbeddableHost.url_allowed?('http://eviltrout.com')).to eq(true)
diff --git a/spec/models/given_daily_like_spec.rb b/spec/models/given_daily_like_spec.rb
index 01c5d6a4de..7c0d0e81a2 100644
--- a/spec/models/given_daily_like_spec.rb
+++ b/spec/models/given_daily_like_spec.rb
@@ -10,7 +10,7 @@ describe GivenDailyLike do
end
context 'with a user' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
def value_for(user_id, date)
GivenDailyLike.find_for(user_id, date).pluck(:likes_given)[0] || 0
diff --git a/spec/models/group_history_spec.rb b/spec/models/group_history_spec.rb
index dafa616247..39898bc2fa 100644
--- a/spec/models/group_history_spec.rb
+++ b/spec/models/group_history_spec.rb
@@ -3,7 +3,7 @@
require 'rails_helper'
RSpec.describe GroupHistory do
- let(:group_history) { Fabricate(:group_history) }
+ fab!(:group_history) { Fabricate(:group_history) }
let(:other_group_history) do
Fabricate(:group_history,
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb
index 1981efec4a..aabb0389bc 100644
--- a/spec/models/group_spec.rb
+++ b/spec/models/group_spec.rb
@@ -438,8 +438,8 @@ describe Group do
end
describe 'destroy' do
- let(:user) { Fabricate(:user) }
- let(:group) { Fabricate(:group, users: [user]) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:group) { Fabricate(:group, users: [user]) }
before do
group.add(user)
@@ -516,7 +516,7 @@ describe Group do
end
context "group management" do
- let(:group) { Fabricate(:group) }
+ fab!(:group) { Fabricate(:group) }
it "by default has no managers" do
expect(group.group_users.where('group_users.owner')).to be_empty
@@ -552,15 +552,15 @@ describe Group do
end
describe 'when a user has qualified for trust level 1' do
- let(:user) do
+ fab!(:user) do
Fabricate(:user,
trust_level: 1,
created_at: Time.zone.now - 10.years
)
end
- let(:group) { Fabricate(:group, grant_trust_level: 1) }
- let(:group2) { Fabricate(:group, grant_trust_level: 0) }
+ fab!(:group) { Fabricate(:group, grant_trust_level: 1) }
+ fab!(:group2) { Fabricate(:group, grant_trust_level: 0) }
before do
user.user_stat.update!(
@@ -726,7 +726,7 @@ describe Group do
end
context 'when adding a user into a public group' do
- let(:category) { Fabricate(:category) }
+ fab!(:category) { Fabricate(:category) }
it "should publish the group's categories to the client" do
group.update!(public_admission: true, categories: [category])
@@ -755,7 +755,7 @@ describe Group do
end
describe '.search_groups' do
- let(:group) { Fabricate(:group, name: 'tEsT_more_things', full_name: 'Abc something awesome') }
+ fab!(:group) { Fabricate(:group, name: 'tEsT_more_things', full_name: 'Abc something awesome') }
it 'should return the right groups' do
group
diff --git a/spec/models/incoming_link_spec.rb b/spec/models/incoming_link_spec.rb
index ad1dad561c..d913ea9922 100644
--- a/spec/models/incoming_link_spec.rb
+++ b/spec/models/incoming_link_spec.rb
@@ -4,9 +4,9 @@ require 'rails_helper'
describe IncomingLink do
- let(:sharing_user) { Fabricate(:user, name: 'Alice') }
- let(:current_user) { Fabricate(:user, name: 'Bob') }
- let(:post) { Fabricate(:post) }
+ fab!(:sharing_user) { Fabricate(:user, name: 'Alice') }
+ fab!(:current_user) { Fabricate(:user, name: 'Bob') }
+ fab!(:post) { Fabricate(:post) }
let(:topic) { post.topic }
let :incoming_link do
diff --git a/spec/models/incoming_links_report_spec.rb b/spec/models/incoming_links_report_spec.rb
index d2ae9230b3..12365ac5e1 100644
--- a/spec/models/incoming_links_report_spec.rb
+++ b/spec/models/incoming_links_report_spec.rb
@@ -123,10 +123,10 @@ describe IncomingLinksReport do
describe 'top_referrers' do
subject(:top_referrers) { IncomingLinksReport.find('top_referrers').as_json }
- let(:amy) { Fabricate(:user, username: 'amy') }
- let(:bob) { Fabricate(:user, username: 'bob') }
- let(:post1) { Fabricate(:post) }
- let(:post2) { Fabricate(:post) }
+ fab!(:amy) { Fabricate(:user, username: 'amy') }
+ fab!(:bob) { Fabricate(:user, username: 'bob') }
+ fab!(:post1) { Fabricate(:post) }
+ fab!(:post2) { Fabricate(:post) }
let(:topic1) { post1.topic }
let(:topic2) { post2.topic }
diff --git a/spec/models/invite_redeemer_spec.rb b/spec/models/invite_redeemer_spec.rb
index 33987f1f2c..b370d92deb 100644
--- a/spec/models/invite_redeemer_spec.rb
+++ b/spec/models/invite_redeemer_spec.rb
@@ -50,7 +50,7 @@ describe InviteRedeemer do
end
describe "#redeem" do
- let(:invite) { Fabricate(:invite) }
+ fab!(:invite) { Fabricate(:invite) }
let(:name) { 'john snow' }
let(:username) { 'kingofthenorth' }
let(:password) { 'know5nOthiNG' }
diff --git a/spec/models/invite_spec.rb b/spec/models/invite_spec.rb
index 3b91bf50b8..678b87ede4 100644
--- a/spec/models/invite_spec.rb
+++ b/spec/models/invite_spec.rb
@@ -11,8 +11,8 @@ describe Invite do
let(:iceking) { 'iceking@adventuretime.ooo' }
context 'user validators' do
- let(:coding_horror) { Fabricate(:coding_horror) }
- let(:user) { Fabricate(:user) }
+ fab!(:coding_horror) { Fabricate(:coding_horror) }
+ fab!(:user) { Fabricate(:user) }
let(:invite) { Invite.create(email: user.email, invited_by: coding_horror) }
it "should not allow an invite with the same email as an existing user" do
@@ -26,7 +26,7 @@ describe Invite do
end
context 'email validators' do
- let(:coding_horror) { Fabricate(:coding_horror) }
+ fab!(:coding_horror) { Fabricate(:coding_horror) }
it "should not allow an invite with unformatted email address" do
expect {
@@ -62,7 +62,7 @@ describe Invite do
end
context 'to a topic' do
- let!(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
let(:inviter) { topic.user }
context 'email' do
@@ -141,7 +141,7 @@ describe Invite do
end
context 'when adding to another topic' do
- let!(:another_topic) { Fabricate(:topic, user: topic.user) }
+ fab!(:another_topic) { Fabricate(:topic, user: topic.user) }
it 'should be the same invite' do
new_invite = Invite.invite_by_email(iceking, inviter, another_topic)
@@ -176,8 +176,8 @@ describe Invite do
end
context 'an existing user' do
- let(:topic) { Fabricate(:topic, category_id: nil, archetype: 'private_message') }
- let(:coding_horror) { Fabricate(:coding_horror) }
+ fab!(:topic) { Fabricate(:topic, category_id: nil, archetype: 'private_message') }
+ fab!(:coding_horror) { Fabricate(:coding_horror) }
it "works" do
expect do
@@ -199,7 +199,7 @@ describe Invite do
context '.redeem' do
- let(:invite) { Fabricate(:invite) }
+ let!(:invite) { Fabricate(:invite) }
it 'creates a notification for the invitee' do
expect { invite.redeem }.to change(Notification, :count)
@@ -222,7 +222,7 @@ describe Invite do
end
context "deletes duplicate invites" do
- let(:another_user) { Fabricate(:user) }
+ fab!(:another_user) { Fabricate(:user) }
it 'delete duplicate invite' do
another_invite = Fabricate(:invite, email: invite.email, invited_by: another_user)
@@ -319,8 +319,8 @@ describe Invite do
end
context 'invited to topics' do
- let(:tl2_user) { Fabricate(:user, trust_level: 2) }
- let!(:topic) { Fabricate(:private_message_topic, user: tl2_user) }
+ fab!(:tl2_user) { Fabricate(:user, trust_level: 2) }
+ fab!(:topic) { Fabricate(:private_message_topic, user: tl2_user) }
let!(:invite) do
topic.invite(topic.user, 'jake@adventuretime.ooo')
@@ -337,7 +337,7 @@ describe Invite do
end
context 'invited by another user to the same topic' do
- let(:another_tl2_user) { Fabricate(:user, trust_level: 2) }
+ fab!(:another_tl2_user) { Fabricate(:user, trust_level: 2) }
let!(:another_invite) { topic.invite(another_tl2_user, 'jake@adventuretime.ooo') }
let!(:user) { invite.redeem }
@@ -349,8 +349,8 @@ describe Invite do
context 'invited by another user to a different topic' do
let!(:user) { invite.redeem }
- let(:another_tl2_user) { Fabricate(:user, trust_level: 2) }
- let(:another_topic) { Fabricate(:topic, user: another_tl2_user) }
+ fab!(:another_tl2_user) { Fabricate(:user, trust_level: 2) }
+ fab!(:another_topic) { Fabricate(:topic, user: another_tl2_user) }
it 'adds the user to the topic_users of the first topic' do
expect(another_topic.invite(another_tl2_user, user.username)).to be_truthy # invited via username
@@ -461,9 +461,9 @@ describe Invite do
end
describe '.redeem_from_email' do
- let(:inviter) { Fabricate(:user) }
- let(:invite) { Fabricate(:invite, invited_by: inviter, email: 'test@example.com', user_id: nil) }
- let(:user) { Fabricate(:user, email: invite.email) }
+ fab!(:inviter) { Fabricate(:user) }
+ fab!(:invite) { Fabricate(:invite, invited_by: inviter, email: 'test@example.com', user_id: nil) }
+ fab!(:user) { Fabricate(:user, email: invite.email) }
it 'redeems the invite from email' do
Invite.redeem_from_email(user.email)
diff --git a/spec/models/javascript_cache_spec.rb b/spec/models/javascript_cache_spec.rb
index 28b06a2ea8..73fa7241e4 100644
--- a/spec/models/javascript_cache_spec.rb
+++ b/spec/models/javascript_cache_spec.rb
@@ -2,7 +2,7 @@
require 'rails_helper'
RSpec.describe JavascriptCache, type: :model do
- let(:theme) { Fabricate(:theme) }
+ let!(:theme) { Fabricate(:theme) }
let(:theme_field) { ThemeField.create!(theme: theme, target_id: 0, name: "header", value: "html") }
describe '#save' do
diff --git a/spec/models/post_action_spec.rb b/spec/models/post_action_spec.rb
index 29bd1a9b81..7b57be3e91 100644
--- a/spec/models/post_action_spec.rb
+++ b/spec/models/post_action_spec.rb
@@ -5,12 +5,12 @@ require 'rails_helper'
describe PostAction do
it { is_expected.to rate_limit }
- let(:moderator) { Fabricate(:moderator) }
- let(:codinghorror) { Fabricate(:coding_horror) }
- let(:eviltrout) { Fabricate(:evil_trout) }
- let(:admin) { Fabricate(:admin) }
- let(:post) { Fabricate(:post) }
- let(:second_post) { Fabricate(:post, topic: post.topic) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:codinghorror) { Fabricate(:coding_horror) }
+ fab!(:eviltrout) { Fabricate(:evil_trout) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:post) { Fabricate(:post) }
+ fab!(:second_post) { Fabricate(:post, topic: post.topic) }
let(:bookmark) { PostAction.new(user_id: post.user_id, post_action_type_id: PostActionType.types[:bookmark] , post_id: post.id) }
def value_for(user_id, dt)
@@ -258,9 +258,9 @@ describe PostAction do
end
describe 'likes consolidation' do
- let(:liker) { Fabricate(:user) }
- let(:liker2) { Fabricate(:user) }
- let(:likee) { Fabricate(:user) }
+ fab!(:liker) { Fabricate(:user) }
+ fab!(:liker2) { Fabricate(:user) }
+ fab!(:likee) { Fabricate(:user) }
it "can be disabled" do
SiteSetting.likes_notification_consolidation_threshold = 0
@@ -698,13 +698,13 @@ describe PostAction do
end
context "topic auto closing" do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
let(:post1) { create_post(topic: topic) }
let(:post2) { create_post(topic: topic) }
let(:post3) { create_post(topic: topic) }
- let(:flagger1) { Fabricate(:user) }
- let(:flagger2) { Fabricate(:user) }
+ fab!(:flagger1) { Fabricate(:user) }
+ fab!(:flagger2) { Fabricate(:user) }
before do
SiteSetting.score_required_to_hide_post = 0
@@ -751,8 +751,8 @@ describe PostAction do
end
context "on a staff post" do
- let(:staff_user) { Fabricate(:user, moderator: true) }
- let(:topic) { Fabricate(:topic, user: staff_user) }
+ fab!(:staff_user) { Fabricate(:user, moderator: true) }
+ fab!(:topic) { Fabricate(:topic, user: staff_user) }
it "will not close topics opened by staff" do
[flagger1, flagger2].each do |flagger|
@@ -987,7 +987,7 @@ describe PostAction do
end
describe "triggers Discourse events" do
- let(:post) { Fabricate(:post) }
+ fab!(:post) { Fabricate(:post) }
it 'triggers a flag_created event' do
event = DiscourseEvent.track(:flag_created) { PostActionCreator.spam(eviltrout, post) }
diff --git a/spec/models/post_mover_spec.rb b/spec/models/post_mover_spec.rb
index 5d68a5db97..7f7406b224 100644
--- a/spec/models/post_mover_spec.rb
+++ b/spec/models/post_mover_spec.rb
@@ -22,8 +22,8 @@ describe PostMover do
describe 'move_posts' do
context 'topics' do
- let(:user) { Fabricate(:user, admin: true) }
- let(:another_user) { Fabricate(:evil_trout) }
+ fab!(:user) { Fabricate(:user, admin: true) }
+ fab!(:another_user) { Fabricate(:evil_trout) }
let(:category) { Fabricate(:category, user: user) }
let!(:topic) { Fabricate(:topic, user: user) }
let!(:p1) { Fabricate(:post, topic: topic, user: user, created_at: 3.hours.ago) }
@@ -38,7 +38,7 @@ describe PostMover do
let!(:p3) { Fabricate(:post, topic: topic, reply_to_post_number: p1.post_number, user: user) }
let!(:p4) { Fabricate(:post, topic: topic, reply_to_post_number: p2.post_number, user: user) }
- let!(:p5) { Fabricate(:post) }
+ fab!(:p5) { Fabricate(:post) }
let(:p6) { Fabricate(:post, topic: topic) }
before do
@@ -554,12 +554,12 @@ describe PostMover do
end
context 'messages' do
- let(:user) { Fabricate(:user) }
- let(:admin) { Fabricate(:admin) }
- let(:evil_trout) { Fabricate(:evil_trout) }
- let(:another_user) { Fabricate(:user) }
- let(:regular_user) { Fabricate(:trust_level_4) }
- let(:topic) { Fabricate(:topic) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:evil_trout) { Fabricate(:evil_trout) }
+ fab!(:another_user) { Fabricate(:user) }
+ fab!(:regular_user) { Fabricate(:trust_level_4) }
+ fab!(:topic) { Fabricate(:topic) }
let(:personal_message) { Fabricate(:private_message_topic, user: evil_trout) }
let!(:p1) { Fabricate(:post, topic: personal_message, user: user) }
let!(:p2) { Fabricate(:post, topic: personal_message, reply_to_post_number: p1.post_number, user: another_user) }
@@ -682,10 +682,10 @@ describe PostMover do
end
context 'banner topic' do
- let(:admin) { Fabricate(:admin) }
- let(:evil_trout) { Fabricate(:evil_trout) }
- let(:regular_user) { Fabricate(:trust_level_4) }
- let(:topic) { Fabricate(:topic) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:evil_trout) { Fabricate(:evil_trout) }
+ fab!(:regular_user) { Fabricate(:trust_level_4) }
+ fab!(:topic) { Fabricate(:topic) }
let(:personal_message) { Fabricate(:private_message_topic, user: regular_user) }
let(:banner_topic) { Fabricate(:banner_topic, user: evil_trout) }
let!(:p1) { Fabricate(:post, topic: banner_topic, user: evil_trout) }
diff --git a/spec/models/post_reply_spec.rb b/spec/models/post_reply_spec.rb
index f4a1b30e07..9f808f5dc2 100644
--- a/spec/models/post_reply_spec.rb
+++ b/spec/models/post_reply_spec.rb
@@ -3,9 +3,9 @@
require 'rails_helper'
describe PostReply do
- let(:topic) { Fabricate(:topic) }
- let(:post) { Fabricate(:post, topic: topic) }
- let(:other_post) { Fabricate(:post, topic: topic) }
+ fab!(:topic) { Fabricate(:topic) }
+ fab!(:post) { Fabricate(:post, topic: topic) }
+ fab!(:other_post) { Fabricate(:post, topic: topic) }
it { is_expected.to belong_to :post }
it { is_expected.to belong_to :reply }
diff --git a/spec/models/post_spec.rb b/spec/models/post_spec.rb
index be6cfeff40..b6edeb6bf0 100644
--- a/spec/models/post_spec.rb
+++ b/spec/models/post_spec.rb
@@ -155,9 +155,9 @@ describe Post do
end
describe 'flagging helpers' do
- let(:post) { Fabricate(:post) }
- let(:user) { Fabricate(:coding_horror) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:post) { Fabricate(:post) }
+ fab!(:user) { Fabricate(:coding_horror) }
+ fab!(:admin) { Fabricate(:admin) }
it 'is_flagged? is accurate' do
PostActionCreator.off_topic(user, post)
@@ -197,7 +197,7 @@ describe Post do
end
describe "maximum images" do
- let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
+ fab!(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
let(:post_no_images) { Fabricate.build(:post, post_args.merge(user: newuser)) }
let(:post_one_image) { post_with_body("", newuser) }
let(:post_two_images) { post_with_body("
", newuser) }
@@ -311,7 +311,7 @@ describe Post do
end
describe "maximum attachments" do
- let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
+ fab!(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
let(:post_no_attachments) { Fabricate.build(:post, post_args.merge(user: newuser)) }
let(:post_one_attachment) { post_with_body('file.txt', newuser) }
let(:post_two_attachments) { post_with_body('errors.log model.3ds', newuser) }
@@ -359,7 +359,7 @@ describe Post do
end
context "links" do
- let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
+ fab!(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
let(:no_links) { post_with_body("hello world my name is evil trout", newuser) }
let(:one_link) { post_with_body("[jlawr](http://www.imdb.com/name/nm2225369)", newuser) }
let(:two_links) { post_with_body("disney reddit", newuser) }
@@ -423,7 +423,7 @@ describe Post do
end
describe "maximums" do
- let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
+ fab!(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
let(:post_one_link) { post_with_body("[sherlock](http://www.bbc.co.uk/programmes/b018ttws)", newuser) }
let(:post_onebox) { post_with_body("http://www.google.com", newuser) }
let(:post_code_link) { post_with_body("http://www.google.com", newuser) }
@@ -548,7 +548,7 @@ describe Post do
context "max mentions" do
- let(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
+ fab!(:newuser) { Fabricate(:user, trust_level: TrustLevel[0]) }
let(:post_with_one_mention) { post_with_body("@Jake is the person I'm mentioning", newuser) }
let(:post_with_two_mentions) { post_with_body("@Jake @Finn are the people I'm mentioning", newuser) }
@@ -787,7 +787,7 @@ describe Post do
describe 'a new reply' do
- let(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
let(:other_user) { Fabricate(:coding_horror) }
let(:reply_text) { "[quote=\"Evil Trout, post:1\"]\nhello\n[/quote]\nHmmm!" }
let!(:post) { PostCreator.new(topic.user, raw: Fabricate.build(:post).raw, topic_id: topic.id).create }
@@ -844,7 +844,7 @@ describe Post do
let!(:p1) { Fabricate(:post, post_args.merge(score: 4, percent_rank: 0.33)) }
let!(:p2) { Fabricate(:post, post_args.merge(score: 10, percent_rank: 0.66)) }
let!(:p3) { Fabricate(:post, post_args.merge(score: 5, percent_rank: 0.99)) }
- let!(:p4) { Fabricate(:post, percent_rank: 0.99) }
+ fab!(:p4) { Fabricate(:post, percent_rank: 0.99) }
it "returns the OP and posts above the threshold in summary mode" do
SiteSetting.summary_percent_filter = 66
@@ -884,7 +884,7 @@ describe Post do
context "reply_ids" do
- let!(:topic) { Fabricate(:topic) }
+ fab!(:topic) { Fabricate(:topic) }
let!(:p1) { Fabricate(:post, topic: topic, post_number: 1) }
let!(:p2) { Fabricate(:post, topic: topic, post_number: 2, reply_to_post_number: 1) }
let!(:p3) { Fabricate(:post, topic: topic, post_number: 3) }
@@ -983,7 +983,7 @@ describe Post do
end
describe 'mentions' do
- let(:group) do
+ fab!(:group) do
Fabricate(:group,
mentionable_level: Group::ALIAS_LEVELS[:members_mods_and_admins]
)
@@ -1110,8 +1110,8 @@ describe Post do
end
describe "#set_owner" do
- let(:post) { Fabricate(:post) }
- let(:coding_horror) { Fabricate(:coding_horror) }
+ fab!(:post) { Fabricate(:post) }
+ fab!(:coding_horror) { Fabricate(:coding_horror) }
it "will change owner of a post correctly" do
post.set_owner(coding_horror, Discourse.system_user)
@@ -1229,25 +1229,25 @@ describe Post do
end
describe '#link_post_uploads' do
- let(:video_upload) do
+ fab!(:video_upload) do
Fabricate(:upload,
url: '/uploads/default/original/1X/1/1234567890123456.mp4'
)
end
- let(:image_upload) do
+ fab!(:image_upload) do
Fabricate(:upload,
url: '/uploads/default/original/1X/1/1234567890123456.jpg'
)
end
- let(:audio_upload) do
+ fab!(:audio_upload) do
Fabricate(:upload,
url: '/uploads/default/original/1X/1/1234567890123456.ogg'
)
end
- let(:attachment_upload) do
+ fab!(:attachment_upload) do
Fabricate(:upload,
url: '/uploads/default/original/1X/1/1234567890123456.csv'
)
diff --git a/spec/models/post_timing_spec.rb b/spec/models/post_timing_spec.rb
index dc52290f78..9700484312 100644
--- a/spec/models/post_timing_spec.rb
+++ b/spec/models/post_timing_spec.rb
@@ -8,9 +8,9 @@ describe PostTiming do
it { is_expected.to validate_presence_of :msecs }
describe 'pretend_read' do
- let!(:p1) { Fabricate(:post) }
- let!(:p2) { Fabricate(:post, topic: p1.topic, user: p1.user) }
- let!(:p3) { Fabricate(:post, topic: p1.topic, user: p1.user) }
+ fab!(:p1) { Fabricate(:post) }
+ fab!(:p2) { Fabricate(:post, topic: p1.topic, user: p1.user) }
+ fab!(:p3) { Fabricate(:post, topic: p1.topic, user: p1.user) }
let :topic_id do
p1.topic_id
diff --git a/spec/models/reviewable_flagged_post_spec.rb b/spec/models/reviewable_flagged_post_spec.rb
index 4ca3160331..e60d8180f2 100644
--- a/spec/models/reviewable_flagged_post_spec.rb
+++ b/spec/models/reviewable_flagged_post_spec.rb
@@ -8,9 +8,9 @@ RSpec.describe ReviewableFlaggedPost, type: :model do
ReviewableFlaggedPost.default_visible.pending.count
end
- let(:user) { Fabricate(:user) }
- let(:post) { Fabricate(:post) }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:post) { Fabricate(:post) }
+ fab!(:moderator) { Fabricate(:moderator) }
it "sets `potential_spam` when a spam flag is added" do
reviewable = PostActionCreator.off_topic(user, post).reviewable
diff --git a/spec/models/reviewable_history_spec.rb b/spec/models/reviewable_history_spec.rb
index 322745a9f8..6d438aee9d 100644
--- a/spec/models/reviewable_history_spec.rb
+++ b/spec/models/reviewable_history_spec.rb
@@ -4,9 +4,9 @@ require 'rails_helper'
RSpec.describe ReviewableHistory, type: :model do
- let(:user) { Fabricate(:user) }
- let(:admin) { Fabricate(:admin) }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
it "adds a `created` history event when a reviewable is created" do
reviewable = ReviewableUser.needs_review!(target: user, created_by: admin)
diff --git a/spec/models/reviewable_queued_post_spec.rb b/spec/models/reviewable_queued_post_spec.rb
index 08478c6d57..11cf5ac9ef 100644
--- a/spec/models/reviewable_queued_post_spec.rb
+++ b/spec/models/reviewable_queued_post_spec.rb
@@ -4,8 +4,8 @@ require 'rails_helper'
RSpec.describe ReviewableQueuedPost, type: :model do
- let!(:category) { Fabricate(:category) }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:moderator) { Fabricate(:moderator) }
context "creating a post" do
let!(:topic) { Fabricate(:topic, category: category) }
diff --git a/spec/models/reviewable_score_spec.rb b/spec/models/reviewable_score_spec.rb
index e64859c0f2..3072cd3ee2 100644
--- a/spec/models/reviewable_score_spec.rb
+++ b/spec/models/reviewable_score_spec.rb
@@ -5,9 +5,9 @@ require 'rails_helper'
RSpec.describe ReviewableScore, type: :model do
context "transitions" do
- let(:user) { Fabricate(:user, trust_level: 3) }
- let(:post) { Fabricate(:post) }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:user) { Fabricate(:user, trust_level: 3) }
+ fab!(:post) { Fabricate(:post) }
+ fab!(:moderator) { Fabricate(:moderator) }
it "scores agreements properly" do
reviewable = PostActionCreator.off_topic(user, post).reviewable
@@ -49,11 +49,11 @@ RSpec.describe ReviewableScore, type: :model do
end
describe "overall score" do
- let(:user0) { Fabricate(:user, trust_level: 1) }
- let(:user1) { Fabricate(:user, trust_level: 2) }
- let(:user2) { Fabricate(:user, trust_level: 3) }
- let(:moderator) { Fabricate(:moderator) }
- let(:post) { Fabricate(:post) }
+ fab!(:user0) { Fabricate(:user, trust_level: 1) }
+ fab!(:user1) { Fabricate(:user, trust_level: 2) }
+ fab!(:user2) { Fabricate(:user, trust_level: 3) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:post) { Fabricate(:post) }
let(:topic) { post.topic }
it "gives a bonus for take_action" do
@@ -89,7 +89,7 @@ RSpec.describe ReviewableScore, type: :model do
end
describe ".user_accuracy_bonus" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:user_stat) { user.user_stat }
it "returns 0 for a user with no flags" do
@@ -129,7 +129,7 @@ RSpec.describe ReviewableScore, type: :model do
end
context "a user with some flags" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:user_stat) { user.user_stat }
it "returns 1.0 + trust_level + accuracy_bonus" do
diff --git a/spec/models/reviewable_spec.rb b/spec/models/reviewable_spec.rb
index fdc51e5814..f2d175ba2a 100644
--- a/spec/models/reviewable_spec.rb
+++ b/spec/models/reviewable_spec.rb
@@ -5,8 +5,8 @@ require 'rails_helper'
RSpec.describe Reviewable, type: :model do
context ".create" do
- let(:admin) { Fabricate(:admin) }
- let(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
let(:reviewable) { Fabricate.build(:reviewable, created_by: admin) }
@@ -34,8 +34,8 @@ RSpec.describe Reviewable, type: :model do
end
context ".needs_review!" do
- let(:admin) { Fabricate(:admin) }
- let(:user) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:user) { Fabricate(:user) }
it "will return a new reviewable the first them, and re-use the second time" do
r0 = ReviewableUser.needs_review!(target: user, created_by: admin)
@@ -81,14 +81,14 @@ RSpec.describe Reviewable, type: :model do
end
context ".list_for" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it "returns an empty list for nil user" do
expect(Reviewable.list_for(nil)).to eq([])
end
context "with a pending item" do
- let(:post) { Fabricate(:post) }
+ fab!(:post) { Fabricate(:post) }
let(:reviewable) { Fabricate(:reviewable, target: post) }
it "works with the reviewable by moderator flag" do
@@ -160,11 +160,11 @@ RSpec.describe Reviewable, type: :model do
end
context "with a category restriction" do
- let(:category) { Fabricate(:category, read_restricted: true) }
+ fab!(:category) { Fabricate(:category, read_restricted: true) }
let(:topic) { Fabricate(:topic, category: category) }
let(:post) { Fabricate(:post, topic: topic) }
- let!(:moderator) { Fabricate(:moderator) }
- let(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:admin) { Fabricate(:admin) }
it "respects category id on the reviewable" do
Group.refresh_automatic_group!(:staff)
@@ -217,7 +217,7 @@ RSpec.describe Reviewable, type: :model do
end
context "message bus notifications" do
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:moderator) { Fabricate(:moderator) }
it "triggers a notification on create" do
Jobs.expects(:enqueue).with(:notify_reviewable, has_key(:reviewable_id))
@@ -251,8 +251,8 @@ RSpec.describe Reviewable, type: :model do
end
describe "flag_stats" do
- let(:user) { Fabricate(:user) }
- let(:post) { Fabricate(:post) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:post) { Fabricate(:post) }
let(:reviewable) { PostActionCreator.spam(user, post).reviewable }
it "increases flags_agreed when agreed" do
diff --git a/spec/models/reviewable_user_spec.rb b/spec/models/reviewable_user_spec.rb
index e59c07146f..bb0899b6bc 100644
--- a/spec/models/reviewable_user_spec.rb
+++ b/spec/models/reviewable_user_spec.rb
@@ -4,16 +4,16 @@ require 'rails_helper'
RSpec.describe ReviewableUser, type: :model do
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:moderator) { Fabricate(:moderator) }
let(:user) do
user = Fabricate(:user)
user.activate
user
end
- let(:admin) { Fabricate(:admin) }
+ fab!(:admin) { Fabricate(:admin) }
context "actions_for" do
- let(:reviewable) { Fabricate(:reviewable) }
+ fab!(:reviewable) { Fabricate(:reviewable) }
it "returns correct actions in the pending state" do
actions = reviewable.actions_for(Guardian.new(moderator))
expect(actions.has?(:approve_user)).to eq(true)
@@ -30,8 +30,8 @@ RSpec.describe ReviewableUser, type: :model do
end
context "#update_fields" do
- let(:moderator) { Fabricate(:moderator) }
- let(:reviewable) { Fabricate(:reviewable) }
+ fab!(:moderator) { Fabricate(:moderator) }
+ fab!(:reviewable) { Fabricate(:reviewable) }
it "doesn't raise errors with an empty update" do
expect(reviewable.update_fields(nil, moderator)).to eq(true)
@@ -52,7 +52,7 @@ RSpec.describe ReviewableUser, type: :model do
end
context "perform" do
- let(:reviewable) { Fabricate(:reviewable) }
+ fab!(:reviewable) { Fabricate(:reviewable) }
context "approve" do
it "allows us to approve a user" do
result = reviewable.perform(moderator, :approve_user)
diff --git a/spec/models/screened_ip_address_spec.rb b/spec/models/screened_ip_address_spec.rb
index 89de579620..84876a122f 100644
--- a/spec/models/screened_ip_address_spec.rb
+++ b/spec/models/screened_ip_address_spec.rb
@@ -137,13 +137,13 @@ describe ScreenedIpAddress do
end
context 'using exact match' do
- let!(:existing) { Fabricate(:screened_ip_address) }
+ fab!(:existing) { Fabricate(:screened_ip_address) }
let(:ip_address_arg) { existing.ip_address }
include_examples 'exact match of ip address'
end
context 'using subnet mask 255.255.255.0' do
- let!(:existing) { Fabricate(:screened_ip_address, ip_address: '99.232.23.124/24') }
+ fab!(:existing) { Fabricate(:screened_ip_address, ip_address: '99.232.23.124/24') }
context 'at exact address' do
let(:ip_address_arg) { '99.232.23.124' }
diff --git a/spec/models/search_log_spec.rb b/spec/models/search_log_spec.rb
index 5cc2be0a05..568b1653f9 100644
--- a/spec/models/search_log_spec.rb
+++ b/spec/models/search_log_spec.rb
@@ -89,7 +89,7 @@ RSpec.describe SearchLog, type: :model do
end
context "when logged in" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
it "logs and updates the search" do
freeze_time
@@ -205,7 +205,7 @@ RSpec.describe SearchLog, type: :model do
end
context "trending" do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
before do
SearchLog.log(term: 'ruby', search_type: :header, ip_address: '127.0.0.1')
SearchLog.log(term: 'php', search_type: :header, ip_address: '127.0.0.1')
diff --git a/spec/models/tag_group_spec.rb b/spec/models/tag_group_spec.rb
index d8fd570205..ef00c45e1c 100644
--- a/spec/models/tag_group_spec.rb
+++ b/spec/models/tag_group_spec.rb
@@ -4,25 +4,25 @@ require 'rails_helper'
describe TagGroup do
describe '#visible' do
- let(:user1) { Fabricate(:user) }
- let(:user2) { Fabricate(:user) }
- let(:admin) { Fabricate(:admin) }
- let(:moderator) { Fabricate(:moderator) }
+ fab!(:user1) { Fabricate(:user) }
+ fab!(:user2) { Fabricate(:user) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:moderator) { Fabricate(:moderator) }
- let(:group) { Fabricate(:group) }
+ fab!(:group) { Fabricate(:group) }
- let!(:everyone_tag_group) { Fabricate(:tag_group, name: 'Visible & usable by everyone', tag_names: ['foo-bar']) }
- let!(:visible_tag_group) { Fabricate(:tag_group, name: 'Visible by everyone, usable by staff', tag_names: ['foo']) }
- let!(:staff_only_tag_group) { Fabricate(:tag_group, name: 'Staff only', tag_names: ['bar']) }
+ fab!(:everyone_tag_group) { Fabricate(:tag_group, name: 'Visible & usable by everyone', tag_names: ['foo-bar']) }
+ fab!(:visible_tag_group) { Fabricate(:tag_group, name: 'Visible by everyone, usable by staff', tag_names: ['foo']) }
+ fab!(:staff_only_tag_group) { Fabricate(:tag_group, name: 'Staff only', tag_names: ['bar']) }
- let!(:public_tag_group) { Fabricate(:tag_group, name: 'Public', tag_names: ['public1']) }
- let!(:private_tag_group) { Fabricate(:tag_group, name: 'Private', tag_names: ['privatetag1']) }
- let!(:staff_tag_group) { Fabricate(:tag_group, name: 'Staff Talk', tag_names: ['stafftag1']) }
- let!(:unrestricted_tag_group) { Fabricate(:tag_group, name: 'Unrestricted', tag_names: ['use-anywhere']) }
+ fab!(:public_tag_group) { Fabricate(:tag_group, name: 'Public', tag_names: ['public1']) }
+ fab!(:private_tag_group) { Fabricate(:tag_group, name: 'Private', tag_names: ['privatetag1']) }
+ fab!(:staff_tag_group) { Fabricate(:tag_group, name: 'Staff Talk', tag_names: ['stafftag1']) }
+ fab!(:unrestricted_tag_group) { Fabricate(:tag_group, name: 'Unrestricted', tag_names: ['use-anywhere']) }
- let!(:public_category) { Fabricate(:category, name: 'Public Category') }
- let!(:private_category) { Fabricate(:private_category, group: group) }
- let!(:staff_category) { Fabricate(:category, name: 'Secret') }
+ fab!(:public_category) { Fabricate(:category, name: 'Public Category') }
+ fab!(:private_category) { Fabricate(:private_category, group: group) }
+ fab!(:staff_category) { Fabricate(:category, name: 'Secret') }
let(:everyone) { Group::AUTO_GROUPS[:everyone] }
let(:staff) { Group::AUTO_GROUPS[:staff] }
diff --git a/spec/models/tag_user_spec.rb b/spec/models/tag_user_spec.rb
index d9d26a9401..cce48a6a09 100644
--- a/spec/models/tag_user_spec.rb
+++ b/spec/models/tag_user_spec.rb
@@ -69,10 +69,10 @@ describe TagUser do
end
context "integration" do
- let(:user) { Fabricate(:user) }
- let(:watched_tag) { Fabricate(:tag) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:watched_tag) { Fabricate(:tag) }
let(:muted_tag) { Fabricate(:tag) }
- let(:tracked_tag) { Fabricate(:tag) }
+ fab!(:tracked_tag) { Fabricate(:tag) }
context "with some tag notification settings" do
before do
diff --git a/spec/models/theme_spec.rb b/spec/models/theme_spec.rb
index 1f6eac0763..9d8fa631f6 100644
--- a/spec/models/theme_spec.rb
+++ b/spec/models/theme_spec.rb
@@ -7,7 +7,7 @@ describe Theme do
Theme.clear_cache!
end
- let :user do
+ fab! :user do
Fabricate(:user)
end
diff --git a/spec/models/top_topic_spec.rb b/spec/models/top_topic_spec.rb
index e085982e95..1d49694bca 100644
--- a/spec/models/top_topic_spec.rb
+++ b/spec/models/top_topic_spec.rb
@@ -24,8 +24,8 @@ describe TopTopic do
context "refresh!" do
- let!(:t1) { Fabricate(:topic) }
- let!(:t2) { Fabricate(:topic) }
+ fab!(:t1) { Fabricate(:topic) }
+ fab!(:t2) { Fabricate(:topic) }
it "begins blank" do
expect(TopTopic.all).to be_blank
@@ -45,18 +45,18 @@ describe TopTopic do
describe "#compute_top_score_for" do
- let(:user) { Fabricate(:user) }
- let(:coding_horror) { Fabricate(:coding_horror) }
+ fab!(:user) { Fabricate(:user) }
+ fab!(:coding_horror) { Fabricate(:coding_horror) }
- let!(:topic_1) { Fabricate(:topic, posts_count: 10, like_count: 28) }
- let!(:t1_post_1) { Fabricate(:post, topic: topic_1, like_count: 28, post_number: 1) }
+ fab!(:topic_1) { Fabricate(:topic, posts_count: 10, like_count: 28) }
+ fab!(:t1_post_1) { Fabricate(:post, topic: topic_1, like_count: 28, post_number: 1) }
- let!(:topic_2) { Fabricate(:topic, posts_count: 10, like_count: 20) }
- let!(:t2_post_1) { Fabricate(:post, topic: topic_2, like_count: 10, post_number: 1) }
- let!(:t2_post_2) { Fabricate(:post, topic: topic_2, like_count: 10) }
+ fab!(:topic_2) { Fabricate(:topic, posts_count: 10, like_count: 20) }
+ fab!(:t2_post_1) { Fabricate(:post, topic: topic_2, like_count: 10, post_number: 1) }
+ fab!(:t2_post_2) { Fabricate(:post, topic: topic_2, like_count: 10) }
- let!(:topic_3) { Fabricate(:topic, posts_count: 10) }
- let!(:t3_post_1) { Fabricate(:post, topic_id: topic_3.id) }
+ fab!(:topic_3) { Fabricate(:topic, posts_count: 10) }
+ fab!(:t3_post_1) { Fabricate(:post, topic_id: topic_3.id) }
let!(:t3_view_1) { TopicViewItem.add(topic_3.id, '127.0.0.1', user) }
let!(:t3_view_2) { TopicViewItem.add(topic_3.id, '127.0.0.2', coding_horror) }
diff --git a/spec/models/topic_converter_spec.rb b/spec/models/topic_converter_spec.rb
index f37fd1436e..15fadd18be 100644
--- a/spec/models/topic_converter_spec.rb
+++ b/spec/models/topic_converter_spec.rb
@@ -5,10 +5,10 @@ require 'rails_helper'
describe TopicConverter do
context 'convert_to_public_topic' do
- let(:admin) { Fabricate(:admin) }
- let(:author) { Fabricate(:user) }
- let(:category) { Fabricate(:category, topic_count: 1) }
- let(:private_message) { Fabricate(:private_message_topic, user: author) } # creates a topic without a first post
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:author) { Fabricate(:user) }
+ fab!(:category) { Fabricate(:category, topic_count: 1) }
+ fab!(:private_message) { Fabricate(:private_message_topic, user: author) } # creates a topic without a first post
let(:first_post) { create_post(user: author, topic: private_message) }
let(:other_user) { private_message.topic_allowed_users.find { |u| u.user != author }.user }
@@ -94,11 +94,11 @@ describe TopicConverter do
end
context 'convert_to_private_message' do
- let(:admin) { Fabricate(:admin) }
- let(:author) { Fabricate(:user) }
- let(:category) { Fabricate(:category) }
- let(:topic) { Fabricate(:topic, user: author, category_id: category.id) }
- let!(:post) { Fabricate(:post, topic: topic) }
+ fab!(:admin) { Fabricate(:admin) }
+ fab!(:author) { Fabricate(:user) }
+ fab!(:category) { Fabricate(:category) }
+ fab!(:topic) { Fabricate(:topic, user: author, category_id: category.id) }
+ fab!(:post) { Fabricate(:post, topic: topic) }
context 'success' do
it "converts regular topic to private message" do
diff --git a/spec/models/topic_embed_spec.rb b/spec/models/topic_embed_spec.rb
index b6c61f1f7a..71c60afb3a 100644
--- a/spec/models/topic_embed_spec.rb
+++ b/spec/models/topic_embed_spec.rb
@@ -11,11 +11,11 @@ describe TopicEmbed do
context '.import' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:title) { "How to turn a fish from good to evil in 30 seconds" }
let(:url) { 'http://eviltrout.com/123' }
let(:contents) { "hello world new post hello
" }
- let!(:embeddable_host) { Fabricate(:embeddable_host) }
+ fab!(:embeddable_host) { Fabricate(:embeddable_host) }
it "returns nil when the URL is malformed" do
expect(TopicEmbed.import(user, "invalid url", title, contents)).to eq(nil)
@@ -113,7 +113,7 @@ describe TopicEmbed do
let(:url) { 'http://eviltrout.com/123' }
let(:contents) { "
Hi
" }
- let!(:embeddable_host) { Fabricate(:embeddable_host) }
+ fab!(:embeddable_host) { Fabricate(:embeddable_host) }
let!(:file) { StringIO.new }
response = nil
@@ -172,10 +172,10 @@ describe TopicEmbed do
end
context 'post with author metadata' do
- let!(:user) { Fabricate(:user, username: 'eviltrout') }
+ fab!(:user) { Fabricate(:user, username: 'eviltrout') }
let(:url) { 'http://eviltrout.com/321' }
let(:contents) { 'rich and morty' }
- let!(:embeddable_host) { Fabricate(:embeddable_host) }
+ fab!(:embeddable_host) { Fabricate(:embeddable_host) }
let!(:file) { StringIO.new }
response = nil
@@ -193,10 +193,10 @@ describe TopicEmbed do
context 'post with no allowed classes' do
- let(:user) { Fabricate(:user) }
+ fab!(:user) { Fabricate(:user) }
let(:url) { 'http://eviltrout.com/123' }
let(:contents) { "my normal size emoji Hi
" }
- let!(:embeddable_host) { Fabricate(:embeddable_host) }
+ fab!(:embeddable_host) { Fabricate(:embeddable_host) }
let!(:file) { StringIO.new }
response = nil
@@ -228,7 +228,7 @@ describe TopicEmbed do
context "non-ascii URL" do
let(:url) { 'http://eviltrout.com/test/ماهی' }
let(:contents) { "Car 54, where are you?
') } @@ -168,8 +168,8 @@ describe PostsController do describe 'when logged in' do let(:topic) { Fabricate(:topic) } - let(:user) { Fabricate(:user) } - let(:moderator) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:user) } + fab!(:moderator) { Fabricate(:moderator) } it "raises an error when the user doesn't have permission to see the post" do pm = Fabricate(:private_message_topic) @@ -198,9 +198,9 @@ describe PostsController do include_examples 'action requires login', :delete, "/posts/destroy_many.json", params: { post_ids: [123, 345] } describe 'when logged in' do - let(:poster) { Fabricate(:moderator) } - let(:post1) { Fabricate(:post, user: poster, post_number: 2) } - let(:post2) { Fabricate(:post, topic: post1.topic, user: poster, post_number: 3, reply_to_post_number: post1.post_number) } + fab!(:poster) { Fabricate(:moderator) } + fab!(:post1) { Fabricate(:post, user: poster, post_number: 2) } + fab!(:post2) { Fabricate(:post, topic: post1.topic, user: poster, post_number: 3, reply_to_post_number: post1.post_number) } it "raises invalid parameters no post_ids" do sign_in(poster) @@ -247,7 +247,7 @@ describe PostsController do end context "deleting flagged posts" do - let(:moderator) { Fabricate(:moderator) } + fab!(:moderator) { Fabricate(:moderator) } before do sign_in(moderator) @@ -278,7 +278,7 @@ describe PostsController do include_examples 'action requires login', :put, "/posts/123/recover.json" describe 'when logged in' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } it "raises an error when the user doesn't have permission to see the post" do post = Fabricate(:post, topic: Fabricate(:private_message_topic), post_number: 3) @@ -304,8 +304,8 @@ describe PostsController do describe '#update' do include_examples 'action requires login', :put, "/posts/2.json" - let(:user) { Fabricate(:user) } - let(:post) { Fabricate(:post, user: user) } + fab!(:user) { Fabricate(:user) } + fab!(:post) { Fabricate(:post, user: user) } let(:update_params) do { post: { raw: 'edited body', edit_reason: 'typo' }, @@ -313,7 +313,7 @@ describe PostsController do } end - let(:moderator) { Fabricate(:moderator) } + fab!(:moderator) { Fabricate(:moderator) } describe 'when logged in as a regular user' do before do @@ -446,15 +446,15 @@ describe PostsController do describe '#bookmark' do include_examples 'action requires login', :put, "/posts/2/bookmark.json" - let(:post) { Fabricate(:post, user: user) } - let(:user) { Fabricate(:user) } + fab!(:post) { Fabricate(:post, user: user) } + fab!(:user) { Fabricate(:user) } describe 'when logged in' do before do sign_in(user) end - let(:private_message) { Fabricate(:private_message_post) } + fab!(:private_message) { Fabricate(:private_message_post) } it "raises an error if the user doesn't have permission to see the post" do put "/posts/#{private_message.id}/bookmark.json", params: { bookmarked: "true" } @@ -471,7 +471,7 @@ describe PostsController do context "removing a bookmark" do let(:post_action) { PostActionCreator.create(user, post, :bookmark).post_action } - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } it "returns the right response when post is not bookmarked" do put "/posts/#{Fabricate(:post, user: user).id}/bookmark.json" @@ -588,8 +588,8 @@ describe PostsController do sign_in(user) end - let(:user) { Fabricate(:user) } - let(:post) { Fabricate(:post, user: user) } + fab!(:user) { Fabricate(:user) } + fab!(:post) { Fabricate(:post, user: user) } it "raises an error if the user doesn't have permission to wiki the post" do put "/posts/#{post.id}/wiki.json", params: { wiki: 'true' } @@ -644,8 +644,8 @@ describe PostsController do sign_in(user) end - let(:user) { Fabricate(:user) } - let(:post) { Fabricate(:post, user: user) } + fab!(:user) { Fabricate(:user) } + fab!(:post) { Fabricate(:post, user: user) } it "raises an error if the user doesn't have permission to change the post type" do put "/posts/#{post.id}/post_type.json", params: { post_type: 2 } @@ -666,7 +666,7 @@ describe PostsController do include_examples "action requires login", :put, "/posts/2/rebake.json" describe "when logged in" do - let(:post) { Fabricate(:post, user: user) } + fab!(:post) { Fabricate(:post, user: user) } it "raises an error if the user doesn't have permission to rebake the post" do sign_in(Fabricate(:user)) @@ -698,7 +698,7 @@ describe PostsController do SiteSetting.min_first_post_typing_time = 0 end - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } context 'api' do it 'memoizes duplicate requests' do @@ -1057,7 +1057,7 @@ describe PostsController do end describe 'shared draft' do - let(:destination_category) { Fabricate(:category) } + fab!(:destination_category) { Fabricate(:category) } it "will raise an error for regular users" do post "/posts.json", params: { @@ -1085,7 +1085,7 @@ describe PostsController do end context "with a shared category" do - let(:shared_category) { Fabricate(:category) } + fab!(:shared_category) { Fabricate(:category) } before do SiteSetting.shared_drafts_category = shared_category.id end @@ -1108,7 +1108,7 @@ describe PostsController do end describe 'warnings' do - let(:user_2) { Fabricate(:user) } + fab!(:user_2) { Fabricate(:user) } context 'as a staff user' do before do @@ -1223,7 +1223,7 @@ describe PostsController do end context "users" do - let(:topic) { Fabricate(:topic) } + fab!(:topic) { Fabricate(:topic) } [:user].each do |user| it "will raise an error for #{user}" do @@ -1242,7 +1242,7 @@ describe PostsController do end describe '#revisions' do - let(:post) { Fabricate(:post, version: 2) } + fab!(:post) { Fabricate(:post, version: 2) } let(:post_revision) { Fabricate(:post_revision, post: post) } it "throws an exception when revision is < 2" do @@ -1319,9 +1319,9 @@ describe PostsController do end context "deleted post" do - let(:admin) { Fabricate(:admin) } - let(:deleted_post) { Fabricate(:post, user: admin, version: 3) } - let(:deleted_post_revision) { Fabricate(:post_revision, user: admin, post: deleted_post) } + fab!(:admin) { Fabricate(:admin) } + fab!(:deleted_post) { Fabricate(:post, user: admin, version: 3) } + fab!(:deleted_post_revision) { Fabricate(:post_revision, user: admin, post: deleted_post) } before { deleted_post.trash!(admin) } @@ -1333,10 +1333,10 @@ describe PostsController do end context "deleted topic" do - let(:admin) { Fabricate(:admin) } - let(:deleted_topic) { Fabricate(:topic, user: admin) } - let(:post) { Fabricate(:post, user: admin, topic: deleted_topic, version: 3) } - let(:post_revision) { Fabricate(:post_revision, user: admin, post: post) } + fab!(:admin) { Fabricate(:admin) } + fab!(:deleted_topic) { Fabricate(:topic, user: admin) } + fab!(:post) { Fabricate(:post, user: admin, topic: deleted_topic, version: 3) } + fab!(:post_revision) { Fabricate(:post_revision, user: admin, post: post) } before { deleted_topic.trash!(admin) } @@ -1351,14 +1351,14 @@ describe PostsController do describe '#revert' do include_examples 'action requires login', :put, "/posts/123/revisions/2/revert.json" - let(:post) { Fabricate(:post, user: Fabricate(:user), raw: "Lorem ipsum dolor sit amet, cu nam libris tractatos, ancillae senserit ius ex") } + fab!(:post) { Fabricate(:post, user: Fabricate(:user), raw: "Lorem ipsum dolor sit amet, cu nam libris tractatos, ancillae senserit ius ex") } let(:post_revision) { Fabricate(:post_revision, post: post, modifications: { "raw" => ["this is original post body.", "this is edited post body."] }) } let(:blank_post_revision) { Fabricate(:post_revision, post: post, modifications: { "edit_reason" => ["edit reason #1", "edit reason #2"] }) } let(:same_post_revision) { Fabricate(:post_revision, post: post, modifications: { "raw" => ["Lorem ipsum dolor sit amet, cu nam libris tractatos, ancillae senserit ius ex", "this is edited post body."] }) } let(:post_id) { post.id } let(:revision_id) { post_revision.number } - let(:moderator) { Fabricate(:moderator) } + fab!(:moderator) { Fabricate(:moderator) } describe 'when logged in as a regular user' do it "does not work" do @@ -1420,7 +1420,7 @@ describe PostsController do sign_in(Fabricate(:user)) end - let(:post) { Fabricate(:post) } + fab!(:post) { Fabricate(:post) } it "raises an error when you can't see the post" do post = Fabricate(:private_message_post) @@ -1573,8 +1573,8 @@ describe PostsController do end describe '#short_link' do - let(:topic) { Fabricate(:topic) } - let(:post) { Fabricate(:post, topic: topic) } + fab!(:topic) { Fabricate(:topic) } + fab!(:post) { Fabricate(:post, topic: topic) } it "redirects to the topic" do get "/p/#{post.id}.json" diff --git a/spec/requests/push_notification_controller_spec.rb b/spec/requests/push_notification_controller_spec.rb index 578bd3ec3d..0134ffb3c3 100644 --- a/spec/requests/push_notification_controller_spec.rb +++ b/spec/requests/push_notification_controller_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe PushNotificationController do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } context "logged out" do it "should not allow subscribe" do diff --git a/spec/requests/queued_posts_controller_spec.rb b/spec/requests/queued_posts_controller_spec.rb index 3b613dbfea..b0f604cca2 100644 --- a/spec/requests/queued_posts_controller_spec.rb +++ b/spec/requests/queued_posts_controller_spec.rb @@ -32,7 +32,7 @@ describe QueuedPostsController do describe '#update' do before { sign_in(Fabricate(:moderator)) } - let(:qp) { Fabricate(:reviewable_queued_post) } + fab!(:qp) { Fabricate(:reviewable_queued_post) } context 'not found' do it 'returns json error' do @@ -87,7 +87,7 @@ describe QueuedPostsController do end context 'when it is a topic' do - let(:queued_topic) { Fabricate(:reviewable_queued_post_topic,) } + fab!(:queued_topic) { Fabricate(:reviewable_queued_post_topic,) } it 'updates the topic attributes' do put "/queued_posts/#{queued_topic.id}.json", params: { @@ -122,7 +122,7 @@ describe QueuedPostsController do end context 'when it is a reply' do - let(:queued_reply) { Fabricate(:reviewable_queued_post) } + fab!(:queued_reply) { Fabricate(:reviewable_queued_post) } it 'updates the reply attributes' do put "/queued_posts/#{queued_reply.id}.json", params: { diff --git a/spec/requests/reviewables_controller_spec.rb b/spec/requests/reviewables_controller_spec.rb index 80007867a7..c310b1b108 100644 --- a/spec/requests/reviewables_controller_spec.rb +++ b/spec/requests/reviewables_controller_spec.rb @@ -38,7 +38,7 @@ describe ReviewablesController do end context "when logged in" do - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } before do sign_in(admin) @@ -172,7 +172,7 @@ describe ReviewablesController do context "#show" do context "basics" do - let(:reviewable) { Fabricate(:reviewable) } + fab!(:reviewable) { Fabricate(:reviewable) } before do sign_in(Fabricate(:moderator)) end @@ -192,9 +192,9 @@ describe ReviewablesController do end context "conversation" do - let(:post) { Fabricate(:post) } - let(:user) { Fabricate(:user) } - let(:admin) { Fabricate(:admin) } + fab!(:post) { Fabricate(:post) } + fab!(:user) { Fabricate(:user) } + fab!(:admin) { Fabricate(:admin) } let(:result) { PostActionCreator.notify_moderators(user, post, 'this is the first post') } let(:reviewable) { result.reviewable } @@ -237,7 +237,7 @@ describe ReviewablesController do end context "#perform" do - let(:reviewable) { Fabricate(:reviewable) } + fab!(:reviewable) { Fabricate(:reviewable) } before do sign_in(Fabricate(:moderator)) end @@ -301,11 +301,11 @@ describe ReviewablesController do end context "#topics" do - let(:post0) { Fabricate(:post) } - let(:post1) { Fabricate(:post, topic: post0.topic) } - let(:post2) { Fabricate(:post) } - let(:user0) { Fabricate(:user) } - let(:user1) { Fabricate(:user) } + fab!(:post0) { Fabricate(:post) } + fab!(:post1) { Fabricate(:post, topic: post0.topic) } + fab!(:post2) { Fabricate(:post) } + fab!(:user0) { Fabricate(:user) } + fab!(:user1) { Fabricate(:user) } it "returns empty json for no reviewables" do get "/review/topics.json" @@ -353,10 +353,10 @@ describe ReviewablesController do end context "#update" do - let(:reviewable) { Fabricate(:reviewable) } - let(:reviewable_post) { Fabricate(:reviewable_queued_post) } - let(:reviewable_topic) { Fabricate(:reviewable_queued_post_topic) } - let(:moderator) { Fabricate(:moderator) } + fab!(:reviewable) { Fabricate(:reviewable) } + fab!(:reviewable_post) { Fabricate(:reviewable_queued_post) } + fab!(:reviewable_topic) { Fabricate(:reviewable_queued_post_topic) } + fab!(:moderator) { Fabricate(:moderator) } before do sign_in(moderator) @@ -460,7 +460,7 @@ describe ReviewablesController do end context "#destroy" do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } before do sign_in(user) diff --git a/spec/requests/search_controller_spec.rb b/spec/requests/search_controller_spec.rb index c9b069f6ad..0b69e39191 100644 --- a/spec/requests/search_controller_spec.rb +++ b/spec/requests/search_controller_spec.rb @@ -174,7 +174,7 @@ describe SearchController do end context "with a user" do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } it "raises an error if the user can't see the context" do get "/search/query.json", params: { diff --git a/spec/requests/session_controller_spec.rb b/spec/requests/session_controller_spec.rb index 66f0ef3a8c..a3b995601d 100644 --- a/spec/requests/session_controller_spec.rb +++ b/spec/requests/session_controller_spec.rb @@ -1345,7 +1345,7 @@ RSpec.describe SessionController do end context 'for an existing username' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } context 'local login is disabled' do before do diff --git a/spec/requests/static_controller_spec.rb b/spec/requests/static_controller_spec.rb index 9883cf0937..0f412184fb 100644 --- a/spec/requests/static_controller_spec.rb +++ b/spec/requests/static_controller_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' describe StaticController do - let(:upload) { Fabricate(:upload) } + fab!(:upload) { Fabricate(:upload) } context '#favicon' do let(:filename) { 'smallest.png' } diff --git a/spec/requests/tag_groups_controller_spec.rb b/spec/requests/tag_groups_controller_spec.rb index 421f2d21b0..05f4aba2b3 100644 --- a/spec/requests/tag_groups_controller_spec.rb +++ b/spec/requests/tag_groups_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' RSpec.describe TagGroupsController do - let(:user) { Fabricate(:user) } - let(:tag_group) { Fabricate(:tag_group) } + fab!(:user) { Fabricate(:user) } + fab!(:tag_group) { Fabricate(:tag_group) } describe '#index' do describe 'for a non staff user' do @@ -21,7 +21,7 @@ RSpec.describe TagGroupsController do end describe 'for a staff user' do - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } before do sign_in(admin) diff --git a/spec/requests/tags_controller_spec.rb b/spec/requests/tags_controller_spec.rb index b5bc226ce4..ea96873e7b 100644 --- a/spec/requests/tags_controller_spec.rb +++ b/spec/requests/tags_controller_spec.rb @@ -81,7 +81,7 @@ describe TagsController do end describe '#check_hashtag' do - let(:tag) { Fabricate(:tag, name: 'test') } + fab!(:tag) { Fabricate(:tag, name: 'test') } it "should return the right response" do get "/tags/check.json", params: { tag_values: [tag.name] } @@ -94,8 +94,8 @@ describe TagsController do end describe "#update" do - let(:tag) { Fabricate(:tag) } - let(:admin) { Fabricate(:admin) } + fab!(:tag) { Fabricate(:tag) } + fab!(:admin) { Fabricate(:admin) } before do tag @@ -117,9 +117,9 @@ describe TagsController do end describe '#personal_messages' do - let(:regular_user) { Fabricate(:trust_level_4) } - let(:moderator) { Fabricate(:moderator) } - let(:admin) { Fabricate(:admin) } + fab!(:regular_user) { Fabricate(:trust_level_4) } + fab!(:moderator) { Fabricate(:moderator) } + fab!(:admin) { Fabricate(:admin) } let(:personal_message) do Fabricate(:private_message_topic, user: regular_user, topic_allowed_users: [ Fabricate.build(:topic_allowed_user, user: regular_user), @@ -188,13 +188,13 @@ describe TagsController do end describe '#show_latest' do - let(:tag) { Fabricate(:tag) } - let(:other_tag) { Fabricate(:tag) } - let(:third_tag) { Fabricate(:tag) } - let(:category) { Fabricate(:category) } - let(:subcategory) { Fabricate(:category, parent_category_id: category.id) } + fab!(:tag) { Fabricate(:tag) } + fab!(:other_tag) { Fabricate(:tag) } + fab!(:third_tag) { Fabricate(:tag) } + fab!(:category) { Fabricate(:category) } + fab!(:subcategory) { Fabricate(:category, parent_category_id: category.id) } - let(:single_tag_topic) { Fabricate(:topic, tags: [tag]) } + fab!(:single_tag_topic) { Fabricate(:topic, tags: [tag]) } let(:multi_tag_topic) { Fabricate(:topic, tags: [tag, other_tag]) } let(:all_tag_topic) { Fabricate(:topic, tags: [tag, other_tag, third_tag]) } @@ -334,8 +334,8 @@ describe TagsController do end context 'with category restriction' do - let(:yup) { Fabricate(:tag, name: 'yup') } - let(:category) { Fabricate(:category, tags: [yup]) } + fab!(:yup) { Fabricate(:tag, name: 'yup') } + fab!(:category) { Fabricate(:category, tags: [yup]) } it "can say if given tag is not allowed" do nope = Fabricate(:tag, name: 'nope') diff --git a/spec/requests/theme_javascripts_controller_spec.rb b/spec/requests/theme_javascripts_controller_spec.rb index 349dad4afe..6c05efd4e5 100644 --- a/spec/requests/theme_javascripts_controller_spec.rb +++ b/spec/requests/theme_javascripts_controller_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' describe ThemeJavascriptsController do - let(:theme) { Fabricate(:theme) } + let!(:theme) { Fabricate(:theme) } let(:theme_field) { ThemeField.create!(theme: theme, target_id: 0, name: "header", value: "html") } let(:javascript_cache) { JavascriptCache.create!(content: 'console.log("hello");', theme_field: theme_field) } diff --git a/spec/requests/topics_controller_spec.rb b/spec/requests/topics_controller_spec.rb index cc81861982..e59ba7b671 100644 --- a/spec/requests/topics_controller_spec.rb +++ b/spec/requests/topics_controller_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' RSpec.describe TopicsController do - let(:topic) { Fabricate(:topic) } - let(:user) { Fabricate(:user) } + fab!(:topic) { Fabricate(:topic) } + fab!(:user) { Fabricate(:user) } describe '#wordpress' do let!(:user) { sign_in(Fabricate(:moderator)) } @@ -59,8 +59,8 @@ RSpec.describe TopicsController do end describe 'moving to a new topic' do - let(:user) { Fabricate(:user) } - let(:moderator) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:user) } + fab!(:moderator) { Fabricate(:moderator) } let(:p1) { Fabricate(:post, user: user, post_number: 1) } let(:p2) { Fabricate(:post, user: user, post_number: 2, topic: p1.topic) } let!(:topic) { p1.topic } @@ -187,7 +187,7 @@ RSpec.describe TopicsController do let!(:user) { sign_in(Fabricate(:moderator)) } let(:p1) { Fabricate(:post, user: user) } let(:topic) { p1.topic } - let(:dest_topic) { Fabricate(:topic) } + fab!(:dest_topic) { Fabricate(:topic) } let(:p2) { Fabricate(:post, user: user, topic: topic) } context 'success' do @@ -245,9 +245,9 @@ RSpec.describe TopicsController do end describe 'moving to a new message' do - let(:user) { Fabricate(:user) } - let(:trust_level_4) { Fabricate(:trust_level_4) } - let(:moderator) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:user) } + fab!(:trust_level_4) { Fabricate(:trust_level_4) } + fab!(:moderator) { Fabricate(:moderator) } let!(:message) { Fabricate(:private_message_topic) } let!(:p1) { Fabricate(:post, user: user, post_number: 1, topic: message) } let!(:p2) { Fabricate(:post, user: user, post_number: 2, topic: message) } @@ -335,8 +335,8 @@ RSpec.describe TopicsController do describe 'moving to an existing message' do let!(:user) { sign_in(Fabricate(:admin)) } - let(:trust_level_4) { Fabricate(:trust_level_4) } - let(:evil_trout) { Fabricate(:evil_trout) } + fab!(:trust_level_4) { Fabricate(:trust_level_4) } + fab!(:evil_trout) { Fabricate(:evil_trout) } let(:message) { Fabricate(:private_message_topic) } let(:p2) { Fabricate(:post, user: evil_trout, post_number: 2, topic: message) } @@ -387,8 +387,8 @@ RSpec.describe TopicsController do end describe 'merging into another topic' do - let(:moderator) { Fabricate(:moderator) } - let(:user) { Fabricate(:user) } + fab!(:moderator) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:user) } let(:p1) { Fabricate(:post, user: user) } let(:topic) { p1.topic } @@ -422,9 +422,9 @@ RSpec.describe TopicsController do end describe 'merging into another message' do - let(:moderator) { Fabricate(:moderator) } - let(:user) { Fabricate(:user) } - let(:trust_level_4) { Fabricate(:trust_level_4) } + fab!(:moderator) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:user) } + fab!(:trust_level_4) { Fabricate(:trust_level_4) } let(:message) { Fabricate(:private_message_topic, user: user) } let!(:p1) { Fabricate(:post, topic: message, user: trust_level_4) } let!(:p2) { Fabricate(:post, topic: message, reply_to_post_number: p1.post_number, user: user) } @@ -506,7 +506,7 @@ RSpec.describe TopicsController do describe 'changing ownership' do let!(:editor) { sign_in(Fabricate(:admin)) } let(:topic) { Fabricate(:topic) } - let(:user_a) { Fabricate(:user) } + fab!(:user_a) { Fabricate(:user) } let(:p1) { Fabricate(:post, topic: topic) } let(:p2) { Fabricate(:post, topic: topic) } @@ -628,7 +628,7 @@ RSpec.describe TopicsController do context 'when logged in' do let(:topic) { Fabricate(:topic) } let(:pm) { Fabricate(:private_message_topic) } - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } before do sign_in(user) end @@ -658,8 +658,8 @@ RSpec.describe TopicsController do end describe 'when logged in' do - let(:user) { Fabricate(:user) } - let(:moderator) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:user) } + fab!(:moderator) { Fabricate(:moderator) } let(:topic) { Fabricate(:topic) } before do sign_in(moderator) @@ -827,8 +827,8 @@ RSpec.describe TopicsController do end describe 'when logged in' do - let(:user) { Fabricate(:user) } - let(:moderator) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:user) } + fab!(:moderator) { Fabricate(: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) } @@ -864,8 +864,8 @@ RSpec.describe TopicsController do end describe 'when logged in' do - let(:user) { Fabricate(:user) } - let(:moderator) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:user) } + fab!(:moderator) { Fabricate(:moderator) } let(:topic) { Fabricate(:topic, user: user, created_at: 48.hours.ago) } let!(:post) { Fabricate(:post, topic: topic, user: user, post_number: 1) } @@ -1045,12 +1045,12 @@ RSpec.describe TopicsController do end context 'updating to a category with restricted tags' do - let!(:category) { Fabricate(:category) } - let!(:restricted_category) { Fabricate(:category) } - let!(:tag1) { Fabricate(:tag) } - let!(:tag2) { Fabricate(:tag) } + fab!(:category) { Fabricate(:category) } + fab!(:restricted_category) { Fabricate(:category) } + fab!(:tag1) { Fabricate(:tag) } + fab!(:tag2) { Fabricate(:tag) } let!(:tag_group_1) { Fabricate(:tag_group, tag_names: [tag1.name]) } - let!(:tag_group_2) { Fabricate(:tag_group) } + fab!(:tag_group_2) { Fabricate(:tag_group) } before do SiteSetting.tagging_enabled = true @@ -1248,7 +1248,7 @@ RSpec.describe TopicsController do end context 'permission errors' do - let(:allowed_user) { Fabricate(:user) } + fab!(:allowed_user) { Fabricate(:user) } let(:allowed_group) { Fabricate(:group) } let(:secure_category) do c = Fabricate(:category) @@ -1781,7 +1781,7 @@ RSpec.describe TopicsController do describe 'filtering by post number with filters' do describe 'username filters' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:post) { Fabricate(:post, user: user) } let!(:post2) { Fabricate(:post, topic: topic, user: user) } let!(:post3) { Fabricate(:post, topic: topic) } @@ -2137,7 +2137,7 @@ RSpec.describe TopicsController do end describe 'converting public topic to private message' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:topic) { Fabricate(:topic, user: user) } let!(:post) { Fabricate(:post, topic: topic) } @@ -2164,7 +2164,7 @@ RSpec.describe TopicsController do end describe 'converting private message to public topic' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:topic) { Fabricate(:private_message_topic, user: user) } let!(:post) { Fabricate(:post, topic: topic) } @@ -2427,10 +2427,10 @@ RSpec.describe TopicsController do end describe "when PM has reached maximum allowed numbers of recipients" do - let(:user2) { Fabricate(:user) } + fab!(:user2) { Fabricate(:user) } let(:pm) { Fabricate(:private_message_topic, user: user) } - let(:moderator) { Fabricate(:moderator) } + fab!(:moderator) { Fabricate(:moderator) } let(:moderator_pm) { Fabricate(:private_message_topic, user: moderator) } before do diff --git a/spec/requests/uploads_controller_spec.rb b/spec/requests/uploads_controller_spec.rb index d1dd951e5c..9df65a5457 100644 --- a/spec/requests/uploads_controller_spec.rb +++ b/spec/requests/uploads_controller_spec.rb @@ -198,7 +198,7 @@ describe UploadsController do describe '#show' do let(:site) { "default" } let(:sha) { Digest::SHA1.hexdigest("discourse") } - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } def upload_file(file, folder = "images") fake_logo = Rack::Test::UploadedFile.new(file_from_fixtures(file, folder)) @@ -290,7 +290,7 @@ describe UploadsController do end describe '#metadata' do - let(:upload) { Fabricate(:upload) } + fab!(:upload) { Fabricate(:upload) } describe 'when url is missing' do it 'should return the right response' do diff --git a/spec/requests/user_badges_controller_spec.rb b/spec/requests/user_badges_controller_spec.rb index c4336c8e56..aa03d6f7d8 100644 --- a/spec/requests/user_badges_controller_spec.rb +++ b/spec/requests/user_badges_controller_spec.rb @@ -3,11 +3,11 @@ require 'rails_helper' describe UserBadgesController do - let(:user) { Fabricate(:user) } - let(:badge) { Fabricate(:badge) } + fab!(:user) { Fabricate(:user) } + fab!(:badge) { Fabricate(:badge) } context 'index' do - let(:badge) { Fabricate(:badge, target_posts: true, show_posts: false) } + fab!(:badge) { Fabricate(:badge, target_posts: true, show_posts: false) } it 'does not leak private info' do p = create_post UserBadge.create!(badge: badge, user: user, post_id: p.id, granted_by_id: -1, granted_at: Time.now) diff --git a/spec/requests/users_controller_spec.rb b/spec/requests/users_controller_spec.rb index ffd6f75941..30f8b24d99 100644 --- a/spec/requests/users_controller_spec.rb +++ b/spec/requests/users_controller_spec.rb @@ -111,7 +111,7 @@ describe UsersController do end describe '#password_reset' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:token) { SecureRandom.hex } context "you can view it even if login is required" do @@ -390,7 +390,7 @@ describe UsersController do end describe '#confirm_email_token' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } it "token doesn't match any records" do email_token = user.email_tokens.create(email: user.email) @@ -408,8 +408,8 @@ describe UsersController do end describe '#admin_login' do - let(:admin) { Fabricate(:admin) } - let(:user) { Fabricate(:user) } + fab!(:admin) { Fabricate(:admin) } + fab!(:user) { Fabricate(:user) } context 'enqueues mail' do it 'enqueues mail with admin email and sso enabled' do @@ -464,8 +464,8 @@ describe UsersController do end describe 'when 2 factor authentication is enabled' do - let(:second_factor) { Fabricate(:user_second_factor_totp, user: admin) } - let(:email_token) { Fabricate(:email_token, user: admin) } + fab!(:second_factor) { Fabricate(:user_second_factor_totp, user: admin) } + fab!(:email_token) { Fabricate(:email_token, user: admin) } it 'does not log in when token required' do second_factor @@ -662,8 +662,8 @@ describe UsersController do end context "with a regular api key" do - let(:user) { Fabricate(:user) } - let(:api_key) { Fabricate(:api_key, user: user) } + fab!(:user) { Fabricate(:user) } + fab!(:api_key) { Fabricate(:api_key, user: user) } it "won't create the user as active with a regular key" do post "/u.json", @@ -675,8 +675,8 @@ describe UsersController do end context "with an admin api key" do - let(:admin) { Fabricate(:admin) } - let(:api_key) { Fabricate(:api_key, user: admin) } + fab!(:admin) { Fabricate(:admin) } + fab!(:api_key) { Fabricate(:api_key, user: admin) } it "creates the user as active with a an admin key" do SiteSetting.send_welcome_message = true @@ -750,8 +750,8 @@ describe UsersController do end context "with a regular api key" do - let(:user) { Fabricate(:user) } - let(:api_key) { Fabricate(:api_key, user: user) } + fab!(:user) { Fabricate(:user) } + fab!(:api_key) { Fabricate(:api_key, user: user) } it "won't create the user as staged with a regular key" do post "/u.json", params: post_user_params.merge(staged: true, api_key: api_key.key) @@ -763,8 +763,8 @@ describe UsersController do end context "with an admin api key" do - let(:user) { Fabricate(:admin) } - let(:api_key) { Fabricate(:api_key, user: user) } + fab!(:user) { Fabricate(:admin) } + fab!(:api_key) { Fabricate(:api_key, user: user) } it "creates the user as staged with a regular key" do post "/u.json", params: post_user_params.merge(staged: true, api_key: api_key.key) @@ -1470,7 +1470,7 @@ describe UsersController do sign_in(user) end - let(:user) { Fabricate(:user, username: 'test.test', name: "Test User") } + fab!(:user) { Fabricate(:user, username: 'test.test', name: "Test User") } it "should be able to update a user" do put "/u/#{user.username}", params: { name: 'test.test' } @@ -1676,8 +1676,8 @@ describe UsersController do end describe '#badge_title' do - let(:user) { Fabricate(:user) } - let(:badge) { Fabricate(:badge) } + fab!(:user) { Fabricate(:user) } + fab!(:badge) { Fabricate(:badge) } let(:user_badge) { BadgeGranter.grant(badge, user) } it "sets the user's title to the badge name if it is titleable" do @@ -1700,7 +1700,7 @@ describe UsersController do end context "with overrided name" do - let(:badge) { Fabricate(:badge, name: 'Demogorgon', allow_title: true) } + fab!(:badge) { Fabricate(:badge, name: 'Demogorgon', allow_title: true) } let(:user_badge) { BadgeGranter.grant(badge, user) } before do @@ -1946,8 +1946,8 @@ describe UsersController do context 'while logged in' do let!(:user) { sign_in(Fabricate(:user)) } - let(:avatar1) { Fabricate(:upload) } - let(:avatar2) { Fabricate(:upload) } + fab!(:avatar1) { Fabricate(:upload) } + fab!(:avatar2) { Fabricate(:upload) } let(:url) { "https://www.discourse.org" } it 'raises an error when url is blank' do @@ -2000,8 +2000,8 @@ describe UsersController do end context 'while logged in' do - let(:another_user) { Fabricate(:user) } - let(:user) { Fabricate(:user) } + fab!(:another_user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } before do sign_in(user) @@ -2038,8 +2038,8 @@ describe UsersController do end context 'while logged in' do - let(:user) { Fabricate(:user) } - let(:another_user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } + fab!(:another_user) { Fabricate(:user) } before do sign_in(user) end @@ -2074,8 +2074,8 @@ describe UsersController do end context 'while logged in' do - let(:user) { Fabricate(:user, trust_level: 2) } - let(:another_user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user, trust_level: 2) } + fab!(:another_user) { Fabricate(:user) } before do sign_in(user) end @@ -2124,7 +2124,7 @@ describe UsersController do end describe "for user with period in username" do - let(:user_with_period) { Fabricate(:user, username: "myname.test") } + fab!(:user_with_period) { Fabricate(:user, username: "myname.test") } it "still works" do sign_in(user_with_period) @@ -2217,10 +2217,10 @@ describe UsersController do end describe '#is_local_username' do - let(:user) { Fabricate(:user) } - let(:group) { Fabricate(:group, name: "Discourse") } - let(:topic) { Fabricate(:topic) } - let(:allowed_user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } + fab!(:group) { Fabricate(:group, name: "Discourse") } + fab!(:topic) { Fabricate(:topic) } + fab!(:allowed_user) { Fabricate(:user) } let(:private_topic) { Fabricate(:private_message_topic, user: allowed_user) } it "finds the user" do @@ -2307,7 +2307,7 @@ describe UsersController do end describe '#topic_tracking_state' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } context 'anon' do it "raises an error on anon for topic_tracking_state" do @@ -2621,7 +2621,7 @@ describe UsersController do end describe "user profile views" do - let(:other_user) { Fabricate(:user) } + fab!(:other_user) { Fabricate(:user) } it "should track a user profile view for an anon user" do get "/" @@ -2641,7 +2641,7 @@ describe UsersController do sign_in(user) end - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } it 'returns success' do get "/u/#{user.username}.json" @@ -2676,7 +2676,7 @@ describe UsersController do end describe "user profile views" do - let(:other_user) { Fabricate(:user) } + fab!(:other_user) { Fabricate(:user) } it "should track a user profile view for a signed in user" do UserProfileView.expects(:add).with(other_user.user_profile.id, request.remote_ip, user.id) @@ -2711,8 +2711,8 @@ describe UsersController do describe "include_post_count_for" do - let(:admin) { Fabricate(:admin) } - let(:topic) { Fabricate(:topic) } + fab!(:admin) { Fabricate(:admin) } + fab!(:topic) { Fabricate(:topic) } before do Fabricate(:post, user: user, topic: topic) @@ -2820,7 +2820,7 @@ describe UsersController do end describe '#search_users' do - let(:topic) { Fabricate :topic } + fab!(:topic) { Fabricate :topic } let(:user) { Fabricate :user, username: "joecabot", name: "Lawrence Tierney" } let(:post1) { Fabricate(:post, user: user, topic: topic) } @@ -3369,7 +3369,7 @@ describe UsersController do end describe '#revoke_account' do - let(:other_user) { Fabricate(:user) } + fab!(:other_user) { Fabricate(:user) } it 'errors for unauthorised users' do post "/u/#{user.username}/preferences/revoke-account.json", params: { provider_name: 'facebook' diff --git a/spec/requests/users_email_controller_spec.rb b/spec/requests/users_email_controller_spec.rb index 125643a8c1..7987ffd33c 100644 --- a/spec/requests/users_email_controller_spec.rb +++ b/spec/requests/users_email_controller_spec.rb @@ -13,7 +13,7 @@ describe UsersEmailController do end context 'valid old address token' do - let(:user) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:moderator) } let(:updater) { EmailUpdater.new(user.guardian, user) } before do @@ -36,7 +36,7 @@ describe UsersEmailController do end context 'valid new address token' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:updater) { EmailUpdater.new(user.guardian, user) } before do @@ -73,7 +73,7 @@ describe UsersEmailController do end context 'second factor required' do - let!(:second_factor) { Fabricate(:user_second_factor_totp, user: user) } + fab!(:second_factor) { Fabricate(:user_second_factor_totp, user: user) } it 'requires a second factor token' do get "/u/authorize-email/#{user.email_tokens.last.token}" @@ -114,7 +114,7 @@ describe UsersEmailController do end describe '#update' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:new_email) { 'bubblegum@adventuretime.ooo' } it "requires you to be logged in" do @@ -147,7 +147,7 @@ describe UsersEmailController do end context 'when the new email address is taken' do - let!(:other_user) { Fabricate(:coding_horror) } + fab!(:other_user) { Fabricate(:coding_horror) } context 'hide_email_address_taken is disabled' do before do @@ -187,7 +187,7 @@ describe UsersEmailController do end context 'when new email is different case of existing email' do - let!(:other_user) { Fabricate(:user, email: 'case.insensitive@gmail.com') } + fab!(:other_user) { Fabricate(:user, email: 'case.insensitive@gmail.com') } it 'raises an error' do put "/u/#{user.username}/preferences/email.json", params: { diff --git a/spec/serializers/admin_user_list_serializer_spec.rb b/spec/serializers/admin_user_list_serializer_spec.rb index d6c6282e3d..e5c429fc8a 100644 --- a/spec/serializers/admin_user_list_serializer_spec.rb +++ b/spec/serializers/admin_user_list_serializer_spec.rb @@ -4,8 +4,8 @@ require 'rails_helper' require_dependency 'user' describe AdminUserListSerializer do - let(:user) { Fabricate(:user_second_factor_totp).user } - let(:admin) { Fabricate(:admin) } + fab!(:user) { Fabricate(:user_second_factor_totp).user } + fab!(:admin) { Fabricate(:admin) } let(:guardian) { Guardian.new(admin) } let(:serializer) do @@ -19,9 +19,9 @@ describe AdminUserListSerializer do end context "emails" do - let(:admin) { Fabricate(:user, admin: true, email: "admin@email.com") } - let(:moderator) { Fabricate(:user, moderator: true, email: "moderator@email.com") } - let(:user) { Fabricate(:user, email: "user@email.com") } + fab!(:admin) { Fabricate(:user, admin: true, email: "admin@email.com") } + fab!(:moderator) { Fabricate(:user, moderator: true, email: "moderator@email.com") } + fab!(:user) { Fabricate(:user, email: "user@email.com") } def serialize(user, viewed_by, opts = nil) AdminUserListSerializer.new( diff --git a/spec/serializers/basic_group_serializer_spec.rb b/spec/serializers/basic_group_serializer_spec.rb index a8a09374fa..eafb7e6802 100644 --- a/spec/serializers/basic_group_serializer_spec.rb +++ b/spec/serializers/basic_group_serializer_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' describe BasicGroupSerializer do let(:guardian) { Guardian.new } - let(:group) { Fabricate(:group) } + fab!(:group) { Fabricate(:group) } subject { described_class.new(group, scope: guardian, root: false) } describe '#display_name' do @@ -17,7 +17,7 @@ describe BasicGroupSerializer do end describe 'normal group' do - let(:group) { Fabricate(:group) } + fab!(:group) { Fabricate(:group) } it 'should not include the display name' do expect(subject.display_name).to eq(nil) @@ -26,7 +26,7 @@ describe BasicGroupSerializer do end describe '#bio_raw' do - let(:group) { Fabricate(:group, bio_raw: 'testing') } + fab!(:group) { Fabricate(:group, bio_raw: 'testing') } subject do described_class.new(group, scope: guardian, root: false, owner_group_ids: [group.id]) @@ -40,7 +40,7 @@ describe BasicGroupSerializer do end describe '#automatic_membership_email_domains' do - let(:group) { Fabricate(:group, automatic_membership_email_domains: 'ilovediscourse.com', automatic_membership_retroactive: true) } + fab!(:group) { Fabricate(:group, automatic_membership_email_domains: 'ilovediscourse.com', automatic_membership_retroactive: true) } let(:admin_guardian) { Guardian.new(Fabricate(:admin)) } it 'should include email domains for admin' do @@ -58,7 +58,7 @@ describe BasicGroupSerializer do end describe '#has_messages' do - let(:group) { Fabricate(:group, has_messages: true) } + fab!(:group) { Fabricate(:group, has_messages: true) } describe 'for a staff user' do let(:guardian) { Guardian.new(Fabricate(:moderator)) } @@ -69,7 +69,7 @@ describe BasicGroupSerializer do end describe 'for a group user' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:guardian) { Guardian.new(user) } before do diff --git a/spec/serializers/basic_group_user_serializer_spec.rb b/spec/serializers/basic_group_user_serializer_spec.rb index c91dfae0df..6ba3c28389 100644 --- a/spec/serializers/basic_group_user_serializer_spec.rb +++ b/spec/serializers/basic_group_user_serializer_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' describe BasicGroupUserSerializer do - let(:group) { Fabricate(:group) } - let(:user) { Fabricate(:user) } + fab!(:group) { Fabricate(:group) } + fab!(:user) { Fabricate(:user) } before do group.add(user) diff --git a/spec/serializers/category_serializer_spec.rb b/spec/serializers/category_serializer_spec.rb index 8a122e2336..a8f2ce9edf 100644 --- a/spec/serializers/category_serializer_spec.rb +++ b/spec/serializers/category_serializer_spec.rb @@ -4,8 +4,8 @@ require 'rails_helper' require_dependency 'category' describe CategorySerializer do - let(:group) { Fabricate(:group) } - let(:category) { Fabricate(:category, reviewable_by_group_id: group.id) } + fab!(:group) { Fabricate(:group) } + fab!(:category) { Fabricate(:category, reviewable_by_group_id: group.id) } it "includes the reviewable by group name if enabled" do SiteSetting.enable_category_group_review = true diff --git a/spec/serializers/category_upload_serializer_spec.rb b/spec/serializers/category_upload_serializer_spec.rb index 884664d6be..a68c6a6e2f 100644 --- a/spec/serializers/category_upload_serializer_spec.rb +++ b/spec/serializers/category_upload_serializer_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' describe CategoryUploadSerializer do - let(:upload) { Fabricate(:upload) } + fab!(:upload) { Fabricate(:upload) } let(:subject) { described_class.new(upload, root: false) } it 'should include width and height' do diff --git a/spec/serializers/current_user_serializer_spec.rb b/spec/serializers/current_user_serializer_spec.rb index 32dc241230..9eb2d34c62 100644 --- a/spec/serializers/current_user_serializer_spec.rb +++ b/spec/serializers/current_user_serializer_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' RSpec.describe CurrentUserSerializer do context "when SSO is not enabled" do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let :serializer do CurrentUserSerializer.new(user, scope: Guardian.new, root: false) end @@ -36,10 +36,10 @@ RSpec.describe CurrentUserSerializer do end context "#top_category_ids" do - let(:user) { Fabricate(:user) } - let(:category1) { Fabricate(:category) } - let(:category2) { Fabricate(:category) } - let(:category3) { Fabricate(:category) } + fab!(:user) { Fabricate(:user) } + fab!(:category1) { Fabricate(:category) } + fab!(:category2) { Fabricate(:category) } + fab!(:category3) { Fabricate(:category) } let :serializer do CurrentUserSerializer.new(user, scope: Guardian.new, root: false) end @@ -69,7 +69,7 @@ RSpec.describe CurrentUserSerializer do end context "#groups" do - let(:member) { Fabricate(:user) } + fab!(:member) { Fabricate(:user) } let :serializer do CurrentUserSerializer.new(member, scope: Guardian.new, root: false) end diff --git a/spec/serializers/group_show_serializer_spec.rb b/spec/serializers/group_show_serializer_spec.rb index fa86277f2e..98e4387379 100644 --- a/spec/serializers/group_show_serializer_spec.rb +++ b/spec/serializers/group_show_serializer_spec.rb @@ -3,12 +3,12 @@ require 'rails_helper' describe GroupShowSerializer do - let(:user) { Fabricate(:user) } - let(:group) { Fabricate(:group) } + fab!(:user) { Fabricate(:user) } + fab!(:group) { Fabricate(:group) } context 'admin user' do - let(:user) { Fabricate(:admin) } - let(:group) { Fabricate(:group, users: [user]) } + fab!(:user) { Fabricate(:admin) } + fab!(:group) { Fabricate(:group, users: [user]) } it 'should return the right attributes' do json = GroupShowSerializer.new(group, scope: Guardian.new(user)).as_json @@ -32,7 +32,7 @@ describe GroupShowSerializer do end describe '#mentionable' do - let(:group) { Fabricate(:group, mentionable_level: Group::ALIAS_LEVELS[:everyone]) } + fab!(:group) { Fabricate(:group, mentionable_level: Group::ALIAS_LEVELS[:everyone]) } it 'should return the right value' do json = GroupShowSerializer.new(group, scope: Guardian.new).as_json diff --git a/spec/serializers/post_revision_serializer_spec.rb b/spec/serializers/post_revision_serializer_spec.rb index f0b5330241..64013180fc 100644 --- a/spec/serializers/post_revision_serializer_spec.rb +++ b/spec/serializers/post_revision_serializer_spec.rb @@ -3,13 +3,13 @@ require 'rails_helper' describe PostRevisionSerializer do - let(:post) { Fabricate(:post, version: 2) } + fab!(:post) { Fabricate(:post, version: 2) } context 'hidden tags' do - let(:public_tag) { Fabricate(:tag, name: 'public') } - let(:public_tag2) { Fabricate(:tag, name: 'visible') } - let(:hidden_tag) { Fabricate(:tag, name: 'hidden') } - let(:hidden_tag2) { Fabricate(:tag, name: 'secret') } + fab!(:public_tag) { Fabricate(:tag, name: 'public') } + fab!(:public_tag2) { Fabricate(:tag, name: 'visible') } + fab!(:hidden_tag) { Fabricate(:tag, name: 'hidden') } + fab!(:hidden_tag2) { Fabricate(:tag, name: 'secret') } let(:staff_tag_group) { Fabricate(:tag_group, permissions: { "staff" => 1 }, tag_names: [hidden_tag.name, hidden_tag2.name]) } diff --git a/spec/serializers/post_serializer_spec.rb b/spec/serializers/post_serializer_spec.rb index 86176970f1..d193718203 100644 --- a/spec/serializers/post_serializer_spec.rb +++ b/spec/serializers/post_serializer_spec.rb @@ -6,9 +6,9 @@ require_dependency 'post_action' describe PostSerializer do context "a post with lots of actions" do - let(:post) { Fabricate(:post) } - let(:actor) { Fabricate(:user) } - let(:admin) { Fabricate(:admin) } + fab!(:post) { Fabricate(:post) } + fab!(:actor) { Fabricate(:user) } + fab!(:admin) { Fabricate(:admin) } let(:acted_ids) { PostActionType.public_types.values .concat([:notify_user, :spam].map { |k| PostActionType.types[k] }) diff --git a/spec/serializers/reviewable_flagged_post_serializer_spec.rb b/spec/serializers/reviewable_flagged_post_serializer_spec.rb index 63b40b48b4..2304423671 100644 --- a/spec/serializers/reviewable_flagged_post_serializer_spec.rb +++ b/spec/serializers/reviewable_flagged_post_serializer_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' describe ReviewableFlaggedPostSerializer do - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } it "includes the user fields for review" do p0 = Fabricate(:post) diff --git a/spec/serializers/reviewable_queued_post_serializer_spec.rb b/spec/serializers/reviewable_queued_post_serializer_spec.rb index b8c545cec1..83bcaac4df 100644 --- a/spec/serializers/reviewable_queued_post_serializer_spec.rb +++ b/spec/serializers/reviewable_queued_post_serializer_spec.rb @@ -3,10 +3,10 @@ require 'rails_helper' describe ReviewableQueuedPostSerializer do - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } context "new topic" do - let(:reviewable) { Fabricate(:reviewable_queued_post_topic) } + fab!(:reviewable) { Fabricate(:reviewable_queued_post_topic) } it "allows us to edit category / title" do json = ReviewableQueuedPostSerializer.new(reviewable, scope: Guardian.new(admin), root: nil).as_json @@ -40,7 +40,7 @@ describe ReviewableQueuedPostSerializer do end context "reply to an existing topic" do - let(:reviewable) { Fabricate(:reviewable_queued_post) } + fab!(:reviewable) { Fabricate(:reviewable_queued_post) } it "includes correct user fields" do json = ReviewableQueuedPostSerializer.new(reviewable, scope: Guardian.new(admin), root: nil).as_json diff --git a/spec/serializers/reviewable_serializer_spec.rb b/spec/serializers/reviewable_serializer_spec.rb index 5906467dfb..6ce23e0c14 100644 --- a/spec/serializers/reviewable_serializer_spec.rb +++ b/spec/serializers/reviewable_serializer_spec.rb @@ -4,8 +4,8 @@ require 'rails_helper' describe ReviewableSerializer do - let(:reviewable) { Fabricate(:reviewable_queued_post) } - let(:admin) { Fabricate(:admin) } + fab!(:reviewable) { Fabricate(:reviewable_queued_post) } + fab!(:admin) { Fabricate(:admin) } it "serializes all the fields" do json = described_class.new(reviewable, scope: Guardian.new(admin), root: nil).as_json diff --git a/spec/serializers/single_sign_on_record_serializer_spec.rb b/spec/serializers/single_sign_on_record_serializer_spec.rb index 18602a582b..6af81b0f4f 100644 --- a/spec/serializers/single_sign_on_record_serializer_spec.rb +++ b/spec/serializers/single_sign_on_record_serializer_spec.rb @@ -3,13 +3,13 @@ require 'rails_helper' RSpec.describe SingleSignOnRecordSerializer do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let :sso do SingleSignOnRecord.create!(user_id: user.id, external_id: '12345', external_email: user.email, last_payload: '') end context "admin" do - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } let :serializer do SingleSignOnRecordSerializer.new(sso, scope: Guardian.new(admin), root: false) end @@ -23,7 +23,7 @@ RSpec.describe SingleSignOnRecordSerializer do end context "moderator" do - let(:moderator) { Fabricate(:moderator) } + fab!(:moderator) { Fabricate(:moderator) } let :serializer do SingleSignOnRecordSerializer.new(sso, scope: Guardian.new(moderator), root: false) end diff --git a/spec/serializers/topic_list_serializer_spec.rb b/spec/serializers/topic_list_serializer_spec.rb index 0fc30d4f33..2f36983ed2 100644 --- a/spec/serializers/topic_list_serializer_spec.rb +++ b/spec/serializers/topic_list_serializer_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' RSpec.describe TopicListSerializer do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:topic) do Fabricate(:topic).tap do |t| diff --git a/spec/serializers/topic_view_posts_serializer_spec.rb b/spec/serializers/topic_view_posts_serializer_spec.rb index 4002ede9da..2c14b08ef7 100644 --- a/spec/serializers/topic_view_posts_serializer_spec.rb +++ b/spec/serializers/topic_view_posts_serializer_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' RSpec.describe TopicViewPostsSerializer do - let(:user) { Fabricate(:user) } - let(:post) { Fabricate(:post) } + fab!(:user) { Fabricate(:user) } + fab!(:post) { Fabricate(:post) } let(:topic) { post.topic } let(:topic_view) { TopicView.new(topic, user, post_ids: [post.id]) } diff --git a/spec/serializers/topic_view_serializer_spec.rb b/spec/serializers/topic_view_serializer_spec.rb index 97def1a62f..13ec3064a7 100644 --- a/spec/serializers/topic_view_serializer_spec.rb +++ b/spec/serializers/topic_view_serializer_spec.rb @@ -14,9 +14,9 @@ describe TopicViewSerializer do RandomTopicSelector.clear_cache! end - let(:topic) { Fabricate(:topic) } - let(:user) { Fabricate(:user) } - let(:admin) { Fabricate(:admin) } + fab!(:topic) { Fabricate(:topic) } + fab!(:user) { Fabricate(:user) } + fab!(:admin) { Fabricate(:admin) } describe '#featured_link and #featured_link_root_domain' do let(:featured_link) { 'http://meta.discourse.org' } diff --git a/spec/serializers/upload_serializer_spec.rb b/spec/serializers/upload_serializer_spec.rb index 4bbe3c4fe7..cc9aed697a 100644 --- a/spec/serializers/upload_serializer_spec.rb +++ b/spec/serializers/upload_serializer_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' RSpec.describe UploadSerializer do - let(:upload) { Fabricate(:upload) } + fab!(:upload) { Fabricate(:upload) } let(:subject) { UploadSerializer.new(upload, root: false) } it 'should render without errors' do diff --git a/spec/serializers/user_auth_token_serializer_spec.rb b/spec/serializers/user_auth_token_serializer_spec.rb index 75f1767d5c..a2e1aecc0f 100644 --- a/spec/serializers/user_auth_token_serializer_spec.rb +++ b/spec/serializers/user_auth_token_serializer_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' describe UserAuthTokenSerializer do - let(:user) { Fabricate(:moderator) } + fab!(:user) { Fabricate(:moderator) } let(:token) { UserAuthToken.generate!(user_id: user.id, client_ip: '2a02:ea00::', staff: true) } before(:each) do diff --git a/spec/serializers/user_serializer_spec.rb b/spec/serializers/user_serializer_spec.rb index c409cba146..8fed2367b8 100644 --- a/spec/serializers/user_serializer_spec.rb +++ b/spec/serializers/user_serializer_spec.rb @@ -168,7 +168,7 @@ describe UserSerializer do end context "with custom_fields" do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:json) { UserSerializer.new(user, scope: Guardian.new, root: false).as_json } before do @@ -206,7 +206,7 @@ describe UserSerializer do end context "with user fields" do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let! :fields do [ @@ -231,7 +231,7 @@ describe UserSerializer do end context "with user_api_keys" do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } it "sorts keys by last used time" do freeze_time diff --git a/spec/serializers/web_hook_post_serializer_spec.rb b/spec/serializers/web_hook_post_serializer_spec.rb index 398c8f2fcb..7d0cae9845 100644 --- a/spec/serializers/web_hook_post_serializer_spec.rb +++ b/spec/serializers/web_hook_post_serializer_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' RSpec.describe WebHookPostSerializer do - let(:admin) { Fabricate(:admin) } - let(:post) { Fabricate(:post) } + fab!(:admin) { Fabricate(:admin) } + fab!(:post) { Fabricate(:post) } def serialized_for_user(u) WebHookPostSerializer.new(post, scope: Guardian.new(u), root: false).as_json diff --git a/spec/serializers/web_hook_topic_view_serializer_spec.rb b/spec/serializers/web_hook_topic_view_serializer_spec.rb index d599757d4d..f0499f985e 100644 --- a/spec/serializers/web_hook_topic_view_serializer_spec.rb +++ b/spec/serializers/web_hook_topic_view_serializer_spec.rb @@ -3,8 +3,8 @@ require 'rails_helper' RSpec.describe WebHookTopicViewSerializer do - let(:admin) { Fabricate(:admin) } - let(:topic) { Fabricate(:topic) } + fab!(:admin) { Fabricate(:admin) } + fab!(:topic) { Fabricate(:topic) } let(:serializer) do WebHookTopicViewSerializer.new(TopicView.new(topic), diff --git a/spec/serializers/web_hook_user_serializer_spec.rb b/spec/serializers/web_hook_user_serializer_spec.rb index 6d612b1df0..82ef437f6c 100644 --- a/spec/serializers/web_hook_user_serializer_spec.rb +++ b/spec/serializers/web_hook_user_serializer_spec.rb @@ -9,7 +9,7 @@ RSpec.describe WebHookUserSerializer do user end - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } let :serializer do WebHookUserSerializer.new(user, scope: Guardian.new(admin), root: false) diff --git a/spec/services/anonymous_shadow_creator_spec.rb b/spec/services/anonymous_shadow_creator_spec.rb index f390b60c68..57e4d52d10 100644 --- a/spec/services/anonymous_shadow_creator_spec.rb +++ b/spec/services/anonymous_shadow_creator_spec.rb @@ -12,7 +12,7 @@ describe AnonymousShadowCreator do before { SiteSetting.allow_anonymous_posting = true } - let(:user) { Fabricate(:user, trust_level: 3) } + fab!(:user) { Fabricate(:user, trust_level: 3) } it "returns no shadow if trust level is not met" do expect(AnonymousShadowCreator.get(Fabricate.build(:user, trust_level: 0))).to eq(nil) diff --git a/spec/services/badge_granter_spec.rb b/spec/services/badge_granter_spec.rb index e3aad4f1fd..5063cba02b 100644 --- a/spec/services/badge_granter_spec.rb +++ b/spec/services/badge_granter_spec.rb @@ -4,8 +4,8 @@ require 'rails_helper' describe BadgeGranter do - let(:badge) { Fabricate(:badge) } - let(:user) { Fabricate(:user) } + fab!(:badge) { Fabricate(:badge) } + fab!(:user) { Fabricate(:user) } describe 'revoke_titles' do it 'can correctly revoke titles' do @@ -182,7 +182,7 @@ describe BadgeGranter do describe 'revoke' do - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } let!(:user_badge) { BadgeGranter.grant(badge, user) } it 'revokes the badge and does necessary cleanup' do @@ -199,8 +199,8 @@ describe BadgeGranter do end context "update_badges" do - let(:user) { Fabricate(:user) } - let(:liker) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } + fab!(:liker) { Fabricate(:user) } before do BadgeGranter.clear_queue! diff --git a/spec/services/destroy_task_spec.rb b/spec/services/destroy_task_spec.rb index 1114f7a984..e33276710b 100644 --- a/spec/services/destroy_task_spec.rb +++ b/spec/services/destroy_task_spec.rb @@ -5,14 +5,14 @@ require 'rails_helper' describe DestroyTask do describe 'destroy topics' do - let!(:c) { Fabricate(:category) } - let!(:t) { Fabricate(:topic, category: c) } + fab!(:c) { Fabricate(:category) } + fab!(:t) { Fabricate(:topic, category: c) } let!(:p) { Fabricate(:post, topic: t) } - let!(:c2) { Fabricate(:category) } - let!(:t2) { Fabricate(:topic, category: c2) } + fab!(:c2) { Fabricate(:category) } + fab!(:t2) { Fabricate(:topic, category: c2) } let!(:p2) { Fabricate(:post, topic: t2) } - let!(:sc) { Fabricate(:category, parent_category: c) } - let!(:t3) { Fabricate(:topic, category: sc) } + fab!(:sc) { Fabricate(:category, parent_category: c) } + fab!(:t3) { Fabricate(:topic, category: sc) } let!(:p3) { Fabricate(:post, topic: t3) } it 'destroys all topics in a category' do diff --git a/spec/services/flag_sockpuppets_spec.rb b/spec/services/flag_sockpuppets_spec.rb index 0c44b6ea92..985d8fc5b9 100644 --- a/spec/services/flag_sockpuppets_spec.rb +++ b/spec/services/flag_sockpuppets_spec.rb @@ -4,8 +4,8 @@ require 'rails_helper' describe SpamRule::FlagSockpuppets do - let(:user1) { Fabricate(:user, ip_address: '182.189.119.174') } - let(:post1) { Fabricate(:post, user: user1, topic: Fabricate(:topic, user: user1)) } + fab!(:user1) { Fabricate(:user, ip_address: '182.189.119.174') } + fab!(:post1) { Fabricate(:post, user: user1, topic: Fabricate(:topic, user: user1)) } describe 'perform' do let(:rule) { described_class.new(post1) } @@ -113,7 +113,7 @@ describe SpamRule::FlagSockpuppets do end describe 'flag_sockpuppet_users' do - let(:post2) { Fabricate(:post, user: Fabricate(:user, ip_address: user1.ip_address), topic: post1.topic) } + fab!(:post2) { Fabricate(:post, user: Fabricate(:user, ip_address: user1.ip_address), topic: post1.topic) } let(:system) { Discourse.system_user } let(:spam) { PostActionType.types[:spam] } diff --git a/spec/services/group_action_logger_spec.rb b/spec/services/group_action_logger_spec.rb index 5daf9f487e..865138e87f 100644 --- a/spec/services/group_action_logger_spec.rb +++ b/spec/services/group_action_logger_spec.rb @@ -3,9 +3,9 @@ require 'rails_helper' RSpec.describe GroupActionLogger do - let(:group_owner) { Fabricate(:user) } - let(:group) { Fabricate(:group) } - let(:user) { Fabricate(:user) } + fab!(:group_owner) { Fabricate(:user) } + fab!(:group) { Fabricate(:group) } + fab!(:user) { Fabricate(:user) } subject { described_class.new(group_owner, group) } diff --git a/spec/services/group_mentions_updater_spec.rb b/spec/services/group_mentions_updater_spec.rb index b591158ab5..9d642c7582 100644 --- a/spec/services/group_mentions_updater_spec.rb +++ b/spec/services/group_mentions_updater_spec.rb @@ -3,7 +3,7 @@ require 'rails_helper' RSpec.describe GroupMentionsUpdater do - let(:post) { Fabricate(:post) } + fab!(:post) { Fabricate(:post) } before do Jobs.run_immediately! diff --git a/spec/services/notification_emailer_spec.rb b/spec/services/notification_emailer_spec.rb index 1c34978072..e28e17201d 100644 --- a/spec/services/notification_emailer_spec.rb +++ b/spec/services/notification_emailer_spec.rb @@ -8,8 +8,8 @@ describe NotificationEmailer do NotificationEmailer.enable end - let(:topic) { Fabricate(:topic) } - let(:post) { Fabricate(:post, topic: topic) } + fab!(:topic) { Fabricate(:topic) } + fab!(:post) { Fabricate(:post, topic: topic) } # something is off with fabricator def create_notification(type, user = nil) diff --git a/spec/services/post_action_notifier_spec.rb b/spec/services/post_action_notifier_spec.rb index 89a1229e5d..845ab88313 100644 --- a/spec/services/post_action_notifier_spec.rb +++ b/spec/services/post_action_notifier_spec.rb @@ -8,8 +8,8 @@ describe PostActionNotifier do PostActionNotifier.enable end - let!(:evil_trout) { Fabricate(:evil_trout) } - let(:post) { Fabricate(:post) } + fab!(:evil_trout) { Fabricate(:evil_trout) } + fab!(:post) { Fabricate(:post) } context 'when editing a post' do it 'notifies a user of the revision' do @@ -45,8 +45,8 @@ describe PostActionNotifier do end context 'private message' do - let(:user) { Fabricate(:user) } - let(:mention_post) { Fabricate(:post, user: user, raw: 'Hello @eviltrout') } + fab!(:user) { Fabricate(:user) } + fab!(:mention_post) { Fabricate(:post, user: user, raw: 'Hello @eviltrout') } let(:topic) do topic = mention_post.topic topic.update_columns archetype: Archetype.private_message, category_id: nil @@ -71,8 +71,8 @@ describe PostActionNotifier do end context 'moderator action post' do - let(:user) { Fabricate(:user) } - let(:first_post) { Fabricate(:post, user: user, raw: 'A useless post for you.') } + fab!(:user) { Fabricate(:user) } + fab!(:first_post) { Fabricate(:post, user: user, raw: 'A useless post for you.') } let(:topic) { first_post.topic } it 'should not notify anyone' do diff --git a/spec/services/post_alerter_spec.rb b/spec/services/post_alerter_spec.rb index e8724ace37..4579d2f4d4 100644 --- a/spec/services/post_alerter_spec.rb +++ b/spec/services/post_alerter_spec.rb @@ -27,8 +27,8 @@ RSpec::Matchers.define_negated_matcher :not_add_notification, :add_notification describe PostAlerter do - let!(:evil_trout) { Fabricate(:evil_trout) } - let(:user) { Fabricate(:user) } + fab!(:evil_trout) { Fabricate(:evil_trout) } + fab!(:user) { Fabricate(:user) } def create_post_with_alerts(args = {}) post = Fabricate(:post, args) @@ -259,7 +259,7 @@ describe PostAlerter do context '@group mentions' do - let(:group) { Fabricate(:group, name: 'group', mentionable_level: Group::ALIAS_LEVELS[:everyone]) } + fab!(:group) { Fabricate(:group, name: 'group', mentionable_level: Group::ALIAS_LEVELS[:everyone]) } let(:post) { create_post_with_alerts(raw: "Hello @group how are you?") } before { group.add(evil_trout) } @@ -348,12 +348,12 @@ describe PostAlerter do }.not_to change(evil_trout.notifications, :count) end - let(:alice) { Fabricate(:user, username: 'alice') } - let(:bob) { Fabricate(:user, username: 'bob') } - let(:carol) { Fabricate(:admin, username: 'carol') } - let(:dave) { Fabricate(:user, username: 'dave') } - let(:eve) { Fabricate(:user, username: 'eve') } - let(:group) { Fabricate(:group, name: 'group', mentionable_level: Group::ALIAS_LEVELS[:everyone]) } + fab!(:alice) { Fabricate(:user, username: 'alice') } + fab!(:bob) { Fabricate(:user, username: 'bob') } + fab!(:carol) { Fabricate(:admin, username: 'carol') } + fab!(:dave) { Fabricate(:user, username: 'dave') } + fab!(:eve) { Fabricate(:user, username: 'eve') } + fab!(:group) { Fabricate(:group, name: 'group', mentionable_level: Group::ALIAS_LEVELS[:everyone]) } before do group.bulk_add([alice.id, eve.id]) @@ -369,7 +369,7 @@ describe PostAlerter do end context "topic" do - let(:topic) { Fabricate(:topic, user: alice) } + fab!(:topic) { Fabricate(:topic, user: alice) } [:watching, :tracking, :regular].each do |notification_level| context "when notification level is '#{notification_level}'" do @@ -397,7 +397,7 @@ describe PostAlerter do end context "message to users" do - let(:pm_topic) do + fab!(:pm_topic) do Fabricate(:private_message_topic, user: alice, topic_allowed_users: [ @@ -469,8 +469,8 @@ describe PostAlerter do context "message to group" do - let(:some_group) { Fabricate(:group, name: 'some_group', mentionable_level: Group::ALIAS_LEVELS[:everyone]) } - let(:pm_topic) do + fab!(:some_group) { Fabricate(:group, name: 'some_group', mentionable_level: Group::ALIAS_LEVELS[:everyone]) } + fab!(:pm_topic) do Fabricate(:private_message_topic, user: alice, topic_allowed_groups: [ @@ -542,8 +542,8 @@ describe PostAlerter do end describe ".create_notification" do - let(:topic) { Fabricate(:private_message_topic, user: user, created_at: 1.hour.ago) } - let(:post) { Fabricate(:post, topic: topic, created_at: 1.hour.ago) } + fab!(:topic) { Fabricate(:private_message_topic, user: user, created_at: 1.hour.ago) } + fab!(:post) { Fabricate(:post, topic: topic, created_at: 1.hour.ago) } it "creates a notification for PMs" do post.revise(user, { raw: 'This is the revised post' }, revised_at: Time.zone.now) @@ -697,12 +697,12 @@ describe PostAlerter do end describe "watching_first_post" do - let(:group) { Fabricate(:group) } - let(:user) { Fabricate(:user) } - let(:category) { Fabricate(:category) } - let(:tag) { Fabricate(:tag) } - let(:topic) { Fabricate(:topic, category: category, tags: [tag]) } - let(:post) { Fabricate(:post, topic: topic) } + fab!(:group) { Fabricate(:group) } + fab!(:user) { Fabricate(:user) } + fab!(:category) { Fabricate(:category) } + fab!(:tag) { Fabricate(:tag) } + fab!(:topic) { Fabricate(:topic, category: category, tags: [tag]) } + fab!(:post) { Fabricate(:post, topic: topic) } it "doesn't notify people who aren't watching" do PostAlerter.post_created(post) @@ -941,10 +941,10 @@ describe PostAlerter do end context "on change" do - let(:user) { Fabricate(:user) } - let(:other_tag) { Fabricate(:tag) } - let(:watched_tag) { Fabricate(:tag) } - let(:post) { Fabricate(:post) } + fab!(:user) { Fabricate(:user) } + fab!(:other_tag) { Fabricate(:tag) } + fab!(:watched_tag) { Fabricate(:tag) } + fab!(:post) { Fabricate(:post) } before do SiteSetting.tagging_enabled = true @@ -974,9 +974,9 @@ describe PostAlerter do end describe '#extract_linked_users' do - let(:topic) { Fabricate(:topic) } - let(:post) { Fabricate(:post, topic: topic) } - let(:post2) { Fabricate(:post) } + fab!(:topic) { Fabricate(:topic) } + fab!(:post) { Fabricate(:post, topic: topic) } + fab!(:post2) { Fabricate(:post) } describe 'when linked post has been deleted' do let(:topic_link) do diff --git a/spec/services/post_owner_changer_spec.rb b/spec/services/post_owner_changer_spec.rb index 2c8b124a1c..b32a0ed0b0 100644 --- a/spec/services/post_owner_changer_spec.rb +++ b/spec/services/post_owner_changer_spec.rb @@ -4,8 +4,8 @@ require "rails_helper" describe PostOwnerChanger do describe "change_owner!" do - let!(:editor) { Fabricate(:admin) } - let(:user_a) { Fabricate(:user) } + fab!(:editor) { Fabricate(:admin) } + fab!(:user_a) { Fabricate(:user) } let(:p1) { create_post(post_number: 1) } let(:topic) { p1.topic } let(:p2) { create_post(topic: topic, post_number: 2) } @@ -190,7 +190,7 @@ describe PostOwnerChanger do end context 'private message topic' do - # let(:topic) { Fabricate(:private_message_topic) } + # fab!(:topic) { Fabricate(:private_message_topic) } let(:pm) do create_post( archetype: 'private_message', diff --git a/spec/services/staff_action_logger_spec.rb b/spec/services/staff_action_logger_spec.rb index 68c5d52a8a..beb46d8b1b 100644 --- a/spec/services/staff_action_logger_spec.rb +++ b/spec/services/staff_action_logger_spec.rb @@ -4,7 +4,7 @@ require 'rails_helper' describe StaffActionLogger do - let(:admin) { Fabricate(:admin) } + fab!(:admin) { Fabricate(:admin) } let(:logger) { described_class.new(admin) } describe 'new' do @@ -18,7 +18,7 @@ describe StaffActionLogger do end describe 'log_user_deletion' do - let(:deleted_user) { Fabricate(:user) } + fab!(:deleted_user) { Fabricate(:user) } subject(:log_user_deletion) { described_class.new(admin).log_user_deletion(deleted_user) } @@ -50,7 +50,7 @@ describe StaffActionLogger do end describe 'log_post_deletion' do - let(:deleted_post) { Fabricate(:post) } + fab!(:deleted_post) { Fabricate(:post) } subject(:log_post_deletion) { described_class.new(admin).log_post_deletion(deleted_post) } @@ -75,7 +75,7 @@ describe StaffActionLogger do end describe 'log_topic_delete_recover' do - let(:topic) { Fabricate(:topic) } + fab!(:topic) { Fabricate(:topic) } context "when deleting topic" do subject(:log_topic_delete_recover) { described_class.new(admin).log_topic_delete_recover(topic) } @@ -111,7 +111,7 @@ describe StaffActionLogger do end describe 'log_trust_level_change' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:old_trust_level) { TrustLevel[0] } let(:new_trust_level) { TrustLevel[1] } @@ -155,7 +155,7 @@ describe StaffActionLogger do expect { logger.log_theme_change(nil, nil) }.to raise_error(Discourse::InvalidParameters) end - let :theme do + let! :theme do Fabricate(:theme) end @@ -213,7 +213,7 @@ describe StaffActionLogger do end describe "log_user_suspend" do - let(:user) { Fabricate(:user, suspended_at: 10.minutes.ago, suspended_till: 1.day.from_now) } + fab!(:user) { Fabricate(:user, suspended_at: 10.minutes.ago, suspended_till: 1.day.from_now) } it "raises an error when arguments are missing" do expect { logger.log_user_suspend(nil, nil) }.to raise_error(Discourse::InvalidParameters) @@ -234,7 +234,7 @@ describe StaffActionLogger do end describe "log_user_unsuspend" do - let(:user) { Fabricate(:user, suspended_at: 1.day.ago, suspended_till: 7.days.from_now) } + fab!(:user) { Fabricate(:user, suspended_at: 1.day.ago, suspended_till: 7.days.from_now) } it "raises an error when argument is missing" do expect { logger.log_user_unsuspend(nil) }.to raise_error(Discourse::InvalidParameters) @@ -265,8 +265,8 @@ describe StaffActionLogger do end describe "log_badge_revoke" do - let(:user) { Fabricate(:user) } - let(:badge) { Fabricate(:badge) } + fab!(:user) { Fabricate(:user) } + fab!(:badge) { Fabricate(:badge) } let(:user_badge) { BadgeGranter.grant(badge, user) } it "raises an error when argument is missing" do @@ -357,8 +357,8 @@ describe StaffActionLogger do end describe 'log_category_deletion' do - let(:parent_category) { Fabricate(:category) } - let(:category) { Fabricate(:category, parent_category: parent_category) } + fab!(:parent_category) { Fabricate(:category) } + fab!(:category) { Fabricate(:category, parent_category: parent_category) } it "raises an error when category is missing" do expect { logger.log_category_deletion(nil) }.to raise_error(Discourse::InvalidParameters) @@ -379,7 +379,7 @@ describe StaffActionLogger do end describe 'log_category_creation' do - let(:category) { Fabricate(:category) } + fab!(:category) { Fabricate(:category) } it "raises an error when category is missing" do expect { logger.log_category_deletion(nil) }.to raise_error(Discourse::InvalidParameters) @@ -398,7 +398,7 @@ describe StaffActionLogger do end describe 'log_lock_trust_level' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } it "raises an error when argument is missing" do expect { logger.log_lock_trust_level(nil) }.to raise_error(Discourse::InvalidParameters) @@ -418,7 +418,7 @@ describe StaffActionLogger do end describe 'log_user_activate' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } it "raises an error when argument is missing" do expect { logger.log_user_activate(nil, nil) }.to raise_error(Discourse::InvalidParameters) @@ -456,7 +456,7 @@ describe StaffActionLogger do end describe 'log_check_personal_message' do - let(:personal_message) { Fabricate(:private_message_topic) } + fab!(:personal_message) { Fabricate(:private_message_topic) } subject(:log_check_personal_message) { described_class.new(admin).log_check_personal_message(personal_message) } @@ -474,7 +474,7 @@ describe StaffActionLogger do end describe 'log_post_approved' do - let(:approved_post) { Fabricate(:post) } + fab!(:approved_post) { Fabricate(:post) } subject(:log_post_approved) { described_class.new(admin).log_post_approved(approved_post) } @@ -492,7 +492,7 @@ describe StaffActionLogger do end describe 'log_post_rejected' do - let(:reviewable) { Fabricate(:reviewable_queued_post) } + fab!(:reviewable) { Fabricate(:reviewable_queued_post) } subject(:log_post_rejected) { described_class.new(admin).log_post_rejected(reviewable, DateTime.now) } diff --git a/spec/services/topic_status_updater_spec.rb b/spec/services/topic_status_updater_spec.rb index bb11cfbc24..c0a6843e2e 100644 --- a/spec/services/topic_status_updater_spec.rb +++ b/spec/services/topic_status_updater_spec.rb @@ -8,8 +8,8 @@ require_dependency 'post_destroyer' describe TopicStatusUpdater do - let(:user) { Fabricate(:user) } - let(:admin) { Fabricate(:admin) } + fab!(:user) { Fabricate(:user) } + fab!(:admin) { Fabricate(:admin) } it "avoids notifying on automatically closed topics" do # TODO: TopicStatusUpdater should suppress message bus updates from the users it "pretends to read" diff --git a/spec/services/user_authenticator_spec.rb b/spec/services/user_authenticator_spec.rb index 3e3bcd9f0c..b54f282f15 100644 --- a/spec/services/user_authenticator_spec.rb +++ b/spec/services/user_authenticator_spec.rb @@ -21,7 +21,7 @@ end describe UserAuthenticator do context "#finish" do - let(:group) { Fabricate(:group, automatic_membership_email_domains: "discourse.org") } + fab!(:group) { Fabricate(:group, automatic_membership_email_domains: "discourse.org") } before do SiteSetting.enable_github_logins = true diff --git a/spec/services/user_destroyer_spec.rb b/spec/services/user_destroyer_spec.rb index ef55d81d2a..af7596a2ec 100644 --- a/spec/services/user_destroyer_spec.rb +++ b/spec/services/user_destroyer_spec.rb @@ -5,8 +5,8 @@ require_dependency 'user_destroyer' describe UserDestroyer do - let(:user) { Fabricate(:user) } - let(:admin) { Fabricate(:admin) } + fab!(:user) { Fabricate(:user) } + fab!(:admin) { Fabricate(:admin) } describe 'new' do it 'raises an error when user is nil' do diff --git a/spec/services/user_merger_spec.rb b/spec/services/user_merger_spec.rb index b6a3616e56..fcce2e7251 100644 --- a/spec/services/user_merger_spec.rb +++ b/spec/services/user_merger_spec.rb @@ -3,9 +3,9 @@ require 'rails_helper' describe UserMerger do - let!(:target_user) { Fabricate(:user, username: 'alice', email: 'alice@example.com') } - let!(:source_user) { Fabricate(:user, username: 'alice1', email: 'alice@work.com') } - let(:walter) { Fabricate(:walter_white) } + fab!(:target_user) { Fabricate(:user, username: 'alice', email: 'alice@example.com') } + fab!(:source_user) { Fabricate(:user, username: 'alice1', email: 'alice@work.com') } + fab!(:walter) { Fabricate(:walter_white) } def merge_users!(source = nil, target = nil) source ||= source_user @@ -677,8 +677,8 @@ describe UserMerger do # action_type and user_id are not nullable # target_topic_id and acting_user_id are nullable, but always have a value - let(:post1) { Fabricate(:post) } - let(:post2) { Fabricate(:post) } + fab!(:post1) { Fabricate(:post) } + fab!(:post2) { Fabricate(:post) } def log_like_action(acting_user, user, post) UserAction.log_action!(action_type: UserAction::LIKE, diff --git a/spec/services/user_silencer_spec.rb b/spec/services/user_silencer_spec.rb index 2350443079..66bb96a4c7 100644 --- a/spec/services/user_silencer_spec.rb +++ b/spec/services/user_silencer_spec.rb @@ -9,7 +9,7 @@ describe UserSilencer do end describe 'silence' do - let(:user) { Fabricate(:user) } + fab!(:user) { Fabricate(:user) } let(:silencer) { UserSilencer.new(user) } subject(:silence_user) { silencer.silence } @@ -100,8 +100,8 @@ describe UserSilencer do end describe 'hide_posts' do - let(:user) { Fabricate(:user, trust_level: 0) } - let!(:post) { Fabricate(:post, user: user) } + fab!(:user) { Fabricate(:user, trust_level: 0) } + fab!(:post) { Fabricate(:post, user: user) } subject { UserSilencer.new(user) } it "hides all the user's posts" do diff --git a/spec/services/user_updater_spec.rb b/spec/services/user_updater_spec.rb index 7826d2a5a5..8e2515498f 100644 --- a/spec/services/user_updater_spec.rb +++ b/spec/services/user_updater_spec.rb @@ -89,9 +89,9 @@ describe UserUpdater do end describe '#update' do - let(:category) { Fabricate(:category) } - let(:tag) { Fabricate(:tag) } - let(:tag2) { Fabricate(:tag) } + fab!(:category) { Fabricate(:category) } + fab!(:tag) { Fabricate(:tag) } + fab!(:tag2) { Fabricate(:tag) } it 'saves user' do user = Fabricate(:user, name: 'Billy Bob') @@ -274,8 +274,8 @@ describe UserUpdater do end context 'title is from a badge' do - let(:user) { Fabricate(:user, title: 'Emperor') } - let(:badge) { Fabricate(:badge, name: 'Minion') } + fab!(:user) { Fabricate(:user, title: 'Emperor') } + fab!(:badge) { Fabricate(:badge, name: 'Minion') } context 'badge can be used as a title' do before do diff --git a/spec/services/word_watcher_spec.rb b/spec/services/word_watcher_spec.rb index 1df8b20ee3..d7d83caa48 100644 --- a/spec/services/word_watcher_spec.rb +++ b/spec/services/word_watcher_spec.rb @@ -16,7 +16,7 @@ describe WordWatcher do end context "with watched words" do - let!(:anise) { Fabricate(:watched_word, word: "anise", action: WatchedWord.actions[:require_approval]) } + fab!(:anise) { Fabricate(:watched_word, word: "anise", action: WatchedWord.actions[:require_approval]) } it "is falsey without a match" do expect(WordWatcher.new("No liquorice for me, thanks...").word_matches_for_action?(:require_approval)).to be_falsey diff --git a/spec/tasks/posts_spec.rb b/spec/tasks/posts_spec.rb index d410313b58..24f12fdf5a 100644 --- a/spec/tasks/posts_spec.rb +++ b/spec/tasks/posts_spec.rb @@ -5,8 +5,8 @@ require 'highline/import' require 'highline/simulate' RSpec.describe "Post rake tasks" do - let!(:post) { Fabricate(:post, raw: 'The quick brown fox jumps over the lazy dog') } - let!(:tricky_post) { Fabricate(:post, raw: 'Today ^Today') } + fab!(:post) { Fabricate(:post, raw: 'The quick brown fox jumps over the lazy dog') } + fab!(:tricky_post) { Fabricate(:post, raw: 'Today ^Today') } before do Rake::Task.clear