Browse Source

Merge pull request #16 from jqhph/analysis-5Zk21y

Apply fixes from StyleCI
Jiang Qinghua 5 years ago
parent
commit
274df12c2d

+ 1 - 1
src/Controllers/AdminController.php

@@ -2,8 +2,8 @@
 
 namespace Dcat\Admin\Controllers;
 
-use Dcat\Admin\Layout\Content;
 use Dcat\Admin\IFrameGrid;
+use Dcat\Admin\Layout\Content;
 use Illuminate\Routing\Controller;
 
 class AdminController extends Controller

+ 1 - 2
src/Controllers/PermissionController.php

@@ -5,11 +5,10 @@ namespace Dcat\Admin\Controllers;
 use Dcat\Admin\Admin;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
+use Dcat\Admin\IFrameGrid;
 use Dcat\Admin\Layout\Content;
-use Dcat\Admin\Layout\Row;
 use Dcat\Admin\Models\Repositories\Permission;
 use Dcat\Admin\Show;
-use Dcat\Admin\IFrameGrid;
 use Dcat\Admin\Tree;
 use Illuminate\Support\Str;
 

+ 1 - 1
src/Controllers/RoleController.php

@@ -5,10 +5,10 @@ namespace Dcat\Admin\Controllers;
 use Dcat\Admin\Auth\Permission;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
+use Dcat\Admin\IFrameGrid;
 use Dcat\Admin\Models\Repositories\Role;
 use Dcat\Admin\Models\Role as RoleModel;
 use Dcat\Admin\Show;
-use Dcat\Admin\IFrameGrid;
 use Dcat\Admin\Support\Helper;
 use Dcat\Admin\Widgets\Tree;
 

+ 1 - 1
src/Controllers/UserController.php

@@ -5,10 +5,10 @@ namespace Dcat\Admin\Controllers;
 use Dcat\Admin\Auth\Permission;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
+use Dcat\Admin\IFrameGrid;
 use Dcat\Admin\Models\Administrator as AdministratorModel;
 use Dcat\Admin\Models\Repositories\Administrator;
 use Dcat\Admin\Show;
-use Dcat\Admin\IFrameGrid;
 use Dcat\Admin\Support\Helper;
 use Dcat\Admin\Widgets\Tree;
 

+ 0 - 1
src/Widgets/Metrics/Bar.php

@@ -8,7 +8,6 @@ use Dcat\Admin\Admin;
  * 柱状图卡片.
  *
  * Class Bar
- * @package Dcat\Admin\Widgets\Metrics
  */
 class Bar extends RadialBar
 {

+ 3 - 3
src/Widgets/Metrics/Card.php

@@ -28,21 +28,21 @@ class Card extends Widget
     protected $icon;
 
     /**
-     * 卡片标题
+     * 卡片标题.
      *
      * @var string
      */
     protected $title;
 
     /**
-     * 卡片子标题
+     * 卡片子标题.
      *
      * @var string
      */
     protected $subTitle;
 
     /**
-     * 卡片头部内容
+     * 卡片头部内容.
      *
      * @var string|Renderable|\Closure
      */

+ 0 - 1
src/Widgets/Metrics/Line.php

@@ -6,7 +6,6 @@ namespace Dcat\Admin\Widgets\Metrics;
  * 折/曲线图卡片.
  *
  * Class Line
- * @package Dcat\Admin\Widgets\Metrics
  */
 class Line extends Card
 {

+ 0 - 1
src/Widgets/Metrics/RadialBar.php

@@ -10,7 +10,6 @@ use Illuminate\Contracts\Support\Renderable;
  * 圆形图卡片.
  *
  * Class RadialBar
- * @package Dcat\Admin\Widgets\Metrics
  */
 class RadialBar extends Card
 {

+ 0 - 1
src/Widgets/Metrics/Round.php

@@ -9,7 +9,6 @@ use Dcat\Admin\Support\JavaScript;
  * 环形图卡片.
  *
  * Class Round
- * @package Dcat\Admin\Widgets\Metrics
  */
 class Round extends RadialBar
 {

+ 0 - 1
src/Widgets/Metrics/SingleRound.php

@@ -8,7 +8,6 @@ use Dcat\Admin\Admin;
  * 单环形图卡片.
  *
  * Class SingleRound
- * @package Dcat\Admin\Widgets\Metrics
  */
 class SingleRound extends Round
 {

+ 59 - 59
tests/Browser.php

@@ -1,59 +1,59 @@
-<?php
-
-namespace Tests;
-
-use Laravel\Dusk\Browser as BaseBrowser;
-use Laravel\Dusk\Component;
-use Laravel\Dusk\ElementResolver;
-
-class Browser extends BaseBrowser
-{
-    /**
-     * @var static
-     */
-    public $parent;
-
-    /**
-     * 作用与 with 方法完全相同,不同的在于此方法可以让下层 Broser 对象继承当前 Component 的方法.
-     *
-     * @param string|Component $selector
-     * @param \Closure         $callback
-     *
-     * @return $this
-     */
-    public function extend($selector, $callback)
-    {
-        $browser = new static(
-            $this->driver, new ElementResolver($this->driver, $this->resolver->format($selector))
-        );
-
-        $browser->parent = $this;
-
-        if ($this->page) {
-            $browser->onWithoutAssert($this->page);
-        }
-
-        if ($selector instanceof Component) {
-            $browser->onComponent($selector, $this->resolver);
-        }
-
-        call_user_func($callback, $browser);
-
-        return $this;
-    }
-
-    public function __call($method, $parameters)
-    {
-        $parentComponent = $this->parent ? $this->parent->component : null;
-
-        if ($parentComponent && method_exists($parentComponent, $method)) {
-            array_unshift($parameters, $this);
-
-            $parentComponent->{$method}(...$parameters);
-
-            return $this;
-        }
-
-        return parent::__call($method, $parameters);
-    }
-}
+<?php
+
+namespace Tests;
+
+use Laravel\Dusk\Browser as BaseBrowser;
+use Laravel\Dusk\Component;
+use Laravel\Dusk\ElementResolver;
+
+class Browser extends BaseBrowser
+{
+    /**
+     * @var static
+     */
+    public $parent;
+
+    /**
+     * 作用与 with 方法完全相同,不同的在于此方法可以让下层 Broser 对象继承当前 Component 的方法.
+     *
+     * @param string|Component $selector
+     * @param \Closure         $callback
+     *
+     * @return $this
+     */
+    public function extend($selector, $callback)
+    {
+        $browser = new static(
+            $this->driver, new ElementResolver($this->driver, $this->resolver->format($selector))
+        );
+
+        $browser->parent = $this;
+
+        if ($this->page) {
+            $browser->onWithoutAssert($this->page);
+        }
+
+        if ($selector instanceof Component) {
+            $browser->onComponent($selector, $this->resolver);
+        }
+
+        call_user_func($callback, $browser);
+
+        return $this;
+    }
+
+    public function __call($method, $parameters)
+    {
+        $parentComponent = $this->parent ? $this->parent->component : null;
+
+        if ($parentComponent && method_exists($parentComponent, $method)) {
+            array_unshift($parameters, $this);
+
+            $parentComponent->{$method}(...$parameters);
+
+            return $this;
+        }
+
+        return parent::__call($method, $parameters);
+    }
+}

+ 1 - 1
tests/Browser/Cases/Form/HasManyTest.php

@@ -63,7 +63,7 @@ class HasManyTest extends TestCase
     }
 
     /**
-     * 测试编辑页面
+     * 测试编辑页面.
      *
      * @throws \Throwable
      */

+ 24 - 24
tests/Browser/Cases/Form/ImageTest.php

@@ -1,24 +1,24 @@
-<?php
-
-namespace Tests\Browser\Cases\Form;
-
-use Laravel\Dusk\Browser;
-use Tests\TestCase;
-
-/**
- * 图片上传测试
- *
- * @group form:image
- */
-class ImageTest extends TestCase
-{
-    public function test()
-    {
-        $this->browse(function (Browser $browser) {
-            $browser->visit(admin_base_path('tests/users/create'))
-                ->attach('file-avatar', __DIR__.'/../../../resources/assets/test.jpg');
-
-            $this->assertTrue(true);
-        });
-    }
-}
+<?php
+
+namespace Tests\Browser\Cases\Form;
+
+use Laravel\Dusk\Browser;
+use Tests\TestCase;
+
+/**
+ * 图片上传测试.
+ *
+ * @group form:image
+ */
+class ImageTest extends TestCase
+{
+    public function test()
+    {
+        $this->browse(function (Browser $browser) {
+            $browser->visit(admin_base_path('tests/users/create'))
+                ->attach('file-avatar', __DIR__.'/../../../resources/assets/test.jpg');
+
+            $this->assertTrue(true);
+        });
+    }
+}

+ 193 - 193
tests/Browser/Components/Form/Field/HasMany.php

@@ -1,193 +1,193 @@
-<?php
-
-namespace Tests\Browser\Components\Form\Field;
-
-use Laravel\Dusk\Browser;
-use Tests\Browser\Components\Component;
-use Tests\PHPUnit;
-
-class HasMany extends Component
-{
-    protected $relation;
-
-    public function __construct($relation = null)
-    {
-        $this->relation = $relation;
-    }
-
-    /**
-     * 获取组件的 root selector.
-     *
-     * @return string
-     */
-    public function selector()
-    {
-        return '@container';
-    }
-
-    /**
-     * 浏览器包含组件的断言
-     *
-     * @param  Browser  $browser
-     * @return void
-     */
-    public function assert(Browser $browser)
-    {
-        $browser->assertVisible('@container')
-            ->assertVisible('@add')
-            ->assertVisible('@forms');
-    }
-
-    /**
-     * 读取组件的元素快捷方式.
-     *
-     * @return array
-     */
-    public function elements()
-    {
-        return [
-            '@container' => '.has-many-'.$this->relation,
-            '@add' => '.add',
-            '@remove' => '.remove',
-            '@forms' => ".has-many-{$this->relation}-forms",
-            '@group' => ".has-many-{$this->relation}-forms .fields-group",
-        ];
-    }
-
-    /**
-     * 点击添加按钮.
-     *
-     * @param Browser $browser
-     *
-     * @return int
-     */
-    public function add(Browser $browser)
-    {
-        $browser->script(
-            <<<JS
-$('{$this->formatSelector($browser, '@add')}').click();
-JS
-        );
-
-        // 获取最后一个添加的表单组
-        $index = $this->getLastFormGroupIndex($browser);
-
-        // 验证表单组是否存在
-        $this->withFormGroup($browser, $index);
-
-        return $index;
-    }
-
-    /**
-     * 获取最后一组新增的表单索引.
-     * 
-     * @param Browser $browser
-     * 
-     * @return int|null
-     */
-    public function getLastFormGroupIndex(Browser $browser)
-    {
-        // 获取添加的表单个数
-        $length = $browser->script(
-            <<<JS
-return $('{$this->formatSelector($browser, '@group')}').length;
-JS
-        );
-
-        return $length[0] ?? null;
-    }
-
-    /**
-     * @param Browser $browser
-     * @param \Closure $callback
-     *
-     * @return Browser
-     */
-    public function withLastFormGroup(Browser $browser, \Closure $callback = null)
-    {
-        return $this->withFormGroup($browser, $this->getLastFormGroupIndex($browser), $callback);
-    }
-
-    /**
-     * 检测表单组.
-     *
-     * @param Browser $browser
-     * @param \Closure $callback
-     * 
-     * @return Browser
-     */
-    public function withFormGroup(Browser $browser, $index, ?\Closure $callback = null)
-    {
-        // 添加的表单组容器选择器
-        $groupSelector = $this->formatGroupSelector($browser, $index);
-
-        $browser->assertVisible($groupSelector);
-        $browser->assertVisible("{$groupSelector} {$this->formatSelectorWithoutPrefix($browser, '@remove')}");
-
-        return $callback ? $browser->extend($groupSelector, $callback) : $browser;
-    }
-
-    /**
-     * @param Browser $browser
-     * @param int $index
-     *
-     * @return string
-     */
-    protected function formatGroupSelector(Browser $browser, $index)
-    {
-        return "{$this->formatSelectorWithoutPrefix($browser, '@group')}:nth-of-type({$index})";
-    }
-
-    /**
-     * 移除表单.
-     *
-     * @param Browser $browser
-     * @param int $index
-     *
-     * @return Browser
-     */
-    public function remove(Browser $browser, $index)
-    {
-        $this->withFormGroup($browser, $index, function (Browser $browser) {
-            $browser->script(
-                <<<JS
-$('{$this->formatSelector($browser, $this->elements()['@remove'])}').click();
-JS
-            );
-        });
-
-        return $browser->assertHidden($this->formatGroupSelector($browser, $index));
-    }
-
-    /**
-     * 移除最后一个表单.
-     *
-     * @param Browser $browser
-     *
-     * @return Browser
-     */
-    public function removeLast(Browser $browser)
-    {
-        return $this->remove($browser, $this->getLastFormGroupIndex($browser));
-    }
-
-    /**
-     * 获取hasMany内表单字段值.
-     *
-     * @param Browser $browser
-     * @param string $field
-     * @param string $value
-     *
-     * @return string|null
-     */
-    public function assertFormGroupInputValue(Browser $browser, $field, $value)
-    {
-        $input = $browser->script(
-                <<<JS
-return $('{$browser->resolver->format('.'.$field)}').val();
-JS
-        )[0] ?? null;
-
-        PHPUnit::assertEquals($input, $value);
-    }
-}
+<?php
+
+namespace Tests\Browser\Components\Form\Field;
+
+use Laravel\Dusk\Browser;
+use Tests\Browser\Components\Component;
+use Tests\PHPUnit;
+
+class HasMany extends Component
+{
+    protected $relation;
+
+    public function __construct($relation = null)
+    {
+        $this->relation = $relation;
+    }
+
+    /**
+     * 获取组件的 root selector.
+     *
+     * @return string
+     */
+    public function selector()
+    {
+        return '@container';
+    }
+
+    /**
+     * 浏览器包含组件的断言
+     *
+     * @param  Browser  $browser
+     * @return void
+     */
+    public function assert(Browser $browser)
+    {
+        $browser->assertVisible('@container')
+            ->assertVisible('@add')
+            ->assertVisible('@forms');
+    }
+
+    /**
+     * 读取组件的元素快捷方式.
+     *
+     * @return array
+     */
+    public function elements()
+    {
+        return [
+            '@container' => '.has-many-'.$this->relation,
+            '@add' => '.add',
+            '@remove' => '.remove',
+            '@forms' => ".has-many-{$this->relation}-forms",
+            '@group' => ".has-many-{$this->relation}-forms .fields-group",
+        ];
+    }
+
+    /**
+     * 点击添加按钮.
+     *
+     * @param Browser $browser
+     *
+     * @return int
+     */
+    public function add(Browser $browser)
+    {
+        $browser->script(
+            <<<JS
+$('{$this->formatSelector($browser, '@add')}').click();
+JS
+        );
+
+        // 获取最后一个添加的表单组
+        $index = $this->getLastFormGroupIndex($browser);
+
+        // 验证表单组是否存在
+        $this->withFormGroup($browser, $index);
+
+        return $index;
+    }
+
+    /**
+     * 获取最后一组新增的表单索引.
+     *
+     * @param Browser $browser
+     *
+     * @return int|null
+     */
+    public function getLastFormGroupIndex(Browser $browser)
+    {
+        // 获取添加的表单个数
+        $length = $browser->script(
+            <<<JS
+return $('{$this->formatSelector($browser, '@group')}').length;
+JS
+        );
+
+        return $length[0] ?? null;
+    }
+
+    /**
+     * @param Browser $browser
+     * @param \Closure $callback
+     *
+     * @return Browser
+     */
+    public function withLastFormGroup(Browser $browser, \Closure $callback = null)
+    {
+        return $this->withFormGroup($browser, $this->getLastFormGroupIndex($browser), $callback);
+    }
+
+    /**
+     * 检测表单组.
+     *
+     * @param Browser $browser
+     * @param \Closure $callback
+     *
+     * @return Browser
+     */
+    public function withFormGroup(Browser $browser, $index, ?\Closure $callback = null)
+    {
+        // 添加的表单组容器选择器
+        $groupSelector = $this->formatGroupSelector($browser, $index);
+
+        $browser->assertVisible($groupSelector);
+        $browser->assertVisible("{$groupSelector} {$this->formatSelectorWithoutPrefix($browser, '@remove')}");
+
+        return $callback ? $browser->extend($groupSelector, $callback) : $browser;
+    }
+
+    /**
+     * @param Browser $browser
+     * @param int $index
+     *
+     * @return string
+     */
+    protected function formatGroupSelector(Browser $browser, $index)
+    {
+        return "{$this->formatSelectorWithoutPrefix($browser, '@group')}:nth-of-type({$index})";
+    }
+
+    /**
+     * 移除表单.
+     *
+     * @param Browser $browser
+     * @param int $index
+     *
+     * @return Browser
+     */
+    public function remove(Browser $browser, $index)
+    {
+        $this->withFormGroup($browser, $index, function (Browser $browser) {
+            $browser->script(
+                <<<JS
+$('{$this->formatSelector($browser, $this->elements()['@remove'])}').click();
+JS
+            );
+        });
+
+        return $browser->assertHidden($this->formatGroupSelector($browser, $index));
+    }
+
+    /**
+     * 移除最后一个表单.
+     *
+     * @param Browser $browser
+     *
+     * @return Browser
+     */
+    public function removeLast(Browser $browser)
+    {
+        return $this->remove($browser, $this->getLastFormGroupIndex($browser));
+    }
+
+    /**
+     * 获取hasMany内表单字段值.
+     *
+     * @param Browser $browser
+     * @param string $field
+     * @param string $value
+     *
+     * @return string|null
+     */
+    public function assertFormGroupInputValue(Browser $browser, $field, $value)
+    {
+        $input = $browser->script(
+                <<<JS
+return $('{$browser->resolver->format('.'.$field)}').val();
+JS
+        )[0] ?? null;
+
+        PHPUnit::assertEquals($input, $value);
+    }
+}

+ 111 - 111
tests/Browser/Pages/PainterCreatePage.php

@@ -1,111 +1,111 @@
-<?php
-
-namespace Tests\Browser\Pages;
-
-use Laravel\Dusk\Browser;
-use Tests\Browser\Components\Form\Field\HasMany;
-
-class PainterCreatePage extends Page
-{
-    /**
-     * Get the URL for the page.
-     *
-     * @return string
-     */
-    public function url()
-    {
-        return admin_base_path('tests/painters/create');
-    }
-
-    /**
-     * Assert that the browser is on the page.
-     *
-     * @param  Browser  $browser
-     * @return void
-     */
-    public function assert(Browser $browser)
-    {
-        $browser->assertPathIs($this->url())
-            ->with('@form', function (Browser $browser) {
-                $browser->assertSeeText('Paintings')
-                    ->with(new HasMany('paintings'), function (Browser $browser) {
-                        // 点击新增
-                        $browser->add();
-                        // 点击删除
-                        $browser->removeLast();
-                    });
-            });
-    }
-
-    /**
-     * Get the element shortcuts for the page.
-     *
-     * @return array
-     */
-    public function elements()
-    {
-        return [
-            '@form' => 'form[method="POST"]',
-        ];
-    }
-
-    /**
-     * 注入表单.
-     *
-     * @param Browser $browser
-     * @param array $input
-     *
-     * @return Browser
-     */
-    public function fill(Browser $browser, array $input)
-    {
-        return $browser->with('@form', function (Browser $browser) use ($input) {
-            $inputKeys = [
-                'username',
-                'bio',
-            ];
-
-            foreach ($input as $key => $value) {
-                if (in_array($key, $inputKeys, true)) {
-                    $browser->type($key, $value);
-
-                    continue;
-                }
-
-                if ($key === 'paintings') {
-                    $browser->within(new HasMany($key), function (Browser $browser) use ($value) {
-                        foreach ($value as $input) {
-                            $browser->add();
-
-                            $browser->withLastFormGroup(function (Browser $browser) use ($input) {
-                                foreach ($input as $k => $v) {
-                                    $browser->script(
-                                        <<<JS
-                                    $('{$browser->resolver->format('.'.$k)}').val('$v');
-JS
-                                    );
-                                }
-                            });
-                        }
-                    });
-                }
-            }
-        });
-    }
-
-    /**
-     * 提交表单.
-     *
-     * @param Browser $browser
-     *
-     * @return Browser
-     */
-    public function submit(Browser $browser)
-    {
-        return $browser->with('@form', function (Browser $browser) {
-            $browser->press(__('admin.submit'));
-            $browser->waitForTextInBody(__('admin.save_succeeded'), 2);
-            $browser->waitForLocation(admin_base_path('tests/painters'), 1);
-        });
-    }
-}
+<?php
+
+namespace Tests\Browser\Pages;
+
+use Laravel\Dusk\Browser;
+use Tests\Browser\Components\Form\Field\HasMany;
+
+class PainterCreatePage extends Page
+{
+    /**
+     * Get the URL for the page.
+     *
+     * @return string
+     */
+    public function url()
+    {
+        return admin_base_path('tests/painters/create');
+    }
+
+    /**
+     * Assert that the browser is on the page.
+     *
+     * @param  Browser  $browser
+     * @return void
+     */
+    public function assert(Browser $browser)
+    {
+        $browser->assertPathIs($this->url())
+            ->with('@form', function (Browser $browser) {
+                $browser->assertSeeText('Paintings')
+                    ->with(new HasMany('paintings'), function (Browser $browser) {
+                        // 点击新增
+                        $browser->add();
+                        // 点击删除
+                        $browser->removeLast();
+                    });
+            });
+    }
+
+    /**
+     * Get the element shortcuts for the page.
+     *
+     * @return array
+     */
+    public function elements()
+    {
+        return [
+            '@form' => 'form[method="POST"]',
+        ];
+    }
+
+    /**
+     * 注入表单.
+     *
+     * @param Browser $browser
+     * @param array $input
+     *
+     * @return Browser
+     */
+    public function fill(Browser $browser, array $input)
+    {
+        return $browser->with('@form', function (Browser $browser) use ($input) {
+            $inputKeys = [
+                'username',
+                'bio',
+            ];
+
+            foreach ($input as $key => $value) {
+                if (in_array($key, $inputKeys, true)) {
+                    $browser->type($key, $value);
+
+                    continue;
+                }
+
+                if ($key === 'paintings') {
+                    $browser->within(new HasMany($key), function (Browser $browser) use ($value) {
+                        foreach ($value as $input) {
+                            $browser->add();
+
+                            $browser->withLastFormGroup(function (Browser $browser) use ($input) {
+                                foreach ($input as $k => $v) {
+                                    $browser->script(
+                                        <<<JS
+                                    $('{$browser->resolver->format('.'.$k)}').val('$v');
+JS
+                                    );
+                                }
+                            });
+                        }
+                    });
+                }
+            }
+        });
+    }
+
+    /**
+     * 提交表单.
+     *
+     * @param Browser $browser
+     *
+     * @return Browser
+     */
+    public function submit(Browser $browser)
+    {
+        return $browser->with('@form', function (Browser $browser) {
+            $browser->press(__('admin.submit'));
+            $browser->waitForTextInBody(__('admin.save_succeeded'), 2);
+            $browser->waitForLocation(admin_base_path('tests/painters'), 1);
+        });
+    }
+}

+ 54 - 54
tests/Browser/Pages/PainterEditPage.php

@@ -1,54 +1,54 @@
-<?php
-
-namespace Tests\Browser\Pages;
-
-use Laravel\Dusk\Browser;
-use Tests\Browser\Components\Form\Field\HasMany;
-use Tests\Models\Painter;
-use Tests\Models\Painting;
-use Tests\PHPUnit;
-
-class PainterEditPage extends PainterCreatePage
-{
-    /**
-     * @var \Tests\Models\Painter
-     */
-    protected $painter;
-
-    public function __construct($model)
-    {
-        $this->painter = $model instanceof Painter ? $model : Painter::findOrFail($model);
-
-        PHPUnit::assertTrue($this->painter->getKey() > 0);
-    }
-
-    /**
-     * Get the URL for the page.
-     *
-     * @return string
-     */
-    public function url()
-    {
-        return admin_base_path("tests/painters/{$this->painter->getKey()}/edit");
-    }
-
-    public function assert(Browser $browser)
-    {
-        parent::assert($browser);
-
-        $browser->with('@form', function (Browser $browser) {
-            $browser->assertInputValue('username', $this->painter->username);
-            $browser->assertInputValue('bio', $this->painter->bio);
-
-            $browser->within(new HasMany('paintings'), function (Browser $browser) {
-                $this->painter->paintings->each(function (Painting $painting, $key) use ($browser) {
-                    $browser->withFormGroup($key + 1, function (Browser $browser) use ($painting) {
-                        $browser->assertFormGroupInputValue('title', $painting->title);
-                        $browser->assertFormGroupInputValue('body', $painting->body);
-                        $browser->assertFormGroupInputValue('completed_at', $painting->completed_at);
-                    });
-                });
-            });
-        });
-    }
-}
+<?php
+
+namespace Tests\Browser\Pages;
+
+use Laravel\Dusk\Browser;
+use Tests\Browser\Components\Form\Field\HasMany;
+use Tests\Models\Painter;
+use Tests\Models\Painting;
+use Tests\PHPUnit;
+
+class PainterEditPage extends PainterCreatePage
+{
+    /**
+     * @var \Tests\Models\Painter
+     */
+    protected $painter;
+
+    public function __construct($model)
+    {
+        $this->painter = $model instanceof Painter ? $model : Painter::findOrFail($model);
+
+        PHPUnit::assertTrue($this->painter->getKey() > 0);
+    }
+
+    /**
+     * Get the URL for the page.
+     *
+     * @return string
+     */
+    public function url()
+    {
+        return admin_base_path("tests/painters/{$this->painter->getKey()}/edit");
+    }
+
+    public function assert(Browser $browser)
+    {
+        parent::assert($browser);
+
+        $browser->with('@form', function (Browser $browser) {
+            $browser->assertInputValue('username', $this->painter->username);
+            $browser->assertInputValue('bio', $this->painter->bio);
+
+            $browser->within(new HasMany('paintings'), function (Browser $browser) {
+                $this->painter->paintings->each(function (Painting $painting, $key) use ($browser) {
+                    $browser->withFormGroup($key + 1, function (Browser $browser) use ($painting) {
+                        $browser->assertFormGroupInputValue('title', $painting->title);
+                        $browser->assertFormGroupInputValue('body', $painting->body);
+                        $browser->assertFormGroupInputValue('completed_at', $painting->completed_at);
+                    });
+                });
+            });
+        });
+    }
+}

+ 2 - 3
tests/Controllers/PainterController.php

@@ -2,11 +2,11 @@
 
 namespace Tests\Controllers;
 
-use Tests\Models\Painter;
+use Dcat\Admin\Controllers\AdminController;
 use Dcat\Admin\Form;
 use Dcat\Admin\Grid;
 use Dcat\Admin\Show;
-use Dcat\Admin\Controllers\AdminController;
+use Tests\Models\Painter;
 
 class PainterController extends AdminController
 {
@@ -26,7 +26,6 @@ class PainterController extends AdminController
 
             $grid->filter(function (Grid\Filter $filter) {
                 $filter->equal('id');
-
             });
         });
     }

+ 1 - 1
tests/Models/Painter.php

@@ -8,7 +8,7 @@ class Painter extends Model
 {
     protected $table = 'test_painters';
 
-    protected $fillable = ['username', 'bio',];
+    protected $fillable = ['username', 'bio'];
 
     public function paintings()
     {

+ 9 - 9
tests/PHPUnit.php

@@ -1,9 +1,9 @@
-<?php
-
-namespace Tests;
-
-use PHPUnit\Framework\Assert;
-
-class PHPUnit extends Assert
-{
-}
+<?php
+
+namespace Tests;
+
+use PHPUnit\Framework\Assert;
+
+class PHPUnit extends Assert
+{
+}

+ 1 - 1
tests/resources/migrations/2016_11_22_093148_create_test_tables.php

@@ -1,8 +1,8 @@
 <?php
 
-use Illuminate\Support\Facades\Schema;
 use Illuminate\Database\Migrations\Migration;
 use Illuminate\Database\Schema\Blueprint;
+use Illuminate\Support\Facades\Schema;
 
 class CreateTestTables extends Migration
 {

+ 1 - 2
tests/routes.php

@@ -1,8 +1,8 @@
 <?php
 
+use Dcat\Admin\Admin;
 use Illuminate\Routing\Router;
 use Illuminate\Support\Facades\Route;
-use Dcat\Admin\Admin;
 
 Admin::routes();
 
@@ -14,7 +14,6 @@ Route::group([
     $router->get('/', 'HomeController@index');
 });
 
-
 Route::group([
     'prefix'     => config('admin.route.prefix'),
     'namespace'  => 'Tests\Controllers',