From 8b3b30b352ce0e50fe5422cd4d24323a5a5ec9b4 Mon Sep 17 00:00:00 2001 From: Lukas Hermann Date: Mon, 15 Apr 2024 19:59:50 -0700 Subject: [PATCH] fix: extent name collision in transforms (#9312) --- src/transform.ts | 2 +- test/compile/data/extent.test.ts | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/transform.ts b/src/transform.ts index 5019088f76..4db847b71c 100644 --- a/src/transform.ts +++ b/src/transform.ts @@ -678,7 +678,7 @@ export function isFold(t: Transform): t is FoldTransform { } export function isExtent(t: Transform): t is ExtentTransform { - return 'extent' in t && !('density' in t); + return 'extent' in t && !('density' in t) && !('regression' in t); } export type Transform = | AggregateTransform diff --git a/test/compile/data/extent.test.ts b/test/compile/data/extent.test.ts index 94c31a1690..5a85256e01 100644 --- a/test/compile/data/extent.test.ts +++ b/test/compile/data/extent.test.ts @@ -1,8 +1,23 @@ import {ExtentTransformNode} from '../../../src/compile/data/extent'; import {Transform} from '../../../src/transform'; import {PlaceholderDataFlowNode} from './util'; +import {isExtent} from '../../../src/transform'; describe('compile/data/extent', () => { + describe('isExtent', () => { + it('should return true for a regular extent transform', () => { + expect(isExtent({extent: 'a', param: 'A'})).toBe(true); + }); + + it('should return false for a regression transform', () => { + expect(isExtent({regression: 'a', on: 'b', extent: [0, 10]})).toBe(false); + }); + + it('should return false for a density transform', () => { + expect(isExtent({density: 'a', extent: [0, 10]})).toBe(false); + }); + }); + describe('assemble', () => { it('should return a proper vg transform', () => { const transform: Transform = {