|
| 1 | +<?php |
| 2 | + |
| 3 | +namespace ErrorHeroModule\Spec\Handler\Formatter; |
| 4 | + |
| 5 | +use DateTime; |
| 6 | +use ErrorHeroModule\Handler\Formatter\Json; |
| 7 | +use Kahlan\Plugin\Double; |
| 8 | + |
| 9 | +describe('Json', function () { |
| 10 | + |
| 11 | + describe('->format()', function () { |
| 12 | + |
| 13 | + it('format json', function () { |
| 14 | + |
| 15 | + $event = [ |
| 16 | + 'timestamp' => DateTime::__set_state([ |
| 17 | + 'date' => '2016-12-30 00:42:49.558706', |
| 18 | + 'timezone_type' => 3, |
| 19 | + 'timezone' => 'Asia/Jakarta', |
| 20 | + ]), |
| 21 | + 'priority' => 3, |
| 22 | + 'priorityName' => 'ERR', |
| 23 | + 'message' => '1: a sample error preview', |
| 24 | + 'extra' => [ |
| 25 | + 'url' => 'http://localhost/error-preview?foo=bar&page=1', |
| 26 | + 'file' => '/path/to/app/vendor/samsonasik/error-hero-module/src/Controller/ErrorPreviewController.php', |
| 27 | + 'line' => 11, |
| 28 | + 'error_type' => 'Exception', |
| 29 | + 'trace' => '#0 /path/to/app/vendor/zendframework/zend-mvc/src/Controller/AbstractActionController.php(78): ErrorHeroModule\\Controller\\ErrorPreviewController->exceptionAction() |
| 30 | + #1 /path/to/app/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\\Mvc\\Controller\\AbstractActionController->onDispatch(Object(Zend\\Mvc\\MvcEvent)) |
| 31 | + #2 /path/to/app/vendor/zendframework/zend-eventmanager/src/EventManager.php(179): Zend\\EventManager\\EventManager->triggerListeners(Object(Zend\\Mvc\\MvcEvent), Object(Closure)) |
| 32 | + #3 /path/to/app/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(105): Zend\\EventManager\\EventManager->triggerEventUntil(Object(Closure), Object(Zend\\Mvc\\MvcEvent)) |
| 33 | + #4 /path/to/app/vendor/zendframework/zend-mvc/src/DispatchListener.php(119): Zend\\Mvc\\Controller\\AbstractController->dispatch(Object(Zend\\Http\\PhpEnvironment\\Request), Object(Zend\\Http\\PhpEnvironment\\Response)) |
| 34 | + #5 /path/to/app/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\\Mvc\\DispatchListener->onDispatch(Object(Zend\\Mvc\\MvcEvent)) |
| 35 | + #6 /path/to/app/vendor/zendframework/zend-eventmanager/src/EventManager.php(179): Zend\\EventManager\\EventManager->triggerListeners(Object(Zend\\Mvc\\MvcEvent), Object(Closure)) |
| 36 | + #7 /path/to/app/vendor/zendframework/zend-mvc/src/Application.php(332): Zend\\EventManager\\EventManager->triggerEventUntil(Object(Closure), Object(Zend\\Mvc\\MvcEvent)) |
| 37 | + #8 /path/to/app/public/index.php(40): Zend\\Mvc\\Application->run() |
| 38 | + #9 {main}', |
| 39 | + 'request_data' => [ |
| 40 | + 'query' => [ |
| 41 | + 'foo' => 'bar', |
| 42 | + 'page' => '1', |
| 43 | + ], |
| 44 | + 'request_method' => 'GET', |
| 45 | + 'body_data' => [], |
| 46 | + 'raw_data' => '', |
| 47 | + 'files_data' => [], |
| 48 | + ], |
| 49 | + ], |
| 50 | + ]; |
| 51 | + |
| 52 | + expect('json_encode')->toBeCalled(); |
| 53 | + |
| 54 | + $formatter = new Json(); |
| 55 | + $actual = $formatter->format($event); |
| 56 | + |
| 57 | + expect($actual)->toBe("{\n \"timestamp\": \"2016-12-30T00:42:49+07:00\",\n \"priority\": 3,\n \"priorityName\": \"ERR\",\n \"message\": \"1: a sample error preview\",\n \"extra\": {\n \"url\": \"http://localhost/error-preview?foo=bar&page=1\",\n \"file\": \"/path/to/app/vendor/samsonasik/error-hero-module/src/Controller/ErrorPreviewController.php\",\n \"line\": 11,\n \"error_type\": \"Exception\",\n \"trace\": \"#0 /path/to/app/vendor/zendframework/zend-mvc/src/Controller/AbstractActionController.php(78): ErrorHeroModule\\\\Controller\\\\ErrorPreviewController->exceptionAction()\n #1 /path/to/app/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\\\\Mvc\\\\Controller\\\\AbstractActionController->onDispatch(Object(Zend\\\\Mvc\\\\MvcEvent))\n #2 /path/to/app/vendor/zendframework/zend-eventmanager/src/EventManager.php(179): Zend\\\\EventManager\\\\EventManager->triggerListeners(Object(Zend\\\\Mvc\\\\MvcEvent), Object(Closure))\n #3 /path/to/app/vendor/zendframework/zend-mvc/src/Controller/AbstractController.php(105): Zend\\\\EventManager\\\\EventManager->triggerEventUntil(Object(Closure), Object(Zend\\\\Mvc\\\\MvcEvent))\n #4 /path/to/app/vendor/zendframework/zend-mvc/src/DispatchListener.php(119): Zend\\\\Mvc\\\\Controller\\\\AbstractController->dispatch(Object(Zend\\\\Http\\\\PhpEnvironment\\\\Request), Object(Zend\\\\Http\\\\PhpEnvironment\\\\Response))\n #5 /path/to/app/vendor/zendframework/zend-eventmanager/src/EventManager.php(322): Zend\\\\Mvc\\\\DispatchListener->onDispatch(Object(Zend\\\\Mvc\\\\MvcEvent))\n #6 /path/to/app/vendor/zendframework/zend-eventmanager/src/EventManager.php(179): Zend\\\\EventManager\\\\EventManager->triggerListeners(Object(Zend\\\\Mvc\\\\MvcEvent), Object(Closure))\n #7 /path/to/app/vendor/zendframework/zend-mvc/src/Application.php(332): Zend\\\\EventManager\\\\EventManager->triggerEventUntil(Object(Closure), Object(Zend\\\\Mvc\\\\MvcEvent))\n #8 /path/to/app/public/index.php(40): Zend\\\\Mvc\\\\Application->run()\n #9 {main}\",\n \"request_data\": {\n \"query\": {\n \"foo\": \"bar\",\n \"page\": \"1\"\n },\n \"request_method\": \"GET\",\n \"body_data\": [],\n \"raw_data\": \"\",\n \"files_data\": []\n }\n }\n}"); |
| 58 | + |
| 59 | + }); |
| 60 | + |
| 61 | + }); |
| 62 | + |
| 63 | +}); |
0 commit comments