alias(static fn (string $name, $default = '') => ''); } public function testPreviewRendersDraftAgainstSampleValues(): void { $endpoint = new PaymentEmailPreviewEndpoint(); $request = new \WP_REST_Request([ 'subject' => 'Draft {total_due}', 'body' => "Hi {student_name}\n{items}", 'item_line' => '- {label} {amount}', ]); $response = $endpoint->preview($request); self::assertInstanceOf(\WP_REST_Response::class, $response); $data = $response->get_data(); self::assertSame('Draft CAD 55.00', $data['subject']); self::assertStringContainsString('Piano lesson', $data['body']); self::assertStringContainsString('- Piano lesson 35.00', $data['body']); } public function testCanManageRequiresBillingCapability(): void { $endpoint = new PaymentEmailPreviewEndpoint(); Functions\when('is_user_logged_in')->justReturn(true); Functions\when('current_user_can')->alias( static fn (string $cap): bool => $cap === RoleManager::CAP_MANAGE_BILLING ); self::assertTrue($endpoint->canManage()); } public function testCanManageDeniesWithoutCapability(): void { $endpoint = new PaymentEmailPreviewEndpoint(); Functions\when('is_user_logged_in')->justReturn(true); Functions\when('current_user_can')->justReturn(false); self::assertFalse($endpoint->canManage()); } }