Add guard against attempting to access property on unsaved template

This commit is contained in:
Marcus Moore 2023-12-21 13:11:44 -08:00
parent 87853921c3
commit 4c62e8ade9
No known key found for this signature in database
2 changed files with 6 additions and 0 deletions

View file

@ -62,6 +62,10 @@ class ReportTemplate extends Model
public function selectValue(string $property, string $model = null)
{
if (!isset($this->options[$property])) {
return null;
}
// If a model is provided then we should ensure we only return
// the value if the model still exists.
if ($model) {

View file

@ -61,6 +61,7 @@ class ReportTemplateTest extends TestCase
$this->assertEquals('4', $savedReport->selectValue('is_a_text_field_as_well'));
$this->assertEquals('', $savedReport->selectValue('non_existent_key'));
$this->assertNull($savedReport->selectValue('contains_a_null_value'));
$this->assertNull((new ReportTemplate)->selectValue('value_on_unsaved_template'));
}
public function testParsingSelectValues()
@ -102,6 +103,7 @@ class ReportTemplateTest extends TestCase
$this->assertNull($templateWithDeletedId->selectValue('single_value', Location::class));
$this->assertNull($templateWithInvalidId->selectValue('single_value', Location::class));
$this->assertNull((new ReportTemplate)->selectValue('value_on_unsaved_template', Location::class));
}
public function testSelectValuesDoNotIncludeDeletedOrNonExistentModels()