{"id":4727,"date":"2023-10-01T13:29:18","date_gmt":"2023-10-01T13:29:18","guid":{"rendered":"https:\/\/rengga.dev\/blog\/?p=4727"},"modified":"2023-10-01T13:29:18","modified_gmt":"2023-10-01T13:29:18","slug":"form-request-tester-package-for-laravel","status":"publish","type":"post","link":"https:\/\/rengga.dev\/blog\/form-request-tester-package-for-laravel\/","title":{"rendered":"Form Request Tester Package for Laravel"},"content":{"rendered":"<p>The Laravel\u00a0Form Request Tester\u00a0package is a collection of helpers that help test form requests. There are various ways to test form requests, either directly or through HTTP tests, that validate the behavior in form requests.<\/p>\n<p>This package has helpers to scaffold a fake route if you want to isolate tests around your form request. You start by importing the provided testing trait\u00a0<code>TestsFormRequests<\/code>:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">use RenggaDev\\FormRequestTester\\TestsFormRequests;\r\n \r\nclass SomeTest extends TestCase\r\n{\r\n     use TestsFormRequests;\r\n \r\n     \/\/ ...\r\n}<\/pre>\n<p>The trait provides a\u00a0<code>formRequest<\/code>\u00a0method you can use to set up the form request and perform assertions on the form:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">$form = $this-&gt;formRequest(UpdatePost::class)\r\n    -&gt;withRoute('posts\/{post}')\r\n    -&gt;put(['title' =&gt; 'New Title']);\r\n \r\n\/\/ Assertions\r\n$form\r\n    -&gt;assertAuthorized()\r\n    -&gt;assertValidationFailed()\r\n    -&gt;assertValidationErrors(['content'])\r\n    -&gt;assertValidationErrorsMissing(['title'])\r\n    -&gt;assertValidationMessages(['Content field is required']);<\/pre>\n<p>There are some other assertion methods you can use to assert passing validation, authorization, and validation data:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"php\">$form-&gt;assertValidationPassed();\r\n$form-&gt;assertNotAuthorized();\r\n$form-&gt;assertValidationData($data);\r\n$form-&gt;assertValidationDataMissing($data);<\/pre>\n<p>You can learn more about this package, get full installation instructions, and view the\u00a0<a href=\"https:\/\/github.com\/mohammedmanssour\/form-request-tester\">source code<\/a>\u00a0on GitHub.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Laravel\u00a0Form Request Tester\u00a0package is a collection of helpers that help test <a class=\"read-more\" href=\"https:\/\/rengga.dev\/blog\/form-request-tester-package-for-laravel\/\" title=\"Form Request Tester Package for Laravel\" itemprop=\"url\"><\/a><\/p>\n","protected":false},"author":1,"featured_media":4608,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[715,714,708],"newstopic":[597,574],"class_list":{"0":"post-4727","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-development","8":"tag-form-laravel","9":"tag-form-request-tester-package","10":"tag-laravel","11":"newstopic-laravel","12":"newstopic-php"},"_links":{"self":[{"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/posts\/4727","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/comments?post=4727"}],"version-history":[{"count":1,"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/posts\/4727\/revisions"}],"predecessor-version":[{"id":4728,"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/posts\/4727\/revisions\/4728"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/media\/4608"}],"wp:attachment":[{"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/media?parent=4727"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/categories?post=4727"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/tags?post=4727"},{"taxonomy":"newstopic","embeddable":true,"href":"https:\/\/rengga.dev\/blog\/wp-json\/wp\/v2\/newstopic?post=4727"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}