## Summary - move the Laravel application into `apps/platform` and keep the repository root for orchestration, docs, and tooling - update the local command model, Sail/Docker wiring, runtime paths, and ignore rules around the new platform location - add relocation quickstart/contracts plus focused smoke coverage for bootstrap, command model, routes, and runtime behavior ## Validation - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/PlatformRelocation` - integrated browser smoke validated `/up`, `/`, `/admin`, `/admin/choose-workspace`, and tenant route semantics for `200`, `403`, and `404` ## Remaining Rollout Checks - validate Dokploy build context and working-directory assumptions against the new `apps/platform` layout - confirm web, queue, and scheduler processes all start from the expected working directory in staging/production - verify no legacy volume mounts or asset-publish paths still point at the old root-level `public/` or `storage/` locations Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #213
30 lines
1.1 KiB
PHP
30 lines
1.1 KiB
PHP
<?php
|
||
|
||
declare(strict_types=1);
|
||
|
||
use App\Support\OpsUx\OperationUxPresenter;
|
||
|
||
it('builds canonical queued toast copy', function (): void {
|
||
$toast = OperationUxPresenter::queuedToast('policy.sync');
|
||
|
||
expect($toast->getTitle())->toBe('Policy sync queued');
|
||
expect($toast->getBody())->toBe('Queued for execution. Open the operation for progress and next steps.');
|
||
})->group('ops-ux');
|
||
|
||
it('enforces queued toast duration within 3–5 seconds', function (): void {
|
||
$toast = OperationUxPresenter::queuedToast('policy.sync');
|
||
|
||
$duration = $toast->getDuration();
|
||
|
||
expect($duration)->toBeInt();
|
||
expect($duration)->toBeGreaterThanOrEqual(3000);
|
||
expect($duration)->toBeLessThanOrEqual(5000);
|
||
})->group('ops-ux');
|
||
|
||
it('builds canonical already-queued toast copy', function (): void {
|
||
$toast = OperationUxPresenter::alreadyQueuedToast('backup_set.add_policies');
|
||
|
||
expect($toast->getTitle())->toBe('Backup set update already queued');
|
||
expect($toast->getBody())->toBe('A matching operation is already queued or running. No action needed unless it stays stuck.');
|
||
})->group('ops-ux');
|