| object | postcode |
| W22 | 112 DE 34 |
- Scenario: Roads get postcodes from nearby buildings without other info
+ Scenario: Roads get postcodes from nearby named buildings without other info
Given the scene admin-areas
And the named places
| osm | class | type | geometry |
| object | postcode |
| W93 | 445023 |
+ Scenario: Roads get postcodes from nearby unnamed buildings without other info
+ Given the scene admin-areas
+ And the named places
+ | osm | class | type | geometry |
+ | W93 | highway | residential | :w2N |
+ And the named places
+ | osm | class | type | addr+postcode | geometry |
+ | W22 | place | postcode | 445023 | :building:w2N |
+ When importing
+ Then placex contains
+ | object | postcode |
+ | W93 | 445023 |
+
Scenario: Postcodes from admin boundaries are preferred over estimated postcodes
Given the scene admin-areas
And the named places
Then placex contains
| object | postcode |
| W93 | 112 DE 34 |
+
+ Scenario: Postcodes are added to the postcode and word table
+ Given the places
+ | osm | class | type | addr+postcode | addr+housenumber | geometry |
+ | N34 | place | house | 01982 | 111 |country:de |
+ When importing
+ Then location_postcode contains exactly
+ | country | postcode | geometry |
+ | de | 01982 | country:de |
+ And there are word tokens for postcodes 01982
+
+ Scenario: Different postcodes with the same normalization can both be found
+ Given the places
+ | osm | class | type | addr+postcode | addr+housenumber | geometry |
+ | N34 | place | house | EH4 7EA | 111 | country:gb |
+ | N35 | place | house | E4 7EA | 111 | country:gb |
+ When importing
+ Then location_postcode contains exactly
+ | country | postcode | geometry |
+ | gb | EH4 7EA | country:gb |
+ | gb | E4 7EA | country:gb |
+ When sending search query "EH4 7EA"
+ Then results contain
+ | type | display_name |
+ | postcode | EH4 7EA |
+ When sending search query "E4 7EA"
+ Then results contain
+ | type | display_name |
+ | postcode | E4 7EA |