Skip to content

TestGenerator will fail when using Class based rules #2

@tarreislam

Description

@tarreislam

Take this validation request as an example:

 public function rules() { return [ 'organisation_id' => ['required', Rule::in(Organisation::pluck('id'))], 'name' => ['required'], 'function' => ['required'], 'email' => ['nullable', 'mail'], 'phone1' => ['required', new PhoneNumberRule], 'phone2' => ['nullable', new PhoneNumberRule] ]; }

Rule::in will cause preg_match() expects parameter 2 to be string, object given at

 protected function isDateFormat($rules) { $format = array_filter($rules, function($val){ return preg_match('/^date_format/', $val); // $val = Class }); return count($format); }

A potential fix would be to change This piece of code to something like

 foreach ($this->params as $key => $val) { $rules = $this->rules[$key]; $rules = array_map(function ($rule) { if (is_object($rule)) { return mb_strtolower(class_basename($rule)); } return $rule; }, $rules); $case[$val] = $this->getValue($val, $rules); }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions