Implements Spec 116 baseline drift engine v1 (meta fidelity) with coverage guard, stable finding identity, and Filament UI surfaces. Highlights - Baseline capture/compare jobs and supporting services (meta contract hashing via InventoryMetaContract + DriftHasher) - Coverage proof parsing + compare partial outcome behavior - Filament pages/resources/widgets for baseline compare + drift landing improvements - Pest tests for capture/compare/coverage guard and UI start surfaces - Research report: docs/research/golden-master-baseline-drift-deep-analysis.md Validation - `vendor/bin/sail bin pint --dirty` - `vendor/bin/sail artisan test --compact --filter="Baseline"` Notes - No destructive user actions added; compare/capture remain queued jobs. - Provider registration unchanged (Laravel 11+/12 uses bootstrap/providers.php for panel providers; not touched here). Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #141
25 lines
1.1 KiB
PHP
25 lines
1.1 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
it('keeps baseline capture/compare hashing on the InventoryMetaContract engine', function (): void {
|
|
$compareJob = file_get_contents(base_path('app/Jobs/CompareBaselineToTenantJob.php'));
|
|
expect($compareJob)->toBeString();
|
|
expect($compareJob)->toContain('hashItemContent');
|
|
expect($compareJob)->not->toContain('->fingerprint(');
|
|
expect($compareJob)->not->toContain('::fingerprint(');
|
|
|
|
$captureJob = file_get_contents(base_path('app/Jobs/CaptureBaselineSnapshotJob.php'));
|
|
expect($captureJob)->toBeString();
|
|
expect($captureJob)->toContain('InventoryMetaContract');
|
|
expect($captureJob)->toContain('hashItemContent');
|
|
expect($captureJob)->not->toContain('->fingerprint(');
|
|
expect($captureJob)->not->toContain('::fingerprint(');
|
|
|
|
$identity = file_get_contents(base_path('app/Services/Baselines/BaselineSnapshotIdentity.php'));
|
|
expect($identity)->toBeString();
|
|
expect($identity)->toContain('InventoryMetaContract');
|
|
expect($identity)->toContain('hashNormalized');
|
|
expect($identity)->not->toContain('fingerprint(');
|
|
});
|