From 398bb2ebd62701748da2383a4ca3477954bbd173 Mon Sep 17 00:00:00 2001 From: Bart Jaskulski <bartek.jaskulski@wpdesk.net> Date: Fri, 3 Sep 2021 10:41:06 +0200 Subject: [PATCH] refactor: add consistency in typing and inline docs --- src/Field/BasicField.php | 14 ++++++++++---- tests/integration/Form/FormWithFieldsTest.php | 10 ++++++++-- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/Field/BasicField.php b/src/Field/BasicField.php index 7158b73..54ef3cc 100644 --- a/src/Field/BasicField.php +++ b/src/Field/BasicField.php @@ -3,6 +3,7 @@ namespace WPDesk\Forms\Field; use WPDesk\Forms\Field; +use WPDesk\Forms\Form\FormWithFields; use WPDesk\Forms\Sanitizer\NoSanitize; use WPDesk\Forms\Serializer; use WPDesk\Forms\Serializer\NoSerialize; @@ -25,6 +26,7 @@ abstract class BasicField implements Field { public function __construct() { $this->meta['class'] = []; + $this->meta['priority'] = 10; } public function get_label() { @@ -299,12 +301,16 @@ abstract class BasicField implements Field { return $this; } - /** @return int */ - public function get_priority() { - return $this->meta['priority'] ?? 10; + public function get_priority(): int { + return $this->meta['priority']; } - public function set_priority( int $priority ) { + /** + * Fields are sorted by lowest priority value first, when getting FormWithFields + * + * @see FormWithFields::get_fields() + */ + public function set_priority( int $priority ): self { $this->meta['priority'] = $priority; return $this; diff --git a/tests/integration/Form/FormWithFieldsTest.php b/tests/integration/Form/FormWithFieldsTest.php index 9d8c2b2..165592d 100644 --- a/tests/integration/Form/FormWithFieldsTest.php +++ b/tests/integration/Form/FormWithFieldsTest.php @@ -21,10 +21,13 @@ class FormWithFieldsTest extends TestCase { $this->form->add_fields( [ ( new InputTextField() ) - ->set_label('third'), + ->set_label('fourth'), ( new SelectField() ) ->set_label('second') ->set_priority(5), + ( new SelectField() ) + ->set_label('third') + ->set_priority(7), ( new InputNumberField() ) ->set_label('first') ->set_priority(1) @@ -38,8 +41,11 @@ class FormWithFieldsTest extends TestCase { ( new SelectField() ) ->set_label('second') ->set_priority(5), - ( new InputTextField() ) + ( new SelectField() ) ->set_label('third') + ->set_priority(7), + ( new InputTextField() ) + ->set_label('fourth') ]; self::assertEquals($expected, $this->form->get_fields()); -- GitLab