Some checks failed
Main Confidence / confidence (push) Failing after 45s
## Summary - introduce surface-aware compressed governance outcomes and reuse the shared truth/explanation seams for operator-first summaries - apply the compressed outcome hierarchy across baseline, evidence, review, review-pack, canonical review/evidence, and artifact-oriented operation-run surfaces - expand spec 214 fixtures and Pest coverage, and fix tenant-panel route assertions by generating explicit tenant-panel URLs in the affected Filament tests ## Validation - `cd apps/platform && ./vendor/bin/sail bin pint --dirty --format agent` - focused governance compression suite from `specs/214-governance-outcome-compression/quickstart.md` passed (`68` tests, `445` assertions) - `cd apps/platform && ./vendor/bin/sail artisan test --compact tests/Feature/Filament/InventoryItemResourceTest.php tests/Feature/Filament/BackupSetUiEnforcementTest.php tests/Feature/Filament/RestoreRunUiEnforcementTest.php` passed (`18` tests, `81` assertions) Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de> Reviewed-on: #253
43 lines
1.2 KiB
Plaintext
43 lines
1.2 KiB
Plaintext
import { config } from '../config';
|
|
|
|
let context: { errorThrown: boolean; error: any } | null = null;
|
|
|
|
/**
|
|
* Handles dealing with errors for super-gross mode. Creates a context, in which
|
|
* any synchronously thrown errors will be passed to {@link captureError}. Which
|
|
* will record the error such that it will be rethrown after the call back is complete.
|
|
* TODO: Remove in v8
|
|
* @param cb An immediately executed function.
|
|
*/
|
|
export function errorContext(cb: () => void) {
|
|
if (config.useDeprecatedSynchronousErrorHandling) {
|
|
const isRoot = !context;
|
|
if (isRoot) {
|
|
context = { errorThrown: false, error: null };
|
|
}
|
|
cb();
|
|
if (isRoot) {
|
|
const { errorThrown, error } = context!;
|
|
context = null;
|
|
if (errorThrown) {
|
|
throw error;
|
|
}
|
|
}
|
|
} else {
|
|
// This is the general non-deprecated path for everyone that
|
|
// isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)
|
|
cb();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Captures errors only in super-gross mode.
|
|
* @param err the error to capture
|
|
*/
|
|
export function captureError(err: any) {
|
|
if (config.useDeprecatedSynchronousErrorHandling && context) {
|
|
context.errorThrown = true;
|
|
context.error = err;
|
|
}
|
|
}
|