make(Kernel::class);
/*
 * Bootstrap the kernel and prepare application for testing.
 */
$kernel->bootstrap();
// Register the collision service provider so that errors during the test
// setup process are output nicely.
(new Provider())->register();
$output = new ConsoleOutput();
$prefix = 'database.connections.' . config('database.default');
if (!Str::contains(config("$prefix.database"), 'test')) {
    $output->writeln(PHP_EOL . 'Cannot run test process against non-testing database.');
    $output->writeln(PHP_EOL . 'Environment is currently pointed at: "' . config("$prefix.database") . '".');
    exit(1);
}
/*
 * Perform database migrations and reseeding before continuing with
 * running the tests.
 */
if (!env('SKIP_MIGRATIONS')) {
    $output->writeln(PHP_EOL . 'Refreshing database for Integration tests...');
    $kernel->call('migrate:fresh');
    $output->writeln('Seeding database for Integration tests...' . PHP_EOL);
    $kernel->call('db:seed');
} else {
    $output->writeln(PHP_EOL . 'Skipping database migrations...' . PHP_EOL);
}