diff --git a/.vscode/launch.json b/.vscode/launch.json index 1832c53..3697e67 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -16,6 +16,7 @@ "-dxdebug.start_with_request=yes" ], "program": "${workspaceFolder}/vendor/bin/phpunit", + "preLaunchTask": "Create Dusk Database", }, { "name": "Debug Workbench", @@ -41,7 +42,8 @@ "args": [ "serve" ], - "postDebugTask": "KillLaravelServer", + "preLaunchTask": "Prepare Workbench", + "postDebugTask": "Kill Laravel Server", "internalConsoleOptions": "openOnSessionStart" } ] diff --git a/.vscode/tasks.json b/.vscode/tasks.json index c6aeb0b..8cfae23 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,16 +4,39 @@ "version": "2.0.0", "tasks": [ { - "label": "KillLaravelServer", + "label": "Prepare Workbench", + "dependsOn": [ + "Create Database", + "Migrate Database", + "Create User" + ] + }, + { + "label": "Create Database", "type": "shell", - "command": "pkill", + "command": "${workspaceFolder}/vendor/bin/testbench", "args": [ - "-f", - "vendor/orchestra/testbench-core/laravel/server.php" + "package:create-sqlite-db" ] }, { - "label": "CreateUser", + "label": "Drop Database", + "type": "shell", + "command": "${workspaceFolder}/vendor/bin/testbench", + "args": [ + "package:drop-sqlite-db" + ] + }, + { + "label": "Migrate Database", + "type": "shell", + "command": "${workspaceFolder}/vendor/bin/testbench", + "args": [ + "migrate" + ] + }, + { + "label": "Create User", "type": "shell", "command": "${workspaceFolder}/vendor/bin/testbench", "args": [ @@ -24,17 +47,26 @@ ] }, { - "label": "Create SQLite Database", + "label": "Kill Laravel Server", "type": "shell", - "command": "${workspaceFolder}/vendor/bin/testbench", + "command": "pkill", + "args": [ + "-f", + "vendor/orchestra/testbench-core/laravel/server.php" + ] + }, + { + "label": "Create Dusk Database", + "type": "shell", + "command": "${workspaceFolder}/vendor/bin/testbench-dusk", "args": [ "package:create-sqlite-db" ] }, { - "label": "Drop SQLite Database", + "label": "Drop Dusk Database", "type": "shell", - "command": "${workspaceFolder}/vendor/bin/testbench", + "command": "${workspaceFolder}/vendor/bin/testbench-dusk", "args": [ "package:drop-sqlite-db" ] diff --git a/phpunit.xml b/phpunit.xml index 98ecdf0..07b53f2 100644 --- a/phpunit.xml +++ b/phpunit.xml @@ -11,6 +11,7 @@ + diff --git a/testbench.yaml b/testbench.yaml index e925879..0729d74 100644 --- a/testbench.yaml +++ b/testbench.yaml @@ -1,16 +1,18 @@ providers: - - Workbench\App\Providers\WorkbenchServiceProvider + - BladeUI\Heroicons\BladeHeroiconsServiceProvider + - BladeUI\Icons\BladeIconsServiceProvider - Livewire\LivewireServiceProvider + - RyanChandler\BladeCaptureDirective\BladeCaptureDirectiveServiceProvider - Filament\FilamentServiceProvider - - Filament\Forms\FormsServiceProvider - - Filament\Widgets\WidgetsServiceProvider - Filament\Support\SupportServiceProvider - - Filament\Notifications\NotificationsServiceProvider - - Filament\Infolists\InfolistsServiceProvider + - Filament\Widgets\WidgetsServiceProvider + - Filament\Tables\TablesServiceProvider - Filament\Actions\ActionsServiceProvider - - BladeUI\Icons\BladeIconsServiceProvider - - BladeUI\Heroicons\BladeHeroiconsServiceProvider + - Filament\Forms\FormsServiceProvider + - Filament\Infolists\InfolistsServiceProvider + - Filament\Notifications\NotificationsServiceProvider - SkyRaptor\FilamentBlocksBuilder\FilamentBlocksBuilderServiceProvider + - Workbench\App\Providers\WorkbenchServiceProvider - Workbench\App\Providers\Filament\AdminPanelProvider migrations: diff --git a/tests/Browser/TestCase.php b/tests/Browser/TestCase.php index 2b5418a..1903440 100644 --- a/tests/Browser/TestCase.php +++ b/tests/Browser/TestCase.php @@ -2,6 +2,7 @@ namespace Tests\SkyRaptor\FilamentBlocksBuilder\Browser; +use Illuminate\Contracts\Config\Repository; use Tests\SkyRaptor\FilamentBlocksBuilder\Concerns\RequiresApplicationEnvironment; /** @@ -11,4 +12,25 @@ class TestCase extends \Orchestra\Testbench\Dusk\TestCase { use RequiresApplicationEnvironment; + + /** + * Define environment setup. + * + * @param Illuminate\Foundation\Application $app + * + * @return void + */ + protected function defineEnvironment($app) + { + /** + * Ensure Browser tests use the peristent SQLite database file managed by Orchestral Dusk. + * + * @see https://packages.tools/testbench-dusk/the-basic.html#supported-database + */ + tap($app['config'], function (Repository $config) { + $config->set('database.default', 'sqlite'); + + $path = $config->get('database.connections.sqlite.database'); + }); + } } \ No newline at end of file