|
| 1 | +import {describe, expectTypeOf, test} from 'vitest'; |
| 2 | +import type { |
| 3 | + BackgroundLayerSpecification, |
| 4 | + CircleLayerSpecification, |
| 5 | + ColorReliefLayerSpecification, |
| 6 | + FillExtrusionLayerSpecification, |
| 7 | + FillLayerSpecification, |
| 8 | + HeatmapLayerSpecification, |
| 9 | + HillshadeLayerSpecification, |
| 10 | + LightSpecification, |
| 11 | + LineLayerSpecification, |
| 12 | + RasterLayerSpecification, |
| 13 | + SkySpecification, |
| 14 | + SymbolLayerSpecification, |
| 15 | +} from './types.g'; |
| 16 | + |
| 17 | +describe('style-spec', () => { |
| 18 | + test('LightSpecification contains *-transition keys for transitionable properties', () => { |
| 19 | + expectTypeOf<{'position-transition': {duration: 100}}>().toExtend<LightSpecification>(); |
| 20 | + expectTypeOf<{'color-transition': {duration: 100}}>().toExtend<LightSpecification>(); |
| 21 | + expectTypeOf<{'intensity-transition': {duration: 100}}>().toExtend<LightSpecification>(); |
| 22 | + }); |
| 23 | + test('LightSpecification does not contain *-transition keys for untransitionable properties', () => { |
| 24 | + expectTypeOf<{'anchor-transition': {duration: 100}}>().not.toExtend<LightSpecification>(); |
| 25 | + }); |
| 26 | + |
| 27 | + test('SkySpecification contains *-transition keys for transitionable properties', () => { |
| 28 | + expectTypeOf<{'sky-color-transition': {duration: 100}}>().toExtend<SkySpecification>(); |
| 29 | + expectTypeOf<{'horizon-color-transition': {duration: 100}}>().toExtend<SkySpecification>(); |
| 30 | + expectTypeOf<{'fog-color-transition': {duration: 100}}>().toExtend<SkySpecification>(); |
| 31 | + expectTypeOf<{'fog-ground-blend-transition': {duration: 100}}>().toExtend<SkySpecification>(); |
| 32 | + expectTypeOf<{'horizon-fog-blend-transition': {duration: 100}}>().toExtend<SkySpecification>(); |
| 33 | + expectTypeOf<{'sky-horizon-blend-transition': {duration: 100}}>().toExtend<SkySpecification>(); |
| 34 | + expectTypeOf<{'atmosphere-blend-transition': {duration: 100}}>().toExtend<SkySpecification>(); |
| 35 | + }); |
| 36 | + |
| 37 | + test('BackgroundLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 38 | + expectTypeOf<{'background-color-transition': {duration: 100}}>().toExtend<BackgroundLayerSpecification['paint']>(); |
| 39 | + expectTypeOf<{'background-pattern-transition': {duration: 100}}>().toExtend<BackgroundLayerSpecification['paint']>(); |
| 40 | + expectTypeOf<{'background-opacity-transition': {duration: 100}}>().toExtend<BackgroundLayerSpecification['paint']>(); |
| 41 | + }); |
| 42 | + |
| 43 | + test('CircleLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 44 | + expectTypeOf<{'circle-radius-transition': {duration: 100}}>().toExtend<CircleLayerSpecification['paint']>(); |
| 45 | + expectTypeOf<{'circle-color-transition': {duration: 100}}>().toExtend<CircleLayerSpecification['paint']>(); |
| 46 | + expectTypeOf<{'circle-blur-transition': {duration: 100}}>().toExtend<CircleLayerSpecification['paint']>(); |
| 47 | + expectTypeOf<{'circle-opacity-transition': {duration: 100}}>().toExtend<CircleLayerSpecification['paint']>(); |
| 48 | + expectTypeOf<{'circle-translate-transition': {duration: 100}}>().toExtend<CircleLayerSpecification['paint']>(); |
| 49 | + expectTypeOf<{'circle-stroke-width-transition': {duration: 100}}>().toExtend<CircleLayerSpecification['paint']>(); |
| 50 | + expectTypeOf<{'circle-stroke-color-transition': {duration: 100}}>().toExtend<CircleLayerSpecification['paint']>(); |
| 51 | + expectTypeOf<{'circle-stroke-opacity-transition': {duration: 100}}>().toExtend<CircleLayerSpecification['paint']>(); |
| 52 | + }); |
| 53 | + test('CircleLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 54 | + expectTypeOf<{'circle-translate-anchor-transition': {duration: 100}}>().not.toExtend<CircleLayerSpecification['paint']>(); |
| 55 | + expectTypeOf<{'circle-pitch-scale-transition': {duration: 100}}>().not.toExtend<CircleLayerSpecification['paint']>(); |
| 56 | + expectTypeOf<{'circle-pitch-alignment-transition': {duration: 100}}>().not.toExtend<CircleLayerSpecification['paint']>(); |
| 57 | + }); |
| 58 | + |
| 59 | + test('ColorReliefLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 60 | + expectTypeOf<{'color-relief-opacity-transition': {duration: 100}}>().toExtend<ColorReliefLayerSpecification['paint']>(); |
| 61 | + }); |
| 62 | + test('ColorReliefLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 63 | + expectTypeOf<{'color-relief-color-transition': {duration: 100}}>().not.toExtend<ColorReliefLayerSpecification['paint']>(); |
| 64 | + }); |
| 65 | + |
| 66 | + test('FillLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 67 | + expectTypeOf<{'fill-opacity-transition': {duration: 100}}>().toExtend<FillLayerSpecification['paint']>(); |
| 68 | + expectTypeOf<{'fill-color-transition': {duration: 100}}>().toExtend<FillLayerSpecification['paint']>(); |
| 69 | + expectTypeOf<{'fill-outline-color-transition': {duration: 100}}>().toExtend<FillLayerSpecification['paint']>(); |
| 70 | + expectTypeOf<{'fill-translate-transition': {duration: 100}}>().toExtend<FillLayerSpecification['paint']>(); |
| 71 | + expectTypeOf<{'fill-pattern-transition': {duration: 100}}>().toExtend<FillLayerSpecification['paint']>(); |
| 72 | + }); |
| 73 | + test('FillLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 74 | + expectTypeOf<{'fill-antialias-transition': {duration: 100}}>().not.toExtend<FillLayerSpecification['paint']>(); |
| 75 | + expectTypeOf<{'fill-translate-anchor-transition': {duration: 100}}>().not.toExtend<FillLayerSpecification['paint']>(); |
| 76 | + }); |
| 77 | + |
| 78 | + test('FillExtrusionLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 79 | + expectTypeOf<{'fill-extrusion-opacity-transition': {duration: 100}}>().toExtend<FillExtrusionLayerSpecification['paint']>(); |
| 80 | + expectTypeOf<{'fill-extrusion-color-transition': {duration: 100}}>().toExtend<FillExtrusionLayerSpecification['paint']>(); |
| 81 | + expectTypeOf<{'fill-extrusion-translate-transition': {duration: 100}}>().toExtend<FillExtrusionLayerSpecification['paint']>(); |
| 82 | + expectTypeOf<{'fill-extrusion-pattern-transition': {duration: 100}}>().toExtend<FillExtrusionLayerSpecification['paint']>(); |
| 83 | + expectTypeOf<{'fill-extrusion-height-transition': {duration: 100}}>().toExtend<FillExtrusionLayerSpecification['paint']>(); |
| 84 | + expectTypeOf<{'fill-extrusion-base-transition': {duration: 100}}>().toExtend<FillExtrusionLayerSpecification['paint']>(); |
| 85 | + }); |
| 86 | + test('FillExtrusionLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 87 | + expectTypeOf<{'fill-extrusion-translate-anchor-transition': {duration: 100}}>().not.toExtend<FillExtrusionLayerSpecification['paint']>(); |
| 88 | + expectTypeOf<{'fill-extrusion-vertical-gradient-transition': {duration: 100}}>().not.toExtend<FillExtrusionLayerSpecification['paint']>(); |
| 89 | + }); |
| 90 | + |
| 91 | + test('HeatmapLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 92 | + expectTypeOf<{'heatmap-radius-transition': {duration: 100}}>().toExtend<HeatmapLayerSpecification['paint']>(); |
| 93 | + expectTypeOf<{'heatmap-intensity-transition': {duration: 100}}>().toExtend<HeatmapLayerSpecification['paint']>(); |
| 94 | + expectTypeOf<{'heatmap-opacity-transition': {duration: 100}}>().toExtend<HeatmapLayerSpecification['paint']>(); |
| 95 | + }); |
| 96 | + test('HeatmapLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 97 | + expectTypeOf<{'heatmap-weight-transition': {duration: 100}}>().not.toExtend<HeatmapLayerSpecification['paint']>(); |
| 98 | + expectTypeOf<{'heatmap-color-transition': {duration: 100}}>().not.toExtend<HeatmapLayerSpecification['paint']>(); |
| 99 | + }); |
| 100 | + |
| 101 | + test('HillshadeLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 102 | + expectTypeOf<{'hillshade-exaggeration-transition': {duration: 100}}>().toExtend<HillshadeLayerSpecification['paint']>(); |
| 103 | + expectTypeOf<{'hillshade-shadow-color-transition': {duration: 100}}>().toExtend<HillshadeLayerSpecification['paint']>(); |
| 104 | + expectTypeOf<{'hillshade-highlight-color-transition': {duration: 100}}>().toExtend<HillshadeLayerSpecification['paint']>(); |
| 105 | + expectTypeOf<{'hillshade-accent-color-transition': {duration: 100}}>().toExtend<HillshadeLayerSpecification['paint']>(); |
| 106 | + }); |
| 107 | + test('HillshadeLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 108 | + expectTypeOf<{'hillshade-illumination-direction-transition': {duration: 100}}>().not.toExtend<HillshadeLayerSpecification['paint']>(); |
| 109 | + expectTypeOf<{'hillshade-illumination-altitude-transition': {duration: 100}}>().not.toExtend<HillshadeLayerSpecification['paint']>(); |
| 110 | + expectTypeOf<{'hillshade-illumination-anchor-transition': {duration: 100}}>().not.toExtend<HillshadeLayerSpecification['paint']>(); |
| 111 | + expectTypeOf<{'hillshade-method-transition': {duration: 100}}>().not.toExtend<HillshadeLayerSpecification['paint']>(); |
| 112 | + }); |
| 113 | + |
| 114 | + test('LineLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 115 | + expectTypeOf<{'line-opacity-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 116 | + expectTypeOf<{'line-color-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 117 | + expectTypeOf<{'line-translate-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 118 | + expectTypeOf<{'line-width-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 119 | + expectTypeOf<{'line-gap-width-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 120 | + expectTypeOf<{'line-offset-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 121 | + expectTypeOf<{'line-blur-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 122 | + expectTypeOf<{'line-dasharray-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 123 | + expectTypeOf<{'line-pattern-transition': {duration: 100}}>().toExtend<LineLayerSpecification['paint']>(); |
| 124 | + }); |
| 125 | + test('LineLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 126 | + expectTypeOf<{'line-translate-anchor-transition': {duration: 100}}>().not.toExtend<LineLayerSpecification['paint']>(); |
| 127 | + expectTypeOf<{'line-gradient-transition': {duration: 100}}>().not.toExtend<LineLayerSpecification['paint']>(); |
| 128 | + }); |
| 129 | + |
| 130 | + test('RasterLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 131 | + expectTypeOf<{'raster-opacity-transition': {duration: 100}}>().toExtend<RasterLayerSpecification['paint']>(); |
| 132 | + expectTypeOf<{'raster-hue-rotate-transition': {duration: 100}}>().toExtend<RasterLayerSpecification['paint']>(); |
| 133 | + expectTypeOf<{'raster-brightness-min-transition': {duration: 100}}>().toExtend<RasterLayerSpecification['paint']>(); |
| 134 | + expectTypeOf<{'raster-brightness-max-transition': {duration: 100}}>().toExtend<RasterLayerSpecification['paint']>(); |
| 135 | + expectTypeOf<{'raster-saturation-transition': {duration: 100}}>().toExtend<RasterLayerSpecification['paint']>(); |
| 136 | + expectTypeOf<{'raster-contrast-transition': {duration: 100}}>().toExtend<RasterLayerSpecification['paint']>(); |
| 137 | + }); |
| 138 | + test('RasterLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 139 | + expectTypeOf<{'raster-resampling-transition': {duration: 100}}>().not.toExtend<RasterLayerSpecification['paint']>(); |
| 140 | + expectTypeOf<{'raster-fade-duration-transition': {duration: 100}}>().not.toExtend<RasterLayerSpecification['paint']>(); |
| 141 | + }); |
| 142 | + |
| 143 | + test('SymbolLayerSpecification contains *-transition keys for transitionable paint properties', () => { |
| 144 | + expectTypeOf<{'icon-opacity-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 145 | + expectTypeOf<{'icon-color-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 146 | + expectTypeOf<{'icon-halo-color-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 147 | + expectTypeOf<{'icon-halo-width-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 148 | + expectTypeOf<{'icon-halo-blur-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 149 | + expectTypeOf<{'icon-translate-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 150 | + expectTypeOf<{'text-opacity-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 151 | + expectTypeOf<{'text-color-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 152 | + expectTypeOf<{'text-halo-color-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 153 | + expectTypeOf<{'text-halo-width-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 154 | + expectTypeOf<{'text-halo-blur-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 155 | + expectTypeOf<{'text-translate-transition': {duration: 100}}>().toExtend<SymbolLayerSpecification['paint']>(); |
| 156 | + }); |
| 157 | + test('SymbolLayerSpecification does not contain *-transition keys for untransitionable paint properties', () => { |
| 158 | + expectTypeOf<{'icon-translate-anchor-transition': {duration: 100}}>().not.toExtend<SymbolLayerSpecification['paint']>(); |
| 159 | + expectTypeOf<{'text-translate-anchor-transition': {duration: 100}}>().not.toExtend<SymbolLayerSpecification['paint']>(); |
| 160 | + }); |
| 161 | +}); |
0 commit comments