feat: accept ArcGIS ONSPD column aliases (PCD7/PCD8/PCDS) in postcodes:import

This commit is contained in:
Ovidiu U
2026-04-22 13:31:27 +01:00
parent 13fc227619
commit 19fc61a0a3
2 changed files with 36 additions and 5 deletions

View File

@@ -63,6 +63,22 @@ CSV;
->and(Postcode::find('BT11AA'))->toBeNull();
});
it('accepts ArcGIS ONSPD exports that use PCD7 instead of PCD', function (): void {
$csv = <<<'CSV'
OBJECTID,PCD7,PCD8,PCDS,DOTERM,LAT,LONG,x,y
1,"SW1A 1AA","SW1A 1AA","SW1A 1AA","",51.501009,-0.141588,529090,179645
2,"M1 1AD","M1 1AD","M1 1AD","",53.480957,-2.237428,384730,398295
CSV;
$path = writeOnspdFixture($csv);
$this->artisan('postcodes:import', ['--file' => $path])->assertSuccessful();
expect(Postcode::count())->toBe(2)
->and(Postcode::find('SW1A1AA')->outcode)->toBe('SW1A')
->and(Postcode::find('M11AD')->outcode)->toBe('M1');
});
it('derives outcode centroids as the average of member postcodes', function (): void {
$csv = <<<'CSV'
pcd,pcds,doterm,lat,long