@@ -22,34 +22,47 @@ function layerInfo(patch: Partial<PMTilesLayerInfo> = {}): PMTilesLayerInfo {
2222
2323describe ( "naming a PMTiles layer a caller asked for" , ( ) => {
2424 it ( "uses the name the caller left, not the file name" , ( ) => {
25- setPendingPMTilesName ( "item-1 — PMTiles vector tiles" ) ;
25+ setPendingPMTilesName ( layerInfo ( ) . url , "item-1 — PMTiles vector tiles" ) ;
2626
2727 assert . equal ( resolvePMTilesLayerName ( layerInfo ( ) , "layer-1" ) , "item-1 — PMTiles vector tiles" ) ;
2828 } ) ;
2929
3030 it ( "spends the name once, so a layer the panel adds next is named for itself" , ( ) => {
3131 const info = layerInfo ( ) ;
32- setPendingPMTilesName ( "item-1 — PMTiles vector tiles" ) ;
32+ setPendingPMTilesName ( layerInfo ( ) . url , "item-1 — PMTiles vector tiles" ) ;
3333 resolvePMTilesLayerName ( info , "layer-1" ) ;
3434
3535 assert . equal ( resolvePMTilesLayerName ( info , "layer-2" ) , "units" ) ;
3636 } ) ;
3737
3838 it ( "drops a name whose add never produced a layer" , ( ) => {
3939 const info = layerInfo ( ) ;
40- const clear = setPendingPMTilesName ( "item-1 — PMTiles vector tiles" ) ;
40+ const clear = setPendingPMTilesName ( info . url , "item-1 — PMTiles vector tiles" ) ;
4141 clear ( ) ;
4242
4343 assert . equal ( resolvePMTilesLayerName ( info , "layer-1" ) , "units" ) ;
4444 } ) ;
4545
4646 it ( "falls back when a caller queues an empty name, rather than naming the layer nothing" , ( ) => {
4747 const info = layerInfo ( { name : "Named by the panel" } ) ;
48- setPendingPMTilesName ( "" ) ;
48+ setPendingPMTilesName ( info . url , "" ) ;
4949
5050 assert . equal ( resolvePMTilesLayerName ( info , "layer-1" ) , "Named by the panel" ) ;
5151 } ) ;
5252
53+ it ( "leaves a name alone for a layer the control's own panel added meanwhile" , ( ) => {
54+ setPendingPMTilesName (
55+ "https://example.org/warehouse/units.pmtiles" ,
56+ "item-1 — PMTiles vector tiles" ,
57+ ) ;
58+
59+ // A panel add for a different archive must not take the name queued for ours.
60+ const other = layerInfo ( { url : "https://example.org/somebody-elses.pmtiles" , name : "" } ) ;
61+ assert . equal ( resolvePMTilesLayerName ( other , "layer-9" ) , "somebody-elses" ) ;
62+ // And ours still gets it when it arrives.
63+ assert . equal ( resolvePMTilesLayerName ( layerInfo ( ) , "layer-1" ) , "item-1 — PMTiles vector tiles" ) ;
64+ } ) ;
65+
5366 it ( "keeps the control's own name when the caller supplied none" , ( ) => {
5467 assert . equal (
5568 resolvePMTilesLayerName ( layerInfo ( { name : "Named by the panel" } ) , "layer-1" ) ,
0 commit comments