🆙 Add fixed cms 🆙

This commit is contained in:
Remco
2026-02-02 19:30:21 +01:00
parent b1a2cab62d
commit b67e0ec2b9
3982 changed files with 193682 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
<?php
namespace Tests;
use Illuminate\Contracts\Console\Kernel;
use Illuminate\Foundation\Application;
trait CreatesApplication
{
/**
* Creates the application.
*/
public function createApplication(): Application
{
$app = require __DIR__ . '/../bootstrap/app.php';
$app->make(Kernel::class)->bootstrap();
return $app;
}
}
@@ -0,0 +1,27 @@
<?php
use App\Models\User;
test('users can authenticate using the login screen', function () {
$user = User::factory()->create();
$response = $this->post('/login', [
'username' => $user->username,
'password' => 'password',
]);
expect($response->status())->toBe(302)
->and(auth()->check())->toBeTrue()
->and(parse_url($response->headers->get('Location'), PHP_URL_PATH))->toBe('/user/me');
});
test('users can not authenticate with invalid password', function () {
$user = User::factory()->create();
$this->post('/login', [
'username' => $user->username,
'password' => 'wrong-password',
]);
expect(auth()->guest())->toBeTrue();
});
@@ -0,0 +1,17 @@
<?php
use App\Providers\RouteServiceProvider;
test('new users can register', function () {
$response = $this->post('/register', [
'username' => 'Test_User',
'mail' => 'test@example.com',
'password' => 'password',
'password_confirmation' => 'password',
'terms' => true,
]);
expect(auth()->check())->toBeTrue()
->and($response->status())->toBe(302)
->and(parse_url($response->headers->get('Location'), PHP_URL_PATH))->toBe(parse_url(RouteServiceProvider::HOME, PHP_URL_PATH));
});
+56
View File
@@ -0,0 +1,56 @@
<?php
/*
|--------------------------------------------------------------------------
| Test Case
|--------------------------------------------------------------------------
|
| The closure you provide to your test functions is always bound to a specific PHPUnit test
| case class. By default, that class is "PHPUnit\Framework\TestCase". Of course, you may
| need to change it using the "uses()" function to bind a different classes or traits.
|
*/
use App\Models\Miscellaneous\WebsiteInstallation;
use App\Models\Miscellaneous\WebsiteSetting;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
uses(TestCase::class, RefreshDatabase::class)->in('Feature');
/*
|--------------------------------------------------------------------------
| Expectations
|--------------------------------------------------------------------------
|
| When you're writing tests, you often need to check that values meet certain conditions. The
| "expect()" function gives you access to a set of "expectations" methods that you can use
| to assert different things. Of course, you may extend the Expectation API at any time.
|
*/
expect()->extend('toBeOne', function () {
return $this->toBe(1);
});
/*
|--------------------------------------------------------------------------
| Functions
|--------------------------------------------------------------------------
|
| While Pest is very powerful out-of-the-box, you may have some testing code specific to your
| project that you don't want to repeat in every file. Here you can also expose helpers as
| global functions to help you to reduce the number of lines of code in your test files.
|
*/
function installHotel(): void
{
WebsiteInstallation::query()->insert(['completed' => true, 'installation_key' => 'key']);
WebsiteSetting::query()->insert([
'key' => 'max_accounts_per_ip',
'value' => 10,
'comment' => '',
]);
}
+51
View File
@@ -0,0 +1,51 @@
<?php
namespace Tests;
use Database\Seeders\TestingSeeder;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\TestCase as BaseTestCase;
use Illuminate\Support\Facades\DB;
abstract class TestCase extends BaseTestCase
{
use CreatesApplication, RefreshDatabase;
protected function refreshTestDatabase()
{
if (! RefreshDatabase::$migrated) {
// Create database if it doesn't exist
$this->createTestDatabase();
// Run migrations (including CoreSqlFile migration)
$this->artisan('migrate:fresh');
// Force TestingSeeder to run
$this->artisan('db:seed', ['--class' => TestingSeeder::class]);
RefreshDatabase::$migrated = true;
}
$this->beginDatabaseTransaction();
}
protected function createTestDatabase(): void
{
$database = config('database.connections.mariadb.database');
$connection = config('database.connections.mariadb');
// Connect to MariaDB without specifying database
$tempConnection = [
'driver' => 'mysql',
'host' => $connection['host'],
'port' => $connection['port'],
'username' => $connection['username'],
'password' => $connection['password'],
];
config(['database.connections.temp' => $tempConnection]);
DB::connection('temp')->statement("CREATE DATABASE IF NOT EXISTS `{$database}`");
DB::purge('temp');
}
}
+5
View File
@@ -0,0 +1,5 @@
<?php
test('that true is true', function () {
expect(true)->toBeTrue();
});