From 0a914f9b259197a8ebd74d5cc0f14bb19fbbf631 Mon Sep 17 00:00:00 2001 From: Armin Date: Fri, 4 Oct 2024 03:45:20 +0200 Subject: [PATCH] Use DatabaseTransaactions where applicable --- .env.testing.example | 61 +++++++++++++++++++ .gitignore | 2 + tests/Feature/AdminTest.php | 4 +- tests/Feature/ArticleTest.php | 4 +- tests/Feature/AuthTest.php | 4 +- tests/Feature/CanonicalUrlTest.php | 4 +- tests/Feature/EditorTest.php | 4 +- tests/Feature/ForumTest.php | 4 +- tests/Feature/HomeTest.php | 4 +- tests/Feature/ModeratorTest.php | 4 +- tests/Feature/NavigationTest.php | 4 +- tests/Feature/NotificationsTest.php | 4 +- tests/Feature/ProfileTest.php | 4 +- tests/Feature/SettingsTest.php | 4 +- tests/Feature/SubscriptionsTest.php | 4 +- .../Commands/UpdateArticleViewCountsTest.php | 4 +- tests/Integration/Jobs/DeleteArticleTest.php | 4 +- tests/Integration/Jobs/DeleteThreadTest.php | 4 +- tests/Integration/Jobs/RegisterUserTest.php | 4 +- tests/Integration/Jobs/UnbanUserTest.php | 4 +- tests/Integration/Jobs/UnblockUserTest.php | 4 +- tests/Integration/Jobs/UpdateArticleTest.php | 4 +- tests/Integration/Jobs/UpdateProfileTest.php | 4 +- tests/Integration/Mail/NewReplyEmailTest.php | 4 +- tests/Integration/Models/SubscriptionTest.php | 4 +- tests/Integration/Models/ThreadTest.php | 4 +- tests/Integration/Models/UserTest.php | 4 +- tests/Integration/Queries/SearchUsersTest.php | 4 +- 28 files changed, 115 insertions(+), 52 deletions(-) create mode 100644 .env.testing.example diff --git a/.env.testing.example b/.env.testing.example new file mode 100644 index 000000000..27f652687 --- /dev/null +++ b/.env.testing.example @@ -0,0 +1,61 @@ +APP_NAME="Laravel.io" +APP_ENV=testing +APP_KEY= +APP_DEBUG=true +APP_TIMEZONE=UTC +APP_HOST=laravel.io.test +APP_URL=http://${APP_HOST} + +APP_MAINTENANCE_DRIVER=file +APP_MAINTENANCE_STORE=database + +CACHE_STORE=file +SESSION_DRIVER=file + +AUTH_PASSWORD_RESET_TOKEN_TABLE=password_resets + +BCRYPT_ROUNDS=12 + +DB_DATABASE="db" +DB_USERNAME="db" +DB_PASSWORD="db" +DB_CONNECTION=sqlite +DB_DATABASE=:memory: + +MAIL_MAILER="smtp" +MAIL_HOST="127.0.0.1" +MAIL_PORT="1025" +MAIL_USERNAME=Inbox-Name +MAIL_PASSWORD=null +MAIL_ENCRYPTION=null +MAIL_FROM_NAME="${APP_NAME}" + +GITHUB_ID= +GITHUB_SECRET= +GITHUB_URL=http://laravel.io.test/auth/github + +ALGOLIA_APP_ID= +ALGOLIA_SECRET= +VITE_ALGOLIA_APP_ID="${ALGOLIA_APP_ID}" +VITE_ALGOLIA_SECRET= +VITE_ALGOLIA_THREADS_INDEX=threads +VITE_ALGOLIA_ARTICLES_INDEX=articles +VITE_ALGOLIA_USERS_INDEX=users + +TWITTER_CONSUMER_KEY= +TWITTER_CONSUMER_SECRET= +TWITTER_ACCESS_TOKEN= +TWITTER_ACCESS_SECRET= + +TELEGRAM_BOT_TOKEN= +TELEGRAM_CHANNEL= + +FATHOM_SITE_ID= +FATHOM_TOKEN= +LOG_STACK=single +SESSION_ENCRYPT=false +SESSION_PATH=/ +SESSION_DOMAIN=null +DB_PORT="3306" +DB_HOST="db" +DB_CONNECTION="mariadb" diff --git a/.gitignore b/.gitignore index 0f4c6998b..a16e53059 100755 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,5 @@ .env .phpunit.result.cache !database/schema/*.sql +.ddev/ +.env.testing diff --git a/tests/Feature/AdminTest.php b/tests/Feature/AdminTest.php index c7b748733..868875d83 100644 --- a/tests/Feature/AdminTest.php +++ b/tests/Feature/AdminTest.php @@ -5,11 +5,11 @@ use App\Models\Thread; use App\Models\User; use Carbon\Carbon; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('requires login', function () { $this->get('/admin') diff --git a/tests/Feature/ArticleTest.php b/tests/Feature/ArticleTest.php index b3e8ec048..cbf46d726 100644 --- a/tests/Feature/ArticleTest.php +++ b/tests/Feature/ArticleTest.php @@ -5,14 +5,14 @@ use App\Models\Tag; use App\Notifications\ArticleApprovedNotification; use App\Notifications\ArticleSubmitted; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Notification; use Illuminate\Support\HtmlString; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('users cannot create an article when not logged in', function () { $this->get('/articles/create') diff --git a/tests/Feature/AuthTest.php b/tests/Feature/AuthTest.php index 4313fe2b8..0e10c82dd 100644 --- a/tests/Feature/AuthTest.php +++ b/tests/Feature/AuthTest.php @@ -4,14 +4,14 @@ use Carbon\Carbon; use Illuminate\Auth\Notifications\VerifyEmail; use Illuminate\Contracts\Auth\PasswordBroker; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Notification; use Illuminate\Support\HtmlString; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('users can register', function () { Notification::fake(); diff --git a/tests/Feature/CanonicalUrlTest.php b/tests/Feature/CanonicalUrlTest.php index ce0d2434a..3e0df47c1 100644 --- a/tests/Feature/CanonicalUrlTest.php +++ b/tests/Feature/CanonicalUrlTest.php @@ -3,13 +3,13 @@ use App\Models\Article; use App\Models\Tag; use App\Models\Thread; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Facades\App; use Illuminate\Support\HtmlString; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); function inProduction() { diff --git a/tests/Feature/EditorTest.php b/tests/Feature/EditorTest.php index 8edbe08c9..20bf0e4e1 100644 --- a/tests/Feature/EditorTest.php +++ b/tests/Feature/EditorTest.php @@ -3,12 +3,12 @@ use App\Livewire\Editor; use App\Models\User; use Illuminate\Database\Eloquent\Factories\Sequence; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Livewire\Livewire; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('participants are rendered when mentions are invoked', function () { $participants = User::factory()->count(3)->create(); diff --git a/tests/Feature/ForumTest.php b/tests/Feature/ForumTest.php index b85b8672c..5038379de 100644 --- a/tests/Feature/ForumTest.php +++ b/tests/Feature/ForumTest.php @@ -9,7 +9,7 @@ use App\Models\User; use App\Notifications\MentionNotification; use App\Notifications\ThreadDeletedNotification; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Notifications\DatabaseNotification; use Illuminate\Support\Facades\Notification; use Illuminate\Support\HtmlString; @@ -17,7 +17,7 @@ use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('users can see a list of latest threads', function () { Thread::factory()->create(['subject' => 'The first thread']); diff --git a/tests/Feature/HomeTest.php b/tests/Feature/HomeTest.php index b60056090..13e49031a 100644 --- a/tests/Feature/HomeTest.php +++ b/tests/Feature/HomeTest.php @@ -1,10 +1,10 @@ get('/') diff --git a/tests/Feature/ModeratorTest.php b/tests/Feature/ModeratorTest.php index 14067386a..673769de7 100644 --- a/tests/Feature/ModeratorTest.php +++ b/tests/Feature/ModeratorTest.php @@ -1,11 +1,11 @@ create(); diff --git a/tests/Feature/NavigationTest.php b/tests/Feature/NavigationTest.php index d52e094a7..e34b71495 100644 --- a/tests/Feature/NavigationTest.php +++ b/tests/Feature/NavigationTest.php @@ -4,13 +4,13 @@ use App\Models\Reply; use App\Models\Thread; use App\Notifications\NewReplyNotification; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Str; use Livewire\Livewire; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('a user sees the correct number of notifications', function () { $userOne = $this->createUser(); diff --git a/tests/Feature/NotificationsTest.php b/tests/Feature/NotificationsTest.php index a8bbdde9f..0acf8a727 100644 --- a/tests/Feature/NotificationsTest.php +++ b/tests/Feature/NotificationsTest.php @@ -4,7 +4,7 @@ use App\Models\Reply; use App\Models\Thread; use App\Notifications\NewReplyNotification; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\HtmlString; use Illuminate\Support\Str; use Livewire\Livewire; @@ -13,7 +13,7 @@ use function Pest\Laravel\post; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('users_can_see_notifications', function () { $userOne = $this->createUser(); diff --git a/tests/Feature/ProfileTest.php b/tests/Feature/ProfileTest.php index 76c02c49a..2abfec6c4 100644 --- a/tests/Feature/ProfileTest.php +++ b/tests/Feature/ProfileTest.php @@ -1,10 +1,10 @@ createUser(); diff --git a/tests/Feature/SettingsTest.php b/tests/Feature/SettingsTest.php index 236164a78..8b39f0916 100644 --- a/tests/Feature/SettingsTest.php +++ b/tests/Feature/SettingsTest.php @@ -2,13 +2,13 @@ use App\Models\User; use Database\Factories\UserFactory; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Hash; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('requires login', function () { $this->get('/settings') diff --git a/tests/Feature/SubscriptionsTest.php b/tests/Feature/SubscriptionsTest.php index 86698c0db..8cd2f4cf8 100644 --- a/tests/Feature/SubscriptionsTest.php +++ b/tests/Feature/SubscriptionsTest.php @@ -6,7 +6,7 @@ use App\Models\Thread; use App\Models\User; use App\Notifications\NewReplyNotification; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Foundation\Testing\WithFaker; use Illuminate\Support\Facades\Notification; use Illuminate\Support\HtmlString; @@ -14,7 +14,7 @@ use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); uses(WithFaker::class); test('users receive notifications for new replies to threads where they are subscribed to', function () { diff --git a/tests/Integration/Commands/UpdateArticleViewCountsTest.php b/tests/Integration/Commands/UpdateArticleViewCountsTest.php index fb5c473ea..cc6fac86d 100644 --- a/tests/Integration/Commands/UpdateArticleViewCountsTest.php +++ b/tests/Integration/Commands/UpdateArticleViewCountsTest.php @@ -2,12 +2,12 @@ use App\Console\Commands\UpdateArticleViewCounts; use App\Models\Article; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Facades\Http; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('article view counts can be updated', function () { Http::fake(function () { diff --git a/tests/Integration/Jobs/DeleteArticleTest.php b/tests/Integration/Jobs/DeleteArticleTest.php index debe0203d..f204465c5 100644 --- a/tests/Integration/Jobs/DeleteArticleTest.php +++ b/tests/Integration/Jobs/DeleteArticleTest.php @@ -2,11 +2,11 @@ use App\Jobs\DeleteArticle; use App\Models\Article; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('an article can be deleted', function () { $article = Article::factory()->create(); diff --git a/tests/Integration/Jobs/DeleteThreadTest.php b/tests/Integration/Jobs/DeleteThreadTest.php index b3e9db2c9..d688b40b5 100644 --- a/tests/Integration/Jobs/DeleteThreadTest.php +++ b/tests/Integration/Jobs/DeleteThreadTest.php @@ -4,11 +4,11 @@ use App\Models\Like; use App\Models\Reply; use App\Models\Thread; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('we can delete a thread and its replies', function () { $thread = Thread::factory()->create(); diff --git a/tests/Integration/Jobs/RegisterUserTest.php b/tests/Integration/Jobs/RegisterUserTest.php index 2b05b7cf6..88b4417ba 100644 --- a/tests/Integration/Jobs/RegisterUserTest.php +++ b/tests/Integration/Jobs/RegisterUserTest.php @@ -3,11 +3,11 @@ use App\Exceptions\CannotCreateUser; use App\Jobs\RegisterUser; use App\Models\User; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('we can create a user', function () { $this->dispatch( diff --git a/tests/Integration/Jobs/UnbanUserTest.php b/tests/Integration/Jobs/UnbanUserTest.php index 76fcfe8f9..ba5cbf2b0 100644 --- a/tests/Integration/Jobs/UnbanUserTest.php +++ b/tests/Integration/Jobs/UnbanUserTest.php @@ -2,11 +2,11 @@ use App\Jobs\UnbanUser; use Carbon\Carbon; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); it('can unban a user', function () { $user = $this->createUser(['banned_at' => Carbon::yesterday()]); diff --git a/tests/Integration/Jobs/UnblockUserTest.php b/tests/Integration/Jobs/UnblockUserTest.php index 1594d7592..34f8da0c5 100644 --- a/tests/Integration/Jobs/UnblockUserTest.php +++ b/tests/Integration/Jobs/UnblockUserTest.php @@ -1,11 +1,11 @@ createUser(); diff --git a/tests/Integration/Jobs/UpdateArticleTest.php b/tests/Integration/Jobs/UpdateArticleTest.php index 3795516d9..bf515c362 100644 --- a/tests/Integration/Jobs/UpdateArticleTest.php +++ b/tests/Integration/Jobs/UpdateArticleTest.php @@ -3,11 +3,11 @@ use App\Events\ArticleWasSubmittedForApproval; use App\Jobs\UpdateArticle; use App\Models\Article; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('we can update an article', function () { $user = $this->createUser(); diff --git a/tests/Integration/Jobs/UpdateProfileTest.php b/tests/Integration/Jobs/UpdateProfileTest.php index c62ee7871..a76fccc9e 100644 --- a/tests/Integration/Jobs/UpdateProfileTest.php +++ b/tests/Integration/Jobs/UpdateProfileTest.php @@ -2,12 +2,12 @@ use App\Events\EmailAddressWasChanged; use App\Jobs\UpdateProfile; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Facades\Event; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); test('we can update a user profile', function () { $user = $this->createUser(); diff --git a/tests/Integration/Mail/NewReplyEmailTest.php b/tests/Integration/Mail/NewReplyEmailTest.php index a63c39a24..8b1b33edc 100644 --- a/tests/Integration/Mail/NewReplyEmailTest.php +++ b/tests/Integration/Mail/NewReplyEmailTest.php @@ -4,11 +4,11 @@ use App\Models\Reply; use App\Models\Subscription; use App\Models\User; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); it('contains a note about solutions when the receiver is the thread author', function () { $reply = Reply::factory()->create(); diff --git a/tests/Integration/Models/SubscriptionTest.php b/tests/Integration/Models/SubscriptionTest.php index c7577d681..ab01cc935 100644 --- a/tests/Integration/Models/SubscriptionTest.php +++ b/tests/Integration/Models/SubscriptionTest.php @@ -1,11 +1,11 @@ create()->uuid(); diff --git a/tests/Integration/Models/ThreadTest.php b/tests/Integration/Models/ThreadTest.php index 48f96cced..744a21a4a 100644 --- a/tests/Integration/Models/ThreadTest.php +++ b/tests/Integration/Models/ThreadTest.php @@ -5,12 +5,12 @@ use App\Models\Thread; use App\Models\User; use Carbon\Carbon; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Illuminate\Support\Str; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); it('can find by slug', function () { Thread::factory()->create(['slug' => 'foo']); diff --git a/tests/Integration/Models/UserTest.php b/tests/Integration/Models/UserTest.php index fb39dd545..b174009f5 100644 --- a/tests/Integration/Models/UserTest.php +++ b/tests/Integration/Models/UserTest.php @@ -5,11 +5,11 @@ use App\Models\Reply; use App\Models\Thread; use App\Models\User; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); it('can find by username', function () { $this->createUser(['username' => 'johndoe']); diff --git a/tests/Integration/Queries/SearchUsersTest.php b/tests/Integration/Queries/SearchUsersTest.php index 5a98051f2..138aa58fb 100644 --- a/tests/Integration/Queries/SearchUsersTest.php +++ b/tests/Integration/Queries/SearchUsersTest.php @@ -2,11 +2,11 @@ use App\Models\User; use App\Queries\SearchUsers; -use Illuminate\Foundation\Testing\DatabaseMigrations; +use Illuminate\Foundation\Testing\DatabaseTransactions; use Tests\TestCase; uses(TestCase::class); -uses(DatabaseMigrations::class); +uses(DatabaseTransactions::class); it('can search by name or email or username', function () { User::factory()->create(['name' => 'Freek Murze', 'email' => 'freek@freek.com']);