[ 'tenant_id' => ['value' => '44'], ], ], ); expect($context->toQuery()) ->toMatchArray([ 'tableFilters' => [ 'tenant_id' => ['value' => '44'], ], 'nav' => [ 'source_surface' => 'finding.detail_section', 'canonical_route_name' => 'admin.operations.view', 'tenant_id' => 44, 'back_label' => 'Back to finding', 'back_url' => '/admin/findings/12', ], ]); }); it('round trips from a request payload', function (): void { $request = Request::create('/admin/operations/12', 'GET', [ 'nav' => [ 'source_surface' => 'backup_set.detail_section', 'canonical_route_name' => 'admin.operations.view', 'tenant_id' => 22, 'back_label' => 'Back to backup set', 'back_url' => '/admin/backup-sets/8', ], ]); $context = CanonicalNavigationContext::fromRequest($request); expect($context)->not->toBeNull() ->and($context?->tenantId)->toBe(22) ->and($context?->backLinkLabel)->toBe('Back to backup set') ->and($context?->backLinkUrl)->toBe('/admin/backup-sets/8'); });