Skip to content

Commit

Permalink
Functionally test enforcing Throwable as rejection
Browse files Browse the repository at this point in the history
  • Loading branch information
WyriHaximus committed May 1, 2019
1 parent d7b9f5f commit ce11aaa
Showing 1 changed file with 37 additions and 0 deletions.
37 changes: 37 additions & 0 deletions tests/FunctionalRejectTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
<?php

namespace React\Promise;

use stdClass;

class FunctionalRejectTest extends TestCase
{
public function nonThrowables()
{
yield '1' => [1];
yield 'true' => [true];
yield 'stdClass' => [new stdClass()];
}

/**
* @test
* @dataProvider nonThrowables
*/
public function shouldThrowWhenCalledWithANonException($input)
{
$errorCollector = new ErrorCollector();
$errorCollector->start();

(new Promise(function ($_, $reject) use ($input) {
$reject($input);
}))->done($this->expectCallableNever());

$errors = $errorCollector->stop();

$this->assertEquals(E_USER_ERROR, $errors[0]['errno']);
$this->assertContains(
'TypeError: Argument 1 passed to React\Promise\reject() must implement interface Throwable',
$errors[0]['errstr']
);
}
}

0 comments on commit ce11aaa

Please sign in to comment.