## Summary - implement Spec 177 inventory coverage truth across resolver, badges, KPIs, coverage page, and operation run detail surfaces - add repo-native spec artifacts for the feature under `specs/177-inventory-coverage-truth` - add unit, feature, and browser coverage for truth derivation, continuity, and inventory item filter/pagination smoke paths ## Testing - `vendor/bin/sail bin pint --dirty --format agent` - focused Spec 177 browser smoke file passed with 2 tests / 57 assertions - extended inventory-focused test pack passed with 52 tests / 434 assertions Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #208
35 lines
1.2 KiB
PHP
35 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Support\Badges\BadgeCatalog;
|
|
use App\Support\Badges\BadgeDomain;
|
|
|
|
it('maps inventory coverage states to shared badge specs', function (): void {
|
|
expect(BadgeCatalog::spec(BadgeDomain::InventoryCoverageState, 'succeeded'))
|
|
->label->toBe('Succeeded')
|
|
->color->toBe('success')
|
|
->icon->toBe('heroicon-m-check-circle');
|
|
|
|
expect(BadgeCatalog::spec(BadgeDomain::InventoryCoverageState, 'failed'))
|
|
->label->toBe('Failed')
|
|
->color->toBe('danger')
|
|
->icon->toBe('heroicon-m-x-circle');
|
|
|
|
expect(BadgeCatalog::spec(BadgeDomain::InventoryCoverageState, 'skipped'))
|
|
->label->toBe('Skipped')
|
|
->color->toBe('warning')
|
|
->icon->toBe('heroicon-m-minus-circle');
|
|
|
|
expect(BadgeCatalog::spec(BadgeDomain::InventoryCoverageState, 'unknown'))
|
|
->label->toBe('Unknown')
|
|
->color->toBe('gray')
|
|
->icon->toBe('heroicon-m-question-mark-circle');
|
|
});
|
|
|
|
it('falls back safely for unsupported inventory coverage states', function (): void {
|
|
expect(BadgeCatalog::spec(BadgeDomain::InventoryCoverageState, 'not-real'))
|
|
->label->toBe('Unknown')
|
|
->color->toBe('gray');
|
|
});
|