$this->
assertSession()->
pageTextContains("{
$field->
getLabel()} field is required."
);
// Create a new node with the uploaded file.
$nid =
$this->
uploadNodeFile($test_file,
$field_name,
$type_name);
$this->
assertNotFalse($nid,
new FormattableMarkup('uploadNodeFile(@test_file, @field_name, @type_name) succeeded',
['@test_file' =>
$test_file->
getFileUri(), '@field_name' =>
$field_name, '@type_name' =>
$type_name]));
$node_storage->
resetCache([$nid]);
$node =
$node_storage->
load($nid);
$node_file = File::
load($node->
{$field_name}->target_id
);
$this->
assertFileExists($node_file->
getFileUri());
$this->
assertFileEntryExists($node_file, 'File entry exists after uploading to the required field.'
);
// Try again with a multiple value field.
$storage->
delete();
$this->
createFileField($field_name, 'node',
$type_name,
['cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED
],
['required' => '1'
]);
// Try to post a new node without uploading a file in the multivalue field.
$edit =
[];
$edit['title[0][value]'
] =
$this->
randomMachineName();
$this->
drupalGet('node/add/' .
$type_name);
$this->
submitForm($edit, 'Save'
);
$this->
assertSession()->
pageTextContains("{
$field->
getLabel()} field is required."
);