Excel File Test

This commit is contained in:
guillaume91 2024-05-22 14:00:21 +02:00
parent f7fd202d74
commit dc20a8a75c

View file

@ -0,0 +1,40 @@
<?php
namespace Tests\Feature;
use Maatwebsite\Excel\Exceptions\NoTypeDetectedException;
use Maatwebsite\Excel\HeadingRowImport;
use Tests\TestCase;
class ValidateExcelStructureTest extends TestCase
{
public static function excelFileProvider()
{
//good file - correct data
yield ['/Users/guillaume/smartcane/laravel_app/storage/app/livewire-tmp/Fi8skg5XxHVWmJ4LdkzOvvyBYYVsTW-metadGVzdCAoMSkueGxzeA==-.xlsx'];
//good file - wrong data
yield ['/Users/guillaume/smartcane/laravel_app/storage/app/livewire-tmp/SosZOpFgWrPWELZQrP3tIr69d0sOjf-metad3JvbmcueGxzeA==-.xlsx'];
// wrong file
yield ['/Users/guillaume/smartcane/laravel_app/storage/app/livewire-tmp/gc4uIBw5Uli7Fk1JJDR9d7eLoPRI0x-metaWGluYXZhbmVfZGVtby5nZW9qc29u-.json'];
}
/** @test
* @dataProvider excelFileProvider
*/
public function it_can_load_an_excel_sheet(string $filename)
{
$toCheck = ["field","sub_field", "year", "season_start","season_end", "age" , "sub_area", "tonnage_ha"];
self::assertFileExists($filename);
try {
$excelArray = (new HeadingRowImport)->toArray($filename);
self::assertNotNull($excelArray);
$headers = $excelArray[0][0];
self::assertNotEmpty($headers);
self::assertEmpty(array_diff($toCheck, $headers));
}catch (NoTypeDetectedException $exception){
self::assertFileExists('/Users/guillaume/smartcane/laravel_app/storage/app/livewire-tmp/gc4uIBw5Uli7Fk1JJDR9d7eLoPRI0x-metaWGluYXZhbmVfZGVtby5nZW9qc29u-.json');
}
}
}