checks < 12 ? self::PENDING : self::FULFILLED; } public function resolve($value): void {} public function reject($reason): void {} public function cancel(): void {} public function wait(bool $unwrap = true): mixed { return null; } }; }); $promise->buildPromise(); $percents = []; $method = new ReflectionMethod(TranscriptionService::class, 'pulseProgressWhilePending'); $method->invoke($service, $promise, function (string $message, int $percent) use (&$percents): void { $percents[] = $percent; }, 'Transcribing…'); $this->assertNotEmpty($percents); $this->assertGreaterThan(50, max($percents)); $this->assertLessThanOrEqual(84, max($percents)); } }