Skip to content

Speedup tests use DatabaseTransaactions where applicable #1148

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 61 additions & 0 deletions .env.testing.example
Original file line number Diff line number Diff line change
@@ -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"
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@
.env
.phpunit.result.cache
!database/schema/*.sql
.ddev/
.env.testing
4 changes: 2 additions & 2 deletions tests/Feature/AdminTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/ArticleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/AuthTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/CanonicalUrlTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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()
{
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/EditorTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/ForumTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@
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;
use Livewire\Livewire;
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']);
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/HomeTest.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Tests\TestCase;

uses(TestCase::class);
uses(DatabaseMigrations::class);
uses(DatabaseTransactions::class);

test('users can see the homepage', function () {
$this->get('/')
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/ModeratorTest.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

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('moderators can edit any thread', function () {
$thread = Thread::factory()->create();
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/NavigationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/NotificationsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/ProfileTest.php
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
<?php

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Tests\TestCase;

uses(TestCase::class);
uses(DatabaseMigrations::class);
uses(DatabaseTransactions::class);

test('anyone can see a user profile', function () {
$this->createUser();
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/SettingsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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')
Expand Down
4 changes: 2 additions & 2 deletions tests/Feature/SubscriptionsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,15 @@
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;
use Illuminate\Support\Str;
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 () {
Expand Down
4 changes: 2 additions & 2 deletions tests/Integration/Commands/UpdateArticleViewCountsTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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 () {
Expand Down
4 changes: 2 additions & 2 deletions tests/Integration/Jobs/DeleteArticleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions tests/Integration/Jobs/DeleteThreadTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions tests/Integration/Jobs/RegisterUserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
4 changes: 2 additions & 2 deletions tests/Integration/Jobs/UnbanUserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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()]);
Expand Down
4 changes: 2 additions & 2 deletions tests/Integration/Jobs/UnblockUserTest.php
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<?php

use App\Jobs\UnblockUser;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Tests\TestCase;

uses(TestCase::class);
uses(DatabaseMigrations::class);
uses(DatabaseTransactions::class);

it('can unblock a user', function () {
$unblocker = $this->createUser();
Expand Down
4 changes: 2 additions & 2 deletions tests/Integration/Jobs/UpdateArticleTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
4 changes: 2 additions & 2 deletions tests/Integration/Jobs/UpdateProfileTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -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();
Expand Down
Loading