diff --git a/spec/components/admin_confirmation_spec.rb b/spec/lib/admin_confirmation_spec.rb similarity index 100% rename from spec/components/admin_confirmation_spec.rb rename to spec/lib/admin_confirmation_spec.rb diff --git a/spec/components/admin_user_index_query_spec.rb b/spec/lib/admin_user_index_query_spec.rb similarity index 100% rename from spec/components/admin_user_index_query_spec.rb rename to spec/lib/admin_user_index_query_spec.rb diff --git a/spec/components/archetype_spec.rb b/spec/lib/archetype_spec.rb similarity index 100% rename from spec/components/archetype_spec.rb rename to spec/lib/archetype_spec.rb diff --git a/spec/components/auth/default_current_user_provider_spec.rb b/spec/lib/auth/default_current_user_provider_spec.rb similarity index 100% rename from spec/components/auth/default_current_user_provider_spec.rb rename to spec/lib/auth/default_current_user_provider_spec.rb diff --git a/spec/components/auth/discord_authenticator_spec.rb b/spec/lib/auth/discord_authenticator_spec.rb similarity index 100% rename from spec/components/auth/discord_authenticator_spec.rb rename to spec/lib/auth/discord_authenticator_spec.rb diff --git a/spec/components/auth/facebook_authenticator_spec.rb b/spec/lib/auth/facebook_authenticator_spec.rb similarity index 100% rename from spec/components/auth/facebook_authenticator_spec.rb rename to spec/lib/auth/facebook_authenticator_spec.rb diff --git a/spec/components/auth/github_authenticator_spec.rb b/spec/lib/auth/github_authenticator_spec.rb similarity index 100% rename from spec/components/auth/github_authenticator_spec.rb rename to spec/lib/auth/github_authenticator_spec.rb diff --git a/spec/components/auth/google_oauth2_authenticator_spec.rb b/spec/lib/auth/google_oauth2_authenticator_spec.rb similarity index 100% rename from spec/components/auth/google_oauth2_authenticator_spec.rb rename to spec/lib/auth/google_oauth2_authenticator_spec.rb diff --git a/spec/components/auth/managed_authenticator_spec.rb b/spec/lib/auth/managed_authenticator_spec.rb similarity index 100% rename from spec/components/auth/managed_authenticator_spec.rb rename to spec/lib/auth/managed_authenticator_spec.rb diff --git a/spec/components/auth/omniauth_strategies/discourse_google_oauth2_spec.rb b/spec/lib/auth/omniauth_strategies/discourse_google_oauth2_spec.rb similarity index 100% rename from spec/components/auth/omniauth_strategies/discourse_google_oauth2_spec.rb rename to spec/lib/auth/omniauth_strategies/discourse_google_oauth2_spec.rb diff --git a/spec/components/auth/twitter_authenticator_spec.rb b/spec/lib/auth/twitter_authenticator_spec.rb similarity index 100% rename from spec/components/auth/twitter_authenticator_spec.rb rename to spec/lib/auth/twitter_authenticator_spec.rb diff --git a/spec/components/cache_spec.rb b/spec/lib/cache_spec.rb similarity index 100% rename from spec/components/cache_spec.rb rename to spec/lib/cache_spec.rb diff --git a/spec/components/category_badge_spec.rb b/spec/lib/category_badge_spec.rb similarity index 100% rename from spec/components/category_badge_spec.rb rename to spec/lib/category_badge_spec.rb diff --git a/spec/components/common_passwords/common_passwords_spec.rb b/spec/lib/common_passwords/common_passwords_spec.rb similarity index 100% rename from spec/components/common_passwords/common_passwords_spec.rb rename to spec/lib/common_passwords/common_passwords_spec.rb diff --git a/spec/components/composer_messages_finder_spec.rb b/spec/lib/composer_messages_finder_spec.rb similarity index 100% rename from spec/components/composer_messages_finder_spec.rb rename to spec/lib/composer_messages_finder_spec.rb diff --git a/spec/components/concern/category_hashtag_spec.rb b/spec/lib/concern/category_hashtag_spec.rb similarity index 100% rename from spec/components/concern/category_hashtag_spec.rb rename to spec/lib/concern/category_hashtag_spec.rb diff --git a/spec/components/concern/has_custom_fields_spec.rb b/spec/lib/concern/has_custom_fields_spec.rb similarity index 100% rename from spec/components/concern/has_custom_fields_spec.rb rename to spec/lib/concern/has_custom_fields_spec.rb diff --git a/spec/components/concern/has_search_data_spec.rb b/spec/lib/concern/has_search_data_spec.rb similarity index 100% rename from spec/components/concern/has_search_data_spec.rb rename to spec/lib/concern/has_search_data_spec.rb diff --git a/spec/components/concern/positionable_spec.rb b/spec/lib/concern/positionable_spec.rb similarity index 100% rename from spec/components/concern/positionable_spec.rb rename to spec/lib/concern/positionable_spec.rb diff --git a/spec/components/concern/searchable_spec.rb b/spec/lib/concern/searchable_spec.rb similarity index 100% rename from spec/components/concern/searchable_spec.rb rename to spec/lib/concern/searchable_spec.rb diff --git a/spec/components/concern/second_factor_manager_spec.rb b/spec/lib/concern/second_factor_manager_spec.rb similarity index 100% rename from spec/components/concern/second_factor_manager_spec.rb rename to spec/lib/concern/second_factor_manager_spec.rb diff --git a/spec/components/content_buffer_spec.rb b/spec/lib/content_buffer_spec.rb similarity index 100% rename from spec/components/content_buffer_spec.rb rename to spec/lib/content_buffer_spec.rb diff --git a/spec/components/cooked_post_processor_spec.rb b/spec/lib/cooked_post_processor_spec.rb similarity index 100% rename from spec/components/cooked_post_processor_spec.rb rename to spec/lib/cooked_post_processor_spec.rb diff --git a/spec/components/crawler_detection_spec.rb b/spec/lib/crawler_detection_spec.rb similarity index 100% rename from spec/components/crawler_detection_spec.rb rename to spec/lib/crawler_detection_spec.rb diff --git a/spec/components/current_user_spec.rb b/spec/lib/current_user_spec.rb similarity index 100% rename from spec/components/current_user_spec.rb rename to spec/lib/current_user_spec.rb diff --git a/spec/components/directory_helper_spec.rb b/spec/lib/directory_helper_spec.rb similarity index 100% rename from spec/components/directory_helper_spec.rb rename to spec/lib/directory_helper_spec.rb diff --git a/spec/components/discourse_diff_spec.rb b/spec/lib/discourse_diff_spec.rb similarity index 100% rename from spec/components/discourse_diff_spec.rb rename to spec/lib/discourse_diff_spec.rb diff --git a/spec/components/discourse_event_spec.rb b/spec/lib/discourse_event_spec.rb similarity index 100% rename from spec/components/discourse_event_spec.rb rename to spec/lib/discourse_event_spec.rb diff --git a/spec/components/discourse_hub_spec.rb b/spec/lib/discourse_hub_spec.rb similarity index 100% rename from spec/components/discourse_hub_spec.rb rename to spec/lib/discourse_hub_spec.rb diff --git a/spec/components/discourse_plugin_registry_spec.rb b/spec/lib/discourse_plugin_registry_spec.rb similarity index 100% rename from spec/components/discourse_plugin_registry_spec.rb rename to spec/lib/discourse_plugin_registry_spec.rb diff --git a/spec/components/discourse_redis_spec.rb b/spec/lib/discourse_redis_spec.rb similarity index 100% rename from spec/components/discourse_redis_spec.rb rename to spec/lib/discourse_redis_spec.rb diff --git a/spec/components/discourse_spec.rb b/spec/lib/discourse_spec.rb similarity index 100% rename from spec/components/discourse_spec.rb rename to spec/lib/discourse_spec.rb diff --git a/spec/components/discourse_tagging_spec.rb b/spec/lib/discourse_tagging_spec.rb similarity index 100% rename from spec/components/discourse_tagging_spec.rb rename to spec/lib/discourse_tagging_spec.rb diff --git a/spec/components/discourse_updates_spec.rb b/spec/lib/discourse_updates_spec.rb similarity index 100% rename from spec/components/discourse_updates_spec.rb rename to spec/lib/discourse_updates_spec.rb diff --git a/spec/components/distributed_memoizer_spec.rb b/spec/lib/distributed_memoizer_spec.rb similarity index 100% rename from spec/components/distributed_memoizer_spec.rb rename to spec/lib/distributed_memoizer_spec.rb diff --git a/spec/components/distributed_mutex_spec.rb b/spec/lib/distributed_mutex_spec.rb similarity index 100% rename from spec/components/distributed_mutex_spec.rb rename to spec/lib/distributed_mutex_spec.rb diff --git a/spec/components/email/authentication_results_spec.rb b/spec/lib/email/authentication_results_spec.rb similarity index 100% rename from spec/components/email/authentication_results_spec.rb rename to spec/lib/email/authentication_results_spec.rb diff --git a/spec/components/email/cleaner_spec.rb b/spec/lib/email/cleaner_spec.rb similarity index 100% rename from spec/components/email/cleaner_spec.rb rename to spec/lib/email/cleaner_spec.rb diff --git a/spec/components/email/email_spec.rb b/spec/lib/email/email_spec.rb similarity index 100% rename from spec/components/email/email_spec.rb rename to spec/lib/email/email_spec.rb diff --git a/spec/components/email/message_builder_spec.rb b/spec/lib/email/message_builder_spec.rb similarity index 100% rename from spec/components/email/message_builder_spec.rb rename to spec/lib/email/message_builder_spec.rb diff --git a/spec/components/email/processor_spec.rb b/spec/lib/email/processor_spec.rb similarity index 100% rename from spec/components/email/processor_spec.rb rename to spec/lib/email/processor_spec.rb diff --git a/spec/components/email/receiver_spec.rb b/spec/lib/email/receiver_spec.rb similarity index 100% rename from spec/components/email/receiver_spec.rb rename to spec/lib/email/receiver_spec.rb diff --git a/spec/components/email/renderer_spec.rb b/spec/lib/email/renderer_spec.rb similarity index 100% rename from spec/components/email/renderer_spec.rb rename to spec/lib/email/renderer_spec.rb diff --git a/spec/components/email/sender_spec.rb b/spec/lib/email/sender_spec.rb similarity index 100% rename from spec/components/email/sender_spec.rb rename to spec/lib/email/sender_spec.rb diff --git a/spec/components/email/styles_spec.rb b/spec/lib/email/styles_spec.rb similarity index 100% rename from spec/components/email/styles_spec.rb rename to spec/lib/email/styles_spec.rb diff --git a/spec/components/email_cook_spec.rb b/spec/lib/email_cook_spec.rb similarity index 100% rename from spec/components/email_cook_spec.rb rename to spec/lib/email_cook_spec.rb diff --git a/spec/components/email_updater_spec.rb b/spec/lib/email_updater_spec.rb similarity index 100% rename from spec/components/email_updater_spec.rb rename to spec/lib/email_updater_spec.rb diff --git a/spec/components/enum_spec.rb b/spec/lib/enum_spec.rb similarity index 100% rename from spec/components/enum_spec.rb rename to spec/lib/enum_spec.rb diff --git a/spec/components/excerpt_parser_spec.rb b/spec/lib/excerpt_parser_spec.rb similarity index 100% rename from spec/components/excerpt_parser_spec.rb rename to spec/lib/excerpt_parser_spec.rb diff --git a/spec/components/feed_element_installer_spec.rb b/spec/lib/feed_element_installer_spec.rb similarity index 100% rename from spec/components/feed_element_installer_spec.rb rename to spec/lib/feed_element_installer_spec.rb diff --git a/spec/components/feed_item_accessor_spec.rb b/spec/lib/feed_item_accessor_spec.rb similarity index 100% rename from spec/components/feed_item_accessor_spec.rb rename to spec/lib/feed_item_accessor_spec.rb diff --git a/spec/components/file_helper_spec.rb b/spec/lib/file_helper_spec.rb similarity index 100% rename from spec/components/file_helper_spec.rb rename to spec/lib/file_helper_spec.rb diff --git a/spec/components/file_store/base_store_spec.rb b/spec/lib/file_store/base_store_spec.rb similarity index 100% rename from spec/components/file_store/base_store_spec.rb rename to spec/lib/file_store/base_store_spec.rb diff --git a/spec/components/file_store/local_store_spec.rb b/spec/lib/file_store/local_store_spec.rb similarity index 100% rename from spec/components/file_store/local_store_spec.rb rename to spec/lib/file_store/local_store_spec.rb diff --git a/spec/components/file_store/s3_store_spec.rb b/spec/lib/file_store/s3_store_spec.rb similarity index 100% rename from spec/components/file_store/s3_store_spec.rb rename to spec/lib/file_store/s3_store_spec.rb diff --git a/spec/components/filter_best_posts_spec.rb b/spec/lib/filter_best_posts_spec.rb similarity index 100% rename from spec/components/filter_best_posts_spec.rb rename to spec/lib/filter_best_posts_spec.rb diff --git a/spec/components/final_destination_spec.rb b/spec/lib/final_destination_spec.rb similarity index 100% rename from spec/components/final_destination_spec.rb rename to spec/lib/final_destination_spec.rb diff --git a/spec/components/flag_settings_spec.rb b/spec/lib/flag_settings_spec.rb similarity index 100% rename from spec/components/flag_settings_spec.rb rename to spec/lib/flag_settings_spec.rb diff --git a/spec/components/freedom_patches/safe_buffer_spec.rb b/spec/lib/freedom_patches/safe_buffer_spec.rb similarity index 100% rename from spec/components/freedom_patches/safe_buffer_spec.rb rename to spec/lib/freedom_patches/safe_buffer_spec.rb diff --git a/spec/components/freedom_patches/schema_migration_details_spec.rb b/spec/lib/freedom_patches/schema_migration_details_spec.rb similarity index 100% rename from spec/components/freedom_patches/schema_migration_details_spec.rb rename to spec/lib/freedom_patches/schema_migration_details_spec.rb diff --git a/spec/components/freedom_patches/seed_fu_spec.rb b/spec/lib/freedom_patches/seed_fu_spec.rb similarity index 100% rename from spec/components/freedom_patches/seed_fu_spec.rb rename to spec/lib/freedom_patches/seed_fu_spec.rb diff --git a/spec/components/freedom_patches/translate_accelerator_spec.rb b/spec/lib/freedom_patches/translate_accelerator_spec.rb similarity index 100% rename from spec/components/freedom_patches/translate_accelerator_spec.rb rename to spec/lib/freedom_patches/translate_accelerator_spec.rb diff --git a/spec/components/gaps_spec.rb b/spec/lib/gaps_spec.rb similarity index 100% rename from spec/components/gaps_spec.rb rename to spec/lib/gaps_spec.rb diff --git a/spec/components/global_path_spec.rb b/spec/lib/global_path_spec.rb similarity index 100% rename from spec/components/global_path_spec.rb rename to spec/lib/global_path_spec.rb diff --git a/spec/components/guardian/topic_guardian_spec.rb b/spec/lib/guardian/topic_guardian_spec.rb similarity index 100% rename from spec/components/guardian/topic_guardian_spec.rb rename to spec/lib/guardian/topic_guardian_spec.rb diff --git a/spec/components/guardian/user_guardian_spec.rb b/spec/lib/guardian/user_guardian_spec.rb similarity index 100% rename from spec/components/guardian/user_guardian_spec.rb rename to spec/lib/guardian/user_guardian_spec.rb diff --git a/spec/components/guardian_spec.rb b/spec/lib/guardian_spec.rb similarity index 100% rename from spec/components/guardian_spec.rb rename to spec/lib/guardian_spec.rb diff --git a/spec/components/has_errors_spec.rb b/spec/lib/has_errors_spec.rb similarity index 100% rename from spec/components/has_errors_spec.rb rename to spec/lib/has_errors_spec.rb diff --git a/spec/components/highlight_js/highlight_js_spec.rb b/spec/lib/highlight_js/highlight_js_spec.rb similarity index 100% rename from spec/components/highlight_js/highlight_js_spec.rb rename to spec/lib/highlight_js/highlight_js_spec.rb diff --git a/spec/components/hijack_spec.rb b/spec/lib/hijack_spec.rb similarity index 100% rename from spec/components/hijack_spec.rb rename to spec/lib/hijack_spec.rb diff --git a/spec/components/html_prettify_spec.rb b/spec/lib/html_prettify_spec.rb similarity index 100% rename from spec/components/html_prettify_spec.rb rename to spec/lib/html_prettify_spec.rb diff --git a/spec/components/html_to_markdown_spec.rb b/spec/lib/html_to_markdown_spec.rb similarity index 100% rename from spec/components/html_to_markdown_spec.rb rename to spec/lib/html_to_markdown_spec.rb diff --git a/spec/components/image_sizer_spec.rb b/spec/lib/image_sizer_spec.rb similarity index 100% rename from spec/components/image_sizer_spec.rb rename to spec/lib/image_sizer_spec.rb diff --git a/spec/components/imap/sync_spec.rb b/spec/lib/imap/sync_spec.rb similarity index 100% rename from spec/components/imap/sync_spec.rb rename to spec/lib/imap/sync_spec.rb diff --git a/spec/components/import/normalize_spec.rb b/spec/lib/import/normalize_spec.rb similarity index 100% rename from spec/components/import/normalize_spec.rb rename to spec/lib/import/normalize_spec.rb diff --git a/spec/components/inline_oneboxer_spec.rb b/spec/lib/inline_oneboxer_spec.rb similarity index 100% rename from spec/components/inline_oneboxer_spec.rb rename to spec/lib/inline_oneboxer_spec.rb diff --git a/spec/components/js_locale_helper_spec.rb b/spec/lib/js_locale_helper_spec.rb similarity index 100% rename from spec/components/js_locale_helper_spec.rb rename to spec/lib/js_locale_helper_spec.rb diff --git a/spec/components/json_error_spec.rb b/spec/lib/json_error_spec.rb similarity index 100% rename from spec/components/json_error_spec.rb rename to spec/lib/json_error_spec.rb diff --git a/spec/components/letter_avatar_spec.rb b/spec/lib/letter_avatar_spec.rb similarity index 100% rename from spec/components/letter_avatar_spec.rb rename to spec/lib/letter_avatar_spec.rb diff --git a/spec/components/method_profiler_spec.rb b/spec/lib/method_profiler_spec.rb similarity index 100% rename from spec/components/method_profiler_spec.rb rename to spec/lib/method_profiler_spec.rb diff --git a/spec/components/middleware/anonymous_cache_spec.rb b/spec/lib/middleware/anonymous_cache_spec.rb similarity index 100% rename from spec/components/middleware/anonymous_cache_spec.rb rename to spec/lib/middleware/anonymous_cache_spec.rb diff --git a/spec/components/middleware/discourse_public_exceptions_spec.rb b/spec/lib/middleware/discourse_public_exceptions_spec.rb similarity index 100% rename from spec/components/middleware/discourse_public_exceptions_spec.rb rename to spec/lib/middleware/discourse_public_exceptions_spec.rb diff --git a/spec/components/middleware/enforce_hostname_spec.rb b/spec/lib/middleware/enforce_hostname_spec.rb similarity index 100% rename from spec/components/middleware/enforce_hostname_spec.rb rename to spec/lib/middleware/enforce_hostname_spec.rb diff --git a/spec/components/middleware/request_tracker_spec.rb b/spec/lib/middleware/request_tracker_spec.rb similarity index 100% rename from spec/components/middleware/request_tracker_spec.rb rename to spec/lib/middleware/request_tracker_spec.rb diff --git a/spec/components/migration/column_dropper_spec.rb b/spec/lib/migration/column_dropper_spec.rb similarity index 100% rename from spec/components/migration/column_dropper_spec.rb rename to spec/lib/migration/column_dropper_spec.rb diff --git a/spec/components/migration/safe_migrate_spec.rb b/spec/lib/migration/safe_migrate_spec.rb similarity index 100% rename from spec/components/migration/safe_migrate_spec.rb rename to spec/lib/migration/safe_migrate_spec.rb diff --git a/spec/components/migration/table_dropper_spec.rb b/spec/lib/migration/table_dropper_spec.rb similarity index 100% rename from spec/components/migration/table_dropper_spec.rb rename to spec/lib/migration/table_dropper_spec.rb diff --git a/spec/components/new_post_manager_spec.rb b/spec/lib/new_post_manager_spec.rb similarity index 100% rename from spec/components/new_post_manager_spec.rb rename to spec/lib/new_post_manager_spec.rb diff --git a/spec/components/new_post_result_spec.rb b/spec/lib/new_post_result_spec.rb similarity index 100% rename from spec/components/new_post_result_spec.rb rename to spec/lib/new_post_result_spec.rb diff --git a/spec/components/oneboxer_spec.rb b/spec/lib/oneboxer_spec.rb similarity index 100% rename from spec/components/oneboxer_spec.rb rename to spec/lib/oneboxer_spec.rb diff --git a/spec/components/onpdiff_spec.rb b/spec/lib/onpdiff_spec.rb similarity index 100% rename from spec/components/onpdiff_spec.rb rename to spec/lib/onpdiff_spec.rb diff --git a/spec/components/pbkdf2_spec.rb b/spec/lib/pbkdf2_spec.rb similarity index 100% rename from spec/components/pbkdf2_spec.rb rename to spec/lib/pbkdf2_spec.rb diff --git a/spec/components/pinned_check_spec.rb b/spec/lib/pinned_check_spec.rb similarity index 100% rename from spec/components/pinned_check_spec.rb rename to spec/lib/pinned_check_spec.rb diff --git a/spec/components/plain_text_to_markdown_spec.rb b/spec/lib/plain_text_to_markdown_spec.rb similarity index 100% rename from spec/components/plain_text_to_markdown_spec.rb rename to spec/lib/plain_text_to_markdown_spec.rb diff --git a/spec/components/plugin/filter_manager_spec.rb b/spec/lib/plugin/filter_manager_spec.rb similarity index 100% rename from spec/components/plugin/filter_manager_spec.rb rename to spec/lib/plugin/filter_manager_spec.rb diff --git a/spec/components/plugin/instance_spec.rb b/spec/lib/plugin/instance_spec.rb similarity index 100% rename from spec/components/plugin/instance_spec.rb rename to spec/lib/plugin/instance_spec.rb diff --git a/spec/components/plugin/metadata_spec.rb b/spec/lib/plugin/metadata_spec.rb similarity index 100% rename from spec/components/plugin/metadata_spec.rb rename to spec/lib/plugin/metadata_spec.rb diff --git a/spec/components/post_action_creator_spec.rb b/spec/lib/post_action_creator_spec.rb similarity index 100% rename from spec/components/post_action_creator_spec.rb rename to spec/lib/post_action_creator_spec.rb diff --git a/spec/components/post_creator_spec.rb b/spec/lib/post_creator_spec.rb similarity index 100% rename from spec/components/post_creator_spec.rb rename to spec/lib/post_creator_spec.rb diff --git a/spec/components/post_destroyer_spec.rb b/spec/lib/post_destroyer_spec.rb similarity index 100% rename from spec/components/post_destroyer_spec.rb rename to spec/lib/post_destroyer_spec.rb diff --git a/spec/components/post_locker_spec.rb b/spec/lib/post_locker_spec.rb similarity index 100% rename from spec/components/post_locker_spec.rb rename to spec/lib/post_locker_spec.rb diff --git a/spec/components/post_merger_spec.rb b/spec/lib/post_merger_spec.rb similarity index 100% rename from spec/components/post_merger_spec.rb rename to spec/lib/post_merger_spec.rb diff --git a/spec/components/post_revisor_spec.rb b/spec/lib/post_revisor_spec.rb similarity index 100% rename from spec/components/post_revisor_spec.rb rename to spec/lib/post_revisor_spec.rb diff --git a/spec/components/presence_channel_spec.rb b/spec/lib/presence_channel_spec.rb similarity index 100% rename from spec/components/presence_channel_spec.rb rename to spec/lib/presence_channel_spec.rb diff --git a/spec/components/pretty_text/helpers_spec.rb b/spec/lib/pretty_text/helpers_spec.rb similarity index 100% rename from spec/components/pretty_text/helpers_spec.rb rename to spec/lib/pretty_text/helpers_spec.rb diff --git a/spec/components/pretty_text_spec.rb b/spec/lib/pretty_text_spec.rb similarity index 100% rename from spec/components/pretty_text_spec.rb rename to spec/lib/pretty_text_spec.rb diff --git a/spec/components/promotion_spec.rb b/spec/lib/promotion_spec.rb similarity index 100% rename from spec/components/promotion_spec.rb rename to spec/lib/promotion_spec.rb diff --git a/spec/components/quote_comparer_spec.rb b/spec/lib/quote_comparer_spec.rb similarity index 100% rename from spec/components/quote_comparer_spec.rb rename to spec/lib/quote_comparer_spec.rb diff --git a/spec/components/rate_limiter/limit_exceeded_spec.rb b/spec/lib/rate_limiter/limit_exceeded_spec.rb similarity index 100% rename from spec/components/rate_limiter/limit_exceeded_spec.rb rename to spec/lib/rate_limiter/limit_exceeded_spec.rb diff --git a/spec/components/rate_limiter_spec.rb b/spec/lib/rate_limiter_spec.rb similarity index 100% rename from spec/components/rate_limiter_spec.rb rename to spec/lib/rate_limiter_spec.rb diff --git a/spec/components/redis_store_spec.rb b/spec/lib/redis_store_spec.rb similarity index 100% rename from spec/components/redis_store_spec.rb rename to spec/lib/redis_store_spec.rb diff --git a/spec/components/retrieve_title_spec.rb b/spec/lib/retrieve_title_spec.rb similarity index 100% rename from spec/components/retrieve_title_spec.rb rename to spec/lib/retrieve_title_spec.rb diff --git a/spec/components/rtl_spec.rb b/spec/lib/rtl_spec.rb similarity index 100% rename from spec/components/rtl_spec.rb rename to spec/lib/rtl_spec.rb diff --git a/spec/components/s3_helper_spec.rb b/spec/lib/s3_helper_spec.rb similarity index 100% rename from spec/components/s3_helper_spec.rb rename to spec/lib/s3_helper_spec.rb diff --git a/spec/components/s3_inventory_multisite_spec.rb b/spec/lib/s3_inventory_multisite_spec.rb similarity index 100% rename from spec/components/s3_inventory_multisite_spec.rb rename to spec/lib/s3_inventory_multisite_spec.rb diff --git a/spec/components/s3_inventory_spec.rb b/spec/lib/s3_inventory_spec.rb similarity index 100% rename from spec/components/s3_inventory_spec.rb rename to spec/lib/s3_inventory_spec.rb diff --git a/spec/components/scheduler/defer_spec.rb b/spec/lib/scheduler/defer_spec.rb similarity index 100% rename from spec/components/scheduler/defer_spec.rb rename to spec/lib/scheduler/defer_spec.rb diff --git a/spec/components/score_calculator_spec.rb b/spec/lib/score_calculator_spec.rb similarity index 100% rename from spec/components/score_calculator_spec.rb rename to spec/lib/score_calculator_spec.rb diff --git a/spec/components/scss_checker_spec.rb b/spec/lib/scss_checker_spec.rb similarity index 100% rename from spec/components/scss_checker_spec.rb rename to spec/lib/scss_checker_spec.rb diff --git a/spec/components/search_spec.rb b/spec/lib/search_spec copy.rb similarity index 100% rename from spec/components/search_spec.rb rename to spec/lib/search_spec copy.rb diff --git a/spec/components/secure_session_spec.rb b/spec/lib/secure_session_spec.rb similarity index 100% rename from spec/components/secure_session_spec.rb rename to spec/lib/secure_session_spec.rb diff --git a/spec/components/site_icon_manager_spec.rb b/spec/lib/site_icon_manager_spec.rb similarity index 100% rename from spec/components/site_icon_manager_spec.rb rename to spec/lib/site_icon_manager_spec.rb diff --git a/spec/components/site_setting_extension_multisite_spec.rb b/spec/lib/site_setting_extension_multisite_spec.rb similarity index 100% rename from spec/components/site_setting_extension_multisite_spec.rb rename to spec/lib/site_setting_extension_multisite_spec.rb diff --git a/spec/components/site_setting_extension_spec.rb b/spec/lib/site_setting_extension_spec.rb similarity index 100% rename from spec/components/site_setting_extension_spec.rb rename to spec/lib/site_setting_extension_spec.rb diff --git a/spec/components/site_settings/db_provider_spec.rb b/spec/lib/site_settings/db_provider_spec.rb similarity index 100% rename from spec/components/site_settings/db_provider_spec.rb rename to spec/lib/site_settings/db_provider_spec.rb diff --git a/spec/components/site_settings/defaults_provider_spec.rb b/spec/lib/site_settings/defaults_provider_spec.rb similarity index 100% rename from spec/components/site_settings/defaults_provider_spec.rb rename to spec/lib/site_settings/defaults_provider_spec.rb diff --git a/spec/components/site_settings/local_process_provider_multisite_spec.rb b/spec/lib/site_settings/local_process_provider_multisite_spec.rb similarity index 100% rename from spec/components/site_settings/local_process_provider_multisite_spec.rb rename to spec/lib/site_settings/local_process_provider_multisite_spec.rb diff --git a/spec/components/site_settings/local_process_provider_spec.rb b/spec/lib/site_settings/local_process_provider_spec.rb similarity index 100% rename from spec/components/site_settings/local_process_provider_spec.rb rename to spec/lib/site_settings/local_process_provider_spec.rb diff --git a/spec/components/site_settings/type_supervisor_spec.rb b/spec/lib/site_settings/type_supervisor_spec.rb similarity index 100% rename from spec/components/site_settings/type_supervisor_spec.rb rename to spec/lib/site_settings/type_supervisor_spec.rb diff --git a/spec/components/site_settings/yaml_loader_spec.rb b/spec/lib/site_settings/yaml_loader_spec.rb similarity index 100% rename from spec/components/site_settings/yaml_loader_spec.rb rename to spec/lib/site_settings/yaml_loader_spec.rb diff --git a/spec/components/slug_spec.rb b/spec/lib/slug_spec.rb similarity index 100% rename from spec/components/slug_spec.rb rename to spec/lib/slug_spec.rb diff --git a/spec/components/spam_handler_spec.rb b/spec/lib/spam_handler_spec.rb similarity index 100% rename from spec/components/spam_handler_spec.rb rename to spec/lib/spam_handler_spec.rb diff --git a/spec/components/stylesheet/compiler_spec.rb b/spec/lib/stylesheet/compiler_spec.rb similarity index 100% rename from spec/components/stylesheet/compiler_spec.rb rename to spec/lib/stylesheet/compiler_spec.rb diff --git a/spec/components/stylesheet/importer_spec.rb b/spec/lib/stylesheet/importer_spec.rb similarity index 100% rename from spec/components/stylesheet/importer_spec.rb rename to spec/lib/stylesheet/importer_spec.rb diff --git a/spec/components/stylesheet/manager_spec.rb b/spec/lib/stylesheet/manager_spec.rb similarity index 100% rename from spec/components/stylesheet/manager_spec.rb rename to spec/lib/stylesheet/manager_spec.rb diff --git a/spec/components/suggested_topics_builder_spec.rb b/spec/lib/suggested_topics_builder_spec.rb similarity index 100% rename from spec/components/suggested_topics_builder_spec.rb rename to spec/lib/suggested_topics_builder_spec.rb diff --git a/spec/components/svg_sprite/svg_sprite_spec.rb b/spec/lib/svg_sprite/svg_sprite_spec.rb similarity index 100% rename from spec/components/svg_sprite/svg_sprite_spec.rb rename to spec/lib/svg_sprite/svg_sprite_spec.rb diff --git a/spec/components/system_message_spec.rb b/spec/lib/system_message_spec.rb similarity index 100% rename from spec/components/system_message_spec.rb rename to spec/lib/system_message_spec.rb diff --git a/spec/components/text_cleaner_spec.rb b/spec/lib/text_cleaner_spec.rb similarity index 100% rename from spec/components/text_cleaner_spec.rb rename to spec/lib/text_cleaner_spec.rb diff --git a/spec/components/text_sentinel_spec.rb b/spec/lib/text_sentinel_spec.rb similarity index 100% rename from spec/components/text_sentinel_spec.rb rename to spec/lib/text_sentinel_spec.rb diff --git a/spec/components/theme_settings_manager_spec.rb b/spec/lib/theme_settings_manager_spec.rb similarity index 100% rename from spec/components/theme_settings_manager_spec.rb rename to spec/lib/theme_settings_manager_spec.rb diff --git a/spec/components/theme_settings_parser_spec.rb b/spec/lib/theme_settings_parser_spec.rb similarity index 100% rename from spec/components/theme_settings_parser_spec.rb rename to spec/lib/theme_settings_parser_spec.rb diff --git a/spec/components/theme_store/git_importer_spec.rb b/spec/lib/theme_store/git_importer_spec.rb similarity index 100% rename from spec/components/theme_store/git_importer_spec.rb rename to spec/lib/theme_store/git_importer_spec.rb diff --git a/spec/components/theme_store/zip_exporter_spec.rb b/spec/lib/theme_store/zip_exporter_spec.rb similarity index 100% rename from spec/components/theme_store/zip_exporter_spec.rb rename to spec/lib/theme_store/zip_exporter_spec.rb diff --git a/spec/components/theme_store/zip_importer_spec.rb b/spec/lib/theme_store/zip_importer_spec.rb similarity index 100% rename from spec/components/theme_store/zip_importer_spec.rb rename to spec/lib/theme_store/zip_importer_spec.rb diff --git a/spec/components/timeline_lookup_spec.rb b/spec/lib/timeline_lookup_spec.rb similarity index 100% rename from spec/components/timeline_lookup_spec.rb rename to spec/lib/timeline_lookup_spec.rb diff --git a/spec/components/topic_creator_spec.rb b/spec/lib/topic_creator_spec.rb similarity index 100% rename from spec/components/topic_creator_spec.rb rename to spec/lib/topic_creator_spec.rb diff --git a/spec/components/topic_publisher_spec.rb b/spec/lib/topic_publisher_spec.rb similarity index 100% rename from spec/components/topic_publisher_spec.rb rename to spec/lib/topic_publisher_spec.rb diff --git a/spec/components/topic_query_spec.rb b/spec/lib/topic_query_spec.rb similarity index 100% rename from spec/components/topic_query_spec.rb rename to spec/lib/topic_query_spec.rb diff --git a/spec/components/topic_retriever_spec.rb b/spec/lib/topic_retriever_spec.rb similarity index 100% rename from spec/components/topic_retriever_spec.rb rename to spec/lib/topic_retriever_spec.rb diff --git a/spec/components/topic_view_spec.rb b/spec/lib/topic_view_spec.rb similarity index 100% rename from spec/components/topic_view_spec.rb rename to spec/lib/topic_view_spec.rb diff --git a/spec/components/topics_bulk_action_spec.rb b/spec/lib/topics_bulk_action_spec.rb similarity index 100% rename from spec/components/topics_bulk_action_spec.rb rename to spec/lib/topics_bulk_action_spec.rb diff --git a/spec/components/trashable_spec.rb b/spec/lib/trashable_spec.rb similarity index 100% rename from spec/components/trashable_spec.rb rename to spec/lib/trashable_spec.rb diff --git a/spec/components/trust_level_spec.rb b/spec/lib/trust_level_spec.rb similarity index 100% rename from spec/components/trust_level_spec.rb rename to spec/lib/trust_level_spec.rb diff --git a/spec/components/unread_spec.rb b/spec/lib/unread_spec.rb similarity index 100% rename from spec/components/unread_spec.rb rename to spec/lib/unread_spec.rb diff --git a/spec/components/url_helper_spec.rb b/spec/lib/url_helper_spec.rb similarity index 100% rename from spec/components/url_helper_spec.rb rename to spec/lib/url_helper_spec.rb diff --git a/spec/components/user_lookup_spec.rb b/spec/lib/user_lookup_spec.rb similarity index 100% rename from spec/components/user_lookup_spec.rb rename to spec/lib/user_lookup_spec.rb diff --git a/spec/components/user_name_suggester_spec.rb b/spec/lib/user_name_suggester_spec.rb similarity index 100% rename from spec/components/user_name_suggester_spec.rb rename to spec/lib/user_name_suggester_spec.rb diff --git a/spec/components/validators/allowed_ip_address_validator_spec.rb b/spec/lib/validators/allowed_ip_address_validator_spec.rb similarity index 100% rename from spec/components/validators/allowed_ip_address_validator_spec.rb rename to spec/lib/validators/allowed_ip_address_validator_spec.rb diff --git a/spec/components/validators/category_search_priority_weights_validator_spec.rb b/spec/lib/validators/category_search_priority_weights_validator_spec.rb similarity index 100% rename from spec/components/validators/category_search_priority_weights_validator_spec.rb rename to spec/lib/validators/category_search_priority_weights_validator_spec.rb diff --git a/spec/components/validators/css_color_validator_spec.rb b/spec/lib/validators/css_color_validator_spec.rb similarity index 100% rename from spec/components/validators/css_color_validator_spec.rb rename to spec/lib/validators/css_color_validator_spec.rb diff --git a/spec/components/validators/email_address_validator_spec.rb b/spec/lib/validators/email_address_validator_spec.rb similarity index 100% rename from spec/components/validators/email_address_validator_spec.rb rename to spec/lib/validators/email_address_validator_spec.rb diff --git a/spec/components/validators/email_setting_validator_spec.rb b/spec/lib/validators/email_setting_validator_spec.rb similarity index 100% rename from spec/components/validators/email_setting_validator_spec.rb rename to spec/lib/validators/email_setting_validator_spec.rb diff --git a/spec/components/validators/email_validator_spec.rb b/spec/lib/validators/email_validator_spec.rb similarity index 100% rename from spec/components/validators/email_validator_spec.rb rename to spec/lib/validators/email_validator_spec.rb diff --git a/spec/components/validators/enable_invite_only_validator_spec.rb b/spec/lib/validators/enable_invite_only_validator_spec.rb similarity index 100% rename from spec/components/validators/enable_invite_only_validator_spec.rb rename to spec/lib/validators/enable_invite_only_validator_spec.rb diff --git a/spec/components/validators/enable_local_logins_via_email_validator_spec.rb b/spec/lib/validators/enable_local_logins_via_email_validator_spec.rb similarity index 100% rename from spec/components/validators/enable_local_logins_via_email_validator_spec.rb rename to spec/lib/validators/enable_local_logins_via_email_validator_spec.rb diff --git a/spec/components/validators/enable_sso_validator_spec.rb b/spec/lib/validators/enable_sso_validator_spec.rb similarity index 100% rename from spec/components/validators/enable_sso_validator_spec.rb rename to spec/lib/validators/enable_sso_validator_spec.rb diff --git a/spec/components/validators/external_system_avatars_validator_spec.rb b/spec/lib/validators/external_system_avatars_validator_spec.rb similarity index 100% rename from spec/components/validators/external_system_avatars_validator_spec.rb rename to spec/lib/validators/external_system_avatars_validator_spec.rb diff --git a/spec/components/validators/group_setting_validator_spec.rb b/spec/lib/validators/group_setting_validator_spec.rb similarity index 100% rename from spec/components/validators/group_setting_validator_spec.rb rename to spec/lib/validators/group_setting_validator_spec.rb diff --git a/spec/components/validators/host_list_setting_validator_spec.rb b/spec/lib/validators/host_list_setting_validator_spec.rb similarity index 100% rename from spec/components/validators/host_list_setting_validator_spec.rb rename to spec/lib/validators/host_list_setting_validator_spec.rb diff --git a/spec/components/validators/integer_setting_validator_spec.rb b/spec/lib/validators/integer_setting_validator_spec.rb similarity index 100% rename from spec/components/validators/integer_setting_validator_spec.rb rename to spec/lib/validators/integer_setting_validator_spec.rb diff --git a/spec/components/validators/ip_address_format_validator_spec.rb b/spec/lib/validators/ip_address_format_validator_spec.rb similarity index 100% rename from spec/components/validators/ip_address_format_validator_spec.rb rename to spec/lib/validators/ip_address_format_validator_spec.rb diff --git a/spec/components/validators/max_emojis_validator_spec.rb b/spec/lib/validators/max_emojis_validator_spec.rb similarity index 100% rename from spec/components/validators/max_emojis_validator_spec.rb rename to spec/lib/validators/max_emojis_validator_spec.rb diff --git a/spec/components/validators/max_username_length_validator_spec.rb b/spec/lib/validators/max_username_length_validator_spec.rb similarity index 100% rename from spec/components/validators/max_username_length_validator_spec.rb rename to spec/lib/validators/max_username_length_validator_spec.rb diff --git a/spec/components/validators/min_username_length_validator_spec.rb b/spec/lib/validators/min_username_length_validator_spec.rb similarity index 100% rename from spec/components/validators/min_username_length_validator_spec.rb rename to spec/lib/validators/min_username_length_validator_spec.rb diff --git a/spec/components/validators/password_validator_spec.rb b/spec/lib/validators/password_validator_spec.rb similarity index 100% rename from spec/components/validators/password_validator_spec.rb rename to spec/lib/validators/password_validator_spec.rb diff --git a/spec/components/validators/post_validator_spec.rb b/spec/lib/validators/post_validator_spec.rb similarity index 100% rename from spec/components/validators/post_validator_spec.rb rename to spec/lib/validators/post_validator_spec.rb diff --git a/spec/components/validators/quality_title_validator_spec.rb b/spec/lib/validators/quality_title_validator_spec.rb similarity index 100% rename from spec/components/validators/quality_title_validator_spec.rb rename to spec/lib/validators/quality_title_validator_spec.rb diff --git a/spec/components/validators/regex_presence_validator_spec.rb b/spec/lib/validators/regex_presence_validator_spec.rb similarity index 100% rename from spec/components/validators/regex_presence_validator_spec.rb rename to spec/lib/validators/regex_presence_validator_spec.rb diff --git a/spec/components/validators/regex_setting_validator_spec.rb b/spec/lib/validators/regex_setting_validator_spec.rb similarity index 100% rename from spec/components/validators/regex_setting_validator_spec.rb rename to spec/lib/validators/regex_setting_validator_spec.rb diff --git a/spec/components/validators/reply_by_email_address_validator_spec.rb b/spec/lib/validators/reply_by_email_address_validator_spec.rb similarity index 100% rename from spec/components/validators/reply_by_email_address_validator_spec.rb rename to spec/lib/validators/reply_by_email_address_validator_spec.rb diff --git a/spec/components/validators/reply_by_email_enabled_validator_spec.rb b/spec/lib/validators/reply_by_email_enabled_validator_spec.rb similarity index 100% rename from spec/components/validators/reply_by_email_enabled_validator_spec.rb rename to spec/lib/validators/reply_by_email_enabled_validator_spec.rb diff --git a/spec/components/validators/search_tokenize_chinese_validator_spec.rb b/spec/lib/validators/search_tokenize_chinese_validator_spec.rb similarity index 100% rename from spec/components/validators/search_tokenize_chinese_validator_spec.rb rename to spec/lib/validators/search_tokenize_chinese_validator_spec.rb diff --git a/spec/components/validators/search_tokenize_japanese_validator_spec.rb b/spec/lib/validators/search_tokenize_japanese_validator_spec.rb similarity index 100% rename from spec/components/validators/search_tokenize_japanese_validator_spec.rb rename to spec/lib/validators/search_tokenize_japanese_validator_spec.rb diff --git a/spec/components/validators/selectable_avatars_enabled_validator_spec.rb b/spec/lib/validators/selectable_avatars_enabled_validator_spec.rb similarity index 100% rename from spec/components/validators/selectable_avatars_enabled_validator_spec.rb rename to spec/lib/validators/selectable_avatars_enabled_validator_spec.rb diff --git a/spec/components/validators/sso_overrides_email_validator_spec.rb b/spec/lib/validators/sso_overrides_email_validator_spec.rb similarity index 100% rename from spec/components/validators/sso_overrides_email_validator_spec.rb rename to spec/lib/validators/sso_overrides_email_validator_spec.rb diff --git a/spec/components/validators/string_setting_validator_spec.rb b/spec/lib/validators/string_setting_validator_spec.rb similarity index 100% rename from spec/components/validators/string_setting_validator_spec.rb rename to spec/lib/validators/string_setting_validator_spec.rb diff --git a/spec/components/validators/topic_title_length_validator_spec.rb b/spec/lib/validators/topic_title_length_validator_spec.rb similarity index 100% rename from spec/components/validators/topic_title_length_validator_spec.rb rename to spec/lib/validators/topic_title_length_validator_spec.rb diff --git a/spec/components/validators/unicode_username_allowlist_validator_spec.rb b/spec/lib/validators/unicode_username_allowlist_validator_spec.rb similarity index 100% rename from spec/components/validators/unicode_username_allowlist_validator_spec.rb rename to spec/lib/validators/unicode_username_allowlist_validator_spec.rb diff --git a/spec/components/validators/unicode_username_validator_spec.rb b/spec/lib/validators/unicode_username_validator_spec.rb similarity index 100% rename from spec/components/validators/unicode_username_validator_spec.rb rename to spec/lib/validators/unicode_username_validator_spec.rb diff --git a/spec/components/validators/upload_validator_spec.rb b/spec/lib/validators/upload_validator_spec.rb similarity index 100% rename from spec/components/validators/upload_validator_spec.rb rename to spec/lib/validators/upload_validator_spec.rb diff --git a/spec/components/validators/url_validator_spec.rb b/spec/lib/validators/url_validator_spec.rb similarity index 100% rename from spec/components/validators/url_validator_spec.rb rename to spec/lib/validators/url_validator_spec.rb diff --git a/spec/components/validators/user_full_name_validator_spec.rb b/spec/lib/validators/user_full_name_validator_spec.rb similarity index 100% rename from spec/components/validators/user_full_name_validator_spec.rb rename to spec/lib/validators/user_full_name_validator_spec.rb diff --git a/spec/components/validators/username_setting_validator_spec.rb b/spec/lib/validators/username_setting_validator_spec.rb similarity index 100% rename from spec/components/validators/username_setting_validator_spec.rb rename to spec/lib/validators/username_setting_validator_spec.rb diff --git a/spec/components/version_spec.rb b/spec/lib/version_spec.rb similarity index 100% rename from spec/components/version_spec.rb rename to spec/lib/version_spec.rb diff --git a/spec/components/wizard/step_updater_spec.rb b/spec/lib/wizard/step_updater_spec.rb similarity index 100% rename from spec/components/wizard/step_updater_spec.rb rename to spec/lib/wizard/step_updater_spec.rb diff --git a/spec/components/wizard/wizard_builder_spec.rb b/spec/lib/wizard/wizard_builder_spec.rb similarity index 100% rename from spec/components/wizard/wizard_builder_spec.rb rename to spec/lib/wizard/wizard_builder_spec.rb diff --git a/spec/components/wizard/wizard_spec.rb b/spec/lib/wizard/wizard_spec.rb similarity index 100% rename from spec/components/wizard/wizard_spec.rb rename to spec/lib/wizard/wizard_spec.rb diff --git a/spec/components/wizard/wizard_step_spec.rb b/spec/lib/wizard/wizard_step_spec.rb similarity index 100% rename from spec/components/wizard/wizard_step_spec.rb rename to spec/lib/wizard/wizard_step_spec.rb