jqh hace 5 años
padre
commit
3c8e83c287

+ 1 - 1
.travis.yml

@@ -47,7 +47,7 @@ install:
   - php artisan admin:publish --force
   - php artisan admin:install
   - php artisan migrate:rollback
-  - php artisan dusk:chrome-driver 85
+#  - php artisan dusk:chrome-driver 85
 #  - php artisan dusk:update 79
   - cp -f ./tests/routes.php ./app/Admin/
   - cp -rf ./tests/resources/config ./config/

+ 40 - 4
tests/Browser/Components/Form/Field/HasMany.php

@@ -3,6 +3,8 @@
 namespace Tests\Browser\Components\Form\Field;
 
 use Dcat\Admin\Form\Field;
+use Dcat\Admin\Form\NestedForm;
+use Dcat\Utils\Backtrace\BacktraceFormatter;
 use Laravel\Dusk\Browser;
 use Tests\Browser\Components\Component;
 use Tests\PHPUnit;
@@ -51,7 +53,7 @@ class HasMany extends Component
             '@add' => '.add',
             '@remove' => '.remove',
             '@forms' => ".has-many-{$this->relation}-forms",
-            '@group' => ".has-many-{$this->relation}-forms .fields-group",
+            '@group' => ".has-many-{$this->relation}-forms .has-many-{$this->relation}-form",
         ];
     }
 
@@ -97,7 +99,7 @@ return $('{$this->formatSelector($browser, '@group')}').length;
 JS
         );
 
-        return $length[0] ?? null;
+        return $length[0] ?? 0;
     }
 
     /**
@@ -183,14 +185,48 @@ JS
      *
      * @return string|null
      */
-    public function assertFormGroupInputValue(Browser $browser, $field, $value)
+    public function assertFormGroupInputValue(Browser $browser, $field, $value, $id = null)
     {
         $input = $browser->script(
                 <<<JS
-return $('{$browser->resolver->format('.'.Field::FIELD_CLASS_PREFIX.$field)}').val();
+return $('{$this->getFieldSelector($browser, $field, $id)}').val();
 JS
         )[0] ?? null;
 
         PHPUnit::assertEquals($input, $value);
     }
+
+    /**
+     * 填充字段数据.
+     *
+     * @param \Laravel\Dusk\Browser $browser
+     * @param $field
+     * @param $value
+     * @param null $id
+     */
+    public function fillFieldValue(Browser $browser, $field, $value, $id = null)
+    {
+        $browser->script(
+            <<<JS
+$('{$this->getFieldSelector($browser, $field, $id)}').val('$value');
+JS
+        );
+    }
+
+    /**
+     * 获取元素选择器.
+     *
+     * @param $field
+     * @param null $id
+     *
+     * @return array|string
+     */
+    public function getFieldSelector(Browser $browser, $field, $id = null)
+    {
+        return $browser->resolver->format(
+            (new NestedForm($this->relation, $id))
+                ->text($field)
+                ->getElementClassSelector()
+        );
+    }
 }

+ 1 - 3
tests/Browser/Components/Form/Field/Tree.php

@@ -45,10 +45,8 @@ class Tree extends Component
      */
     public function elements()
     {
-        $prefix = Field::FIELD_CLASS_PREFIX;
-
         return [
-            '@container' => ".{$prefix}{$this->name}-tree-wrapper",
+            '@container' => (new Field($this->name))->getElementClassSelector(),
             '@tree'      => '.da-tree',
             '@input'     => sprintf('input[name="%s"][type="hidden"]', $this->name),
         ];

+ 1 - 2
tests/Browser/Pages/MenuPage.php

@@ -36,8 +36,7 @@ class MenuPage extends Page
                     ->assertSeeText('Users')
                     ->assertSeeText('Roles')
                     ->assertSeeText('Permission')
-                    ->assertSeeText('Menu')
-                    ->assertSeeText('Operation log');
+                    ->assertSeeText('Menu');
             }, 1)
             ->within('@form', function (Browser $browser) {
                 $browser->assertSeeText(__('admin.parent_id'))

+ 3 - 8
tests/Browser/Pages/PainterCreatePage.php

@@ -2,7 +2,6 @@
 
 namespace Tests\Browser\Pages;
 
-use Dcat\Admin\Form\Field;
 use Laravel\Dusk\Browser;
 use Tests\Browser\Components\Form\Field\HasMany;
 
@@ -75,17 +74,13 @@ class PainterCreatePage extends Page
                 }
 
                 if ($key === 'paintings') {
-                    $browser->within(new HasMany($key), function (Browser $browser) use ($value) {
+                    $browser->within(new HasMany($key), function (Browser $browser) use ($key, $value) {
                         foreach ($value as $input) {
                             $browser->add();
 
-                            $browser->withLastFormGroup(function (Browser $browser) use ($input) {
+                            $browser->withLastFormGroup(function (Browser $browser) use ($key, $input) {
                                 foreach ($input as $k => $v) {
-                                    $browser->script(
-                                        <<<JS
-                                    $('{$browser->resolver->format('.'.Field::FIELD_CLASS_PREFIX.$k)}').val('$v');
-JS
-                                    );
+                                    $browser->fillFieldValue($k, $v);
                                 }
                             });
                         }

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

@@ -44,9 +44,9 @@ class PainterEditPage extends PainterCreatePage
             $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);
+                        $browser->assertFormGroupInputValue('title', $painting->title, $painting->getKey());
+                        $browser->assertFormGroupInputValue('body', $painting->body, $painting->getKey());
+                        $browser->assertFormGroupInputValue('completed_at', $painting->completed_at, $painting->getKey());
                     });
                 });
             });

+ 9 - 3
tests/CreatesApplication.php

@@ -53,11 +53,17 @@ trait CreatesApplication
 
     protected function destory()
     {
-        (new \CreateAdminTables())->down();
-
+        //(new \CreateAdminTables())->down();
+        //(new \CreateAdminSettingsTable())->down();
+        //(new \CreateAdminExtensionsTable())->down();
+        //(new \UpdateAdminMenuTable())->down();
+        //
         (new \CreateTestTables())->down();
 
-        DB::select("delete from `migrations` where `migration` = '2016_01_04_173148_create_admin_tables'");
+        //DB::select("delete from `migrations` where `migration` = '2016_01_04_173148_create_admin_tables'");
+        //DB::select("delete from `migrations` where `migration` = '2020_09_07_090635_create_admin_settings_table'");
+        //DB::select("delete from `migrations` where `migration` = '2020_09_22_015815_create_admin_extensions_table'");
+        //DB::select("delete from `migrations` where `migration` = '2020_11_01_083237_update_admin_menu_table'");
         DB::select("delete from `migrations` where `migration` = '2016_11_22_093148_create_test_tables'");
 
         Artisan::call('migrate:rollback');