markTestSkipped('One or more tracked openapi.yaml copies are not available in this runtime environment.'); } $content = file_get_contents($candidate); if ($content === false) { test()->markTestSkipped('Failed to read one or more tracked openapi.yaml copies.'); } $specs[$candidate] = $content; } return $specs; } it('documents transaction draft customer config and auth runtime fields in all tracked openapi copies', function (): void { foreach (economic_draft_customer_openapi_specs_or_skip() as $path => $content) { expect($content, $path)->toContain('/auth/session:'); expect($content, $path)->toContain('transaction_draft_customer_number:'); expect($content, $path)->toContain('EconomicConfigEntry:'); expect($content, $path)->toContain('transactionDraftCustomerNumber'); expect($content, $path)->toContain('invoiceDiscountLayoutNumber'); expect($content, $path)->toContain('nullable: true'); } });