From 7f1e9d051be4ff46ea49aafd52b8d07664b3bae7 Mon Sep 17 00:00:00 2001 From: Jeremiah VALERIE Date: Sat, 26 Nov 2016 20:48:49 +0100 Subject: [PATCH] Add Mutation Promise tests --- tests/Executor/MutationsTest.php | 45 ++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 8 deletions(-) diff --git a/tests/Executor/MutationsTest.php b/tests/Executor/MutationsTest.php index 2dadc7b..3a0fc71 100644 --- a/tests/Executor/MutationsTest.php +++ b/tests/Executor/MutationsTest.php @@ -1,16 +1,29 @@ assertEquals($expected, $mutationResult->toArray()); + $this->assertEquals($expected, self::awaitPromise($mutationResult)); } /** @@ -114,7 +127,20 @@ class MutationsTest extends \PHPUnit_Framework_TestCase ) ] ]; - $this->assertArraySubset($expected, $mutationResult->toArray()); + $this->assertArraySubset($expected, self::awaitPromise($mutationResult)); + } + + /** + * @param \GraphQL\Executor\Promise\Promise $promise + * @return array + */ + private static function awaitPromise($promise) + { + $results = null; + $promise->then(function (ExecutionResult $executionResult) use (&$results) { + $results = $executionResult->toArray(); + }); + return $results; } private function schema() @@ -200,12 +226,14 @@ class Root { /** * @param $newNumber - * @return NumberHolder + * + * @return Promise */ public function promiseToChangeTheNumber($newNumber) { - // No promises - return $this->immediatelyChangeTheNumber($newNumber); + return new Promise(function (callable $resolve) use ($newNumber) { + return $resolve($this->immediatelyChangeTheNumber($newNumber)); + }); } /** @@ -217,11 +245,12 @@ class Root { } /** - * @throws \Exception + * @return Promise */ public function promiseAndFailToChangeTheNumber() { - // No promises - throw new \Exception("Cannot change the number"); + return new Promise(function (callable $resolve, callable $reject) { + return $reject(new \Exception("Cannot change the number")); + }); } }