<?php

use Illuminate\Support\Facades\Artisan;

it('resolves the relocated app paths from apps platform', function (): void {
    expect(realpath(base_path()))->toBe(realpath(dirname(__DIR__, 3)))
        ->and(is_file(base_path('artisan')))->toBeTrue()
        ->and(is_dir(app_path()))->toBeTrue()
        ->and(is_file(config_path('app.php')))->toBeTrue()
        ->and(is_dir(database_path('migrations')))->toBeTrue()
        ->and(is_dir(lang_path('en')))->toBeTrue()
        ->and(is_file(public_path('index.php')))->toBeTrue()
        ->and(is_dir(storage_path('framework')))->toBeTrue()
        ->and(is_file(base_path('vendor/autoload.php')))->toBeTrue();
});

it('still exposes the repo root for repo owned artifacts', function (): void {
    expect(is_dir(repo_path()))->toBeTrue()
        ->and(is_file(repo_path('docker-compose.yml')))->toBeTrue()
        ->and(is_file(repo_path('specs/182-platform-relocation/spec.md')))->toBeTrue()
        ->and(is_file(repo_path('scripts/platform-sail')))->toBeTrue();
});

it('boots artisan from the relocated application root', function (): void {
    $exitCode = Artisan::call('about');

    expect($exitCode)->toBe(0)
        ->and(Artisan::output())->toContain('Environment');
});
