Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
2c9c7eb
feat: Interactive filters are always defined
bprusinowski May 27, 2025
82a5892
Merge branch 'main' of github.com:visualize-admin/visualization-tool …
bprusinowski Jul 21, 2025
175e2a9
chore: Remove console.log
bprusinowski Jul 30, 2025
cbeca9b
refactor: Rename
bprusinowski Jul 30, 2025
2b977b8
feat: Extract InteractiveToggle and show it for all MultiFilter compo…
bprusinowski Jul 31, 2025
dabe841
feat: Use query filters in table chart
bprusinowski Jul 31, 2025
84250a1
feat: Consider field component ids in filters
bprusinowski Jul 31, 2025
a5961a5
feat: Allow empty filter in case of multi-filters in DataFilter
bprusinowski Jul 31, 2025
219f885
fix: Console warnings
bprusinowski Jul 31, 2025
e6593e9
feat: Properly filter out non-selectable interactive filter options
bprusinowski Jul 31, 2025
cfeeb80
refactor: Clean up
bprusinowski Jul 31, 2025
b1afcd2
feat: Add defaultValueOverrides
bprusinowski Jul 31, 2025
e29acf3
feat: Improve hierarchy outer items positions
bprusinowski Jul 31, 2025
7e34d34
fix: Migrations
bprusinowski Jul 31, 2025
171bb66
chore: Add translations
bprusinowski Jul 31, 2025
8d973b6
feat: Recursive filtering in MultiFilter panel for hierarchical dimen…
bprusinowski Jul 31, 2025
ddd506e
fix: Tests
bprusinowski Jul 31, 2025
6280f5d
feat: Make interactive multi-filters work, add default value selection
bprusinowski Jul 31, 2025
cb2daf2
Merge branch 'main' of github.com:visualize-admin/visualization-tool …
bprusinowski Jul 31, 2025
b186fab
docs: Update CHANGELOG
bprusinowski Jul 31, 2025
e15957b
chore: Add interactive filters-related unit tests
bprusinowski Jul 31, 2025
2c32f64
fix: E2E tests
bprusinowski Jul 31, 2025
50a2600
refactor: Remove not needed
bprusinowski Aug 5, 2025
2f6a754
refactor: Allow to pass null
bprusinowski Aug 5, 2025
5a9e8a0
feat: Add a way to show clear button in DatePickerField
bprusinowski Aug 5, 2025
14c9e80
feat: Render clear button for multi-filters
bprusinowski Aug 5, 2025
1da6f3c
feat: Use regular multi-filter for temporal dimensions in tables
bprusinowski Aug 5, 2025
0d5a571
feat: Do not persist incompatible filters when switching to tables
bprusinowski Aug 5, 2025
00fdfc2
fix: Offset
bprusinowski Aug 5, 2025
ae3900c
Merge branch 'main' of github.com:visualize-admin/visualization-tool …
bprusinowski Aug 5, 2025
7f55d1b
fix: Shadow
bprusinowski Aug 5, 2025
8bce89e
refactor: Extract ShowFilterAreaOpen
bprusinowski Aug 7, 2025
f857bcb
feat: Add ShowFilterAreaOpen to table charts
bprusinowski Aug 7, 2025
8f2a010
Merge branch 'main' of github.com:visualize-admin/visualization-tool …
bprusinowski Aug 19, 2025
b818208
fix: Bump CONFIGURATOR_STATE_VERSION
bprusinowski Aug 19, 2025
73c05f8
fix: Tests
bprusinowski Aug 20, 2025
e4539e9
test: Add more unit tests
bprusinowski Aug 20, 2025
8365dde
perf: Do not re-create bound stores
bprusinowski Aug 20, 2025
f217212
feat: Clear default value override when needed
bprusinowski Aug 20, 2025
9b300b6
fix: Interactive filters syncing
bprusinowski Aug 20, 2025
c9d1593
feat: Tie table filters order with columns order
bprusinowski Aug 20, 2025
a7539a8
fix: Dashboard multi-filters
bprusinowski Aug 21, 2025
b97ac19
fix: Correctly exclude dashboard filters
bprusinowski Aug 21, 2025
f62ea45
fix: Problem with opening interactive filters
bprusinowski Aug 21, 2025
82bf28d
fix: Dashboard filter overrides
bprusinowski Aug 21, 2025
d67f072
fix: Overflows
bprusinowski Aug 21, 2025
5a9fa72
fix: Selecting "No filter" default value override
bprusinowski Aug 21, 2025
7e5b201
fix: Filter logic
bprusinowski Aug 21, 2025
da3afae
docs: Update CHANGELOG
bprusinowski Aug 21, 2025
fea440b
fix: Interactive merged filters
bprusinowski Aug 21, 2025
0e61ebf
feat: Move search box controls up
bprusinowski Aug 22, 2025
dd15d4c
fix: Query filters
bprusinowski Aug 22, 2025
4a9950f
fix: Query filters for merged dimensions
bprusinowski Aug 22, 2025
8bd7e17
fix: Only render one filter for merged cube dimensions
bprusinowski Aug 22, 2025
9589a0d
chore: Knip
bprusinowski Aug 22, 2025
9d40121
refactor: Smaller improvements
bprusinowski Aug 25, 2025
1471976
style: Add Autocomplete MUI styles
bprusinowski Aug 25, 2025
102a5fb
feat: Add TransitionPopper
bprusinowski Aug 25, 2025
9d917a9
style: Improve Autocomplete MUI styles
bprusinowski Aug 25, 2025
31ae2fe
refactor: Make more clear
bprusinowski Aug 25, 2025
a0bb150
feat: Add MultiSelectInput
bprusinowski Aug 25, 2025
6365115
feat: Add MultiSelectTags
bprusinowski Aug 25, 2025
d761fc0
feat: Add MultiSelectOption
bprusinowski Aug 25, 2025
77281eb
style: Improve MultiSelect styles
bprusinowski Aug 25, 2025
79ff375
feat: Add MultiSelect
bprusinowski Aug 25, 2025
2144056
style: Add hover effect
bprusinowski Aug 25, 2025
37e0bb9
style: Update MultiSelect placeholder
bprusinowski Aug 25, 2025
a158adf
fix: Update lingui to v4
bprusinowski Aug 25, 2025
81ea194
fix: Translations
bprusinowski Aug 26, 2025
fa5a860
fix: Props
bprusinowski Aug 26, 2025
1214f0b
feat: Smaller improvements
bprusinowski Aug 26, 2025
5738997
fix: Various issues with MultiSelect
bprusinowski Aug 26, 2025
6ac1d4a
feat: Add filterTypes to dataFilters
bprusinowski Aug 26, 2025
9dfe09e
feat: Update migrations
bprusinowski Aug 26, 2025
5b43459
feat: Add InteractiveFiltersStateActions
bprusinowski Aug 26, 2025
9903a07
fix: Tests
bprusinowski Aug 26, 2025
3fe7243
chore: Add CLAUDE.md
bprusinowski Aug 26, 2025
0f24640
style: Update padding
bprusinowski Aug 26, 2025
e8e4be5
feat: Add support for true interactive multi filters
bprusinowski Aug 26, 2025
52f793e
fix: Lingui v4
bprusinowski Aug 26, 2025
b7b4a72
fix: Published charts interactive filters initialization
bprusinowski Aug 26, 2025
de8a871
fix: Initialization of interactive multi-filter overrides
bprusinowski Aug 27, 2025
3b33d8f
feat: Support multi-filters in SelectTree
bprusinowski Aug 27, 2025
b7d954f
fix: Infinite loop
bprusinowski Aug 27, 2025
dc77d47
fix: Keys
bprusinowski Aug 27, 2025
1e5be75
fix: Component remounts during data fetching resulting in infinite lo…
bprusinowski Aug 27, 2025
c1d737f
fix: Stale closure
bprusinowski Aug 27, 2025
cb96b03
fix: Infinite data loading
bprusinowski Aug 27, 2025
fdc71fe
fix: Dashboard filters
bprusinowski Aug 27, 2025
298a53d
chore: Remove unused
bprusinowski Aug 28, 2025
9eddce2
refactor: Clean up
bprusinowski Aug 28, 2025
ce3673d
feat: Make it possible to offset the BrushTime
bprusinowski Aug 28, 2025
450f65e
fix: Sort the data
bprusinowski Aug 28, 2025
405ed39
feat: Render TimeFilter for temporal dimensions in table charts
bprusinowski Aug 28, 2025
6b73709
feat: Add useTemporalMaybeXVariables
bprusinowski Aug 28, 2025
2acbe02
feat: Add support for interactive time range filters in tables
bprusinowski Aug 28, 2025
0fc3e65
fix: Optional access
bprusinowski Aug 28, 2025
8498cad
refactor: Move ChartDataFilters into a folder
bprusinowski Aug 28, 2025
da950b9
chore: Remove unused
bprusinowski Aug 28, 2025
516e9ff
refactor: Split up chart-data-filters
bprusinowski Aug 28, 2025
056ef84
fix: Constraining of multi filters in case of merged cubes
bprusinowski Aug 28, 2025
0d16b97
fix: Application error if removing dataset when in table chart
bprusinowski Aug 28, 2025
4e2f362
chore: Markdown lint
bprusinowski Aug 28, 2025
c058103
docs: Update CHANGELOG
bprusinowski Aug 28, 2025
33b67a1
fix: Imports
bprusinowski Aug 28, 2025
12b9e4b
fix: Do not expect loading data, when cache could be populated
bprusinowski Aug 28, 2025
9b01557
fix: Test
bprusinowski Aug 28, 2025
b6839c7
fix: Merged cubes issues
bprusinowski Aug 28, 2025
09e6e33
fix: Properly getPotentialDataFilterIds
bprusinowski Aug 28, 2025
c3821df
refactor: Clean up EditorBrush
bprusinowski Aug 29, 2025
763f96c
fix: Test
bprusinowski Sep 1, 2025
5234287
chore: Remove comment
bprusinowski Sep 1, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
293 changes: 148 additions & 145 deletions CHANGELOG.md

Large diffs are not rendered by default.

139 changes: 139 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
# CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with
code in this repository.

## Common Development Commands

### Setup & Development

- `yarn setup:dev` - Complete development environment setup (installs deps,
compiles locales, runs DB migrations)
- `yarn dev` - Start development server (with debugging enabled)
- `yarn dev:ssl` - Start development server with HTTPS (required for
authentication flows)
- `yarn dev:rollup` - Build embed script during development (when changing
embed/index.ts)

### Building & Testing

- `yarn build` - Full production build (includes GraphQL codegen, locale
compilation, rollup, storybook, JSON schema generation, and Next.js build)
- `yarn typecheck` - Run TypeScript type checking for both app and embed
- `yarn lint` - Run ESLint on the app directory
- `yarn test` - Run unit tests with Vitest
- `yarn test <file-pattern>` - Run specific test files (e.g.,
`yarn test interactive-filters-config-state.spec.tsx`)
- `yarn test:watch` - Run unit tests in watch mode

### End-to-End Testing

- `yarn e2e:dev` - Run Playwright tests against local development server
- `yarn e2e:ui` - Run Playwright tests with interactive UI
- `yarn e2e:dev:ssl` - Run Playwright tests against HTTPS development server

### Database & Migrations

- `yarn db:migrate:dev` - Run database migrations for development (manual in
dev, automatic in production)
- `yarn db:migrate` - Run database migrations (production)

### Localization

- `yarn locales:extract` - Extract translatable strings from code to generate
message files
- `yarn locales:compile` - Compile translation files
- `yarn locales:sync` - Sync translations with Accent (translation service)

### GraphQL & Code Generation

- `yarn graphql:codegen` - Generate TypeScript types from GraphQL schema
- `yarn graphql:codegen:dev` - Watch mode for GraphQL code generation

## Architecture Overview

This is a Next.js-based data visualization platform that allows users to create
interactive charts from RDF/SPARQL data sources.

### Key Technologies

- **Next.js 14** - React framework with SSR/SSG
- **TypeScript** - Type-safe development
- **GraphQL** - API layer with Apollo Server
- **URQL** - GraphQL client
- **Prisma** - Database ORM with PostgreSQL
- **D3.js** - Data visualization library
- **Material-UI (MUI)** - UI component library
- **Vitest** - Unit testing framework
- **Playwright** - End-to-end testing

### Core Directory Structure

- `/app` - Main application code (Next.js app directory)
- `/charts` - Chart rendering components (area, bar, line, map, pie,
scatterplot, table)
- `/configurator` - Chart configuration UI and state management
- `/components` - Reusable UI components
- `/pages` - Next.js pages and API routes
- `/rdf` - RDF/SPARQL data fetching and parsing logic
- `/graphql` - GraphQL schema, resolvers, and client setup
- `/locales` - Internationalization files (en, de, fr, it)
- `/prisma` - Database schema and migrations
- `/embed` - Embeddable chart widget
- `/e2e` - Playwright end-to-end tests
- `/k6` - Performance and load tests

### Data Flow

1. **Data Sources**: RDF/SPARQL endpoints provide cube data
2. **GraphQL Layer**: Resolvers query RDF data and transform it
3. **Chart Configurator**: UI for selecting datasets and configuring
visualizations
4. **Chart Rendering**: D3.js-based components render interactive charts
5. **Persistence**: Chart configurations stored in PostgreSQL via Prisma

### Chart Types Supported

- Area charts (single and stacked)
- Bar charts (grouped and stacked, horizontal and vertical)
- Line charts (single and multiple)
- Combo charts (line+column, dual-axis, multi-line)
- Maps (with symbols and areas)
- Pie charts
- Scatterplots
- Tables

### State Management

- Chart configuration state managed through React context and reducers
- Interactive filters synchronized across charts
- Local storage for persistence of user preferences

### Authentication

- Next-auth with ADFS provider for Swiss federal authentication
- Test credentials provider for development/preview environments
- User-specific chart configurations and custom color palettes

### Development Notes

- Docker Compose setup for PostgreSQL database
- Comprehensive visual regression testing with screenshot comparison
- Internationalization support for 4 languages
- Embed functionality for including charts in external websites
- Performance monitoring with k6 and Grafana integration
- Storybook for component documentation and testing

### Testing Strategy

- Unit tests with Vitest and React Testing Library
- E2E tests with Playwright for critical user flows
- Visual regression tests for chart rendering
- Performance tests for GraphQL queries and data loading
- Load testing for API endpoints

### Deployment

- Designed for Vercel and Docker deployments
- Database migrations run automatically on production builds
- Environment-specific configuration through environment variables
4 changes: 2 additions & 2 deletions app/browser/dataset-browse.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ export const SearchDatasetSortControl = ({
}}
value={value}
options={options}
sortOptions={false}
sort={false}
sx={{ width: "fit-content" }}
/>
</Box>
Expand Down Expand Up @@ -898,7 +898,7 @@ export const DatasetResults = ({
variant="h2"
sx={{ color: "grey.600", mt: 8, textAlign: "center" }}
>
<Trans id="No results" />
<Trans id="No results">No results</Trans>
</Typography>
);
}
Expand Down
4 changes: 2 additions & 2 deletions app/charts/area/areas-state.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,7 @@ const useAreasState = (
// When the user can toggle between absolute and relative values, we use the
// absolute values to calculate the yScale domain, so that the yScale doesn't
// change when the user toggles between absolute and relative values.
if (interactiveFiltersConfig?.calculation.active) {
if (interactiveFiltersConfig.calculation.active) {
const scale = getStackedYScale(paddingData, {
normalize: false,
getX: getXAsString,
Expand All @@ -362,7 +362,7 @@ const useAreasState = (
customDomain: y.customDomain,
});
}, [
interactiveFiltersConfig?.calculation.active,
interactiveFiltersConfig.calculation.active,
paddingData,
normalize,
getXAsString,
Expand Down
4 changes: 2 additions & 2 deletions app/charts/area/chart-area.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ const ChartAreas = memo((props: ChartProps<AreaConfig>) => {
) : (
<InteractionHorizontal />
)}
{interactiveFiltersConfig?.timeRange.active === true && <BrushTime />}
{interactiveFiltersConfig.timeRange.active && <BrushTime />}
</ChartSvg>
{isEditingAnnotation ? (
<HoverAnnotationDot />
Expand All @@ -72,7 +72,7 @@ const ChartAreas = memo((props: ChartProps<AreaConfig>) => {
<LegendColor
chartConfig={chartConfig}
symbol="square"
interactive={interactiveFiltersConfig?.legend.active}
interactive={interactiveFiltersConfig.legend.active}
showTitle={fields.segment?.showTitle}
dimensionsById={dimensionsById}
limits={limits}
Expand Down
4 changes: 2 additions & 2 deletions app/charts/bar/bars-stacked-state.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -362,7 +362,7 @@ const useBarsStackedState = (
// When the user can toggle between absolute and relative values, we use the
// absolute values to calculate the xScale domain, so that the xScale doesn't
// change when the user toggles between absolute and relative values.
if (interactiveFiltersConfig?.calculation.active) {
if (interactiveFiltersConfig.calculation.active) {
const scale = getStackedXScale(paddingData, {
normalize: false,
getX,
Expand All @@ -386,7 +386,7 @@ const useBarsStackedState = (
customDomain: x.customDomain,
});
}, [
interactiveFiltersConfig?.calculation.active,
interactiveFiltersConfig.calculation.active,
paddingData,
normalize,
getX,
Expand Down
4 changes: 2 additions & 2 deletions app/charts/bar/chart-bar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ const ChartBars = memo((props: ChartProps<BarConfig>) => {
dimensionsById={dimensionsById}
chartConfig={chartConfig}
symbol="square"
interactive={interactiveFiltersConfig?.legend.active}
interactive={interactiveFiltersConfig.legend.active}
showTitle={fields.segment.showTitle}
/>
</ChartControlsContainer>
Expand Down Expand Up @@ -136,7 +136,7 @@ const ChartBars = memo((props: ChartProps<BarConfig>) => {
dimensionsById={dimensionsById}
chartConfig={chartConfig}
symbol="square"
interactive={interactiveFiltersConfig?.legend.active}
interactive={interactiveFiltersConfig.legend.active}
showTitle={fields.segment.showTitle}
/>
</ChartControlsContainer>
Expand Down
28 changes: 16 additions & 12 deletions app/charts/chart-config-ui-options.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { t } from "@lingui/macro";
import { i18n } from "@lingui/core";
import { defineMessage, t } from "@lingui/macro";
import { extent, group } from "d3-array";
import { scaleLinear } from "d3-scale";
import { schemeCategory10 } from "d3-scale-chromatic";
Expand Down Expand Up @@ -478,15 +479,18 @@ export const ANIMATION_FIELD_SPEC: EncodingSpec<
if (temporalDimensions.length === temporalFieldComponentIds.length) {
return {
disabled: true,
warnMessage: t({
id: "controls.section.animation.no-available-temporal-dimensions",
message: `There are no available temporal dimensions to use. Change some of the following encodings: {fields} to enable animation.`,
values: {
warnMessage: i18n._(
defineMessage({
id: "controls.section.animation.no-available-temporal-dimensions",
message:
"There are no available temporal dimensions to use. Change some of the following encodings: {fields} to enable animation.",
}) as unknown as string,
{
fields: temporalFieldComponentIds
.map((d) => getFieldLabel(fieldComponentsMap[d.id]))
.join(", "),
},
}),
}
),
};
}

Expand Down Expand Up @@ -655,7 +659,7 @@ const chartConfigOptionsUISpec: ChartSpecs = {
if (segment) {
const yScale = getStackedYScale(observations, {
normalize:
chartConfig.interactiveFiltersConfig?.calculation.type ===
chartConfig.interactiveFiltersConfig.calculation.type ===
"percent",
getX,
getY,
Expand Down Expand Up @@ -758,7 +762,7 @@ const chartConfigOptionsUISpec: ChartSpecs = {
if (disableStacked(yMeasure)) {
setWith(chartConfig, "fields.segment.type", "grouped", Object);

if (chartConfig.interactiveFiltersConfig?.calculation) {
if (chartConfig.interactiveFiltersConfig.calculation) {
setWith(
chartConfig,
"interactiveFiltersConfig.calculation",
Expand Down Expand Up @@ -799,7 +803,7 @@ const chartConfigOptionsUISpec: ChartSpecs = {
if (segment && segment.type === "stacked") {
const yScale = getStackedYScale(observations, {
normalize:
chartConfig.interactiveFiltersConfig?.calculation.type ===
chartConfig.interactiveFiltersConfig.calculation.type ===
"percent",
getX,
getY,
Expand Down Expand Up @@ -959,7 +963,7 @@ const chartConfigOptionsUISpec: ChartSpecs = {
if (disableStacked(xMeasure)) {
setWith(chartConfig, "fields.segment.type", "grouped", Object);

if (chartConfig.interactiveFiltersConfig?.calculation) {
if (chartConfig.interactiveFiltersConfig.calculation) {
setWith(
chartConfig,
"interactiveFiltersConfig.calculation",
Expand Down Expand Up @@ -1000,7 +1004,7 @@ const chartConfigOptionsUISpec: ChartSpecs = {
if (segment && segment.type === "stacked") {
const xScale = getStackedXScale(observations, {
normalize:
chartConfig.interactiveFiltersConfig?.calculation.type ===
chartConfig.interactiveFiltersConfig.calculation.type ===
"percent",
getX,
getY,
Expand Down
4 changes: 2 additions & 2 deletions app/charts/column/chart-column.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ const ChartColumns = memo((props: ChartProps<ColumnConfig>) => {
dimensionsById={dimensionsById}
chartConfig={chartConfig}
symbol="square"
interactive={interactiveFiltersConfig?.legend.active}
interactive={interactiveFiltersConfig.legend.active}
showTitle={fields.segment.showTitle}
/>
</ChartControlsContainer>
Expand Down Expand Up @@ -136,7 +136,7 @@ const ChartColumns = memo((props: ChartProps<ColumnConfig>) => {
dimensionsById={dimensionsById}
chartConfig={chartConfig}
symbol="square"
interactive={interactiveFiltersConfig?.legend.active}
interactive={interactiveFiltersConfig.legend.active}
showTitle={fields.segment.showTitle}
/>
</ChartControlsContainer>
Expand Down
4 changes: 2 additions & 2 deletions app/charts/column/columns-stacked-state.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ const useColumnsStackedState = (
// When the user can toggle between absolute and relative values, we use the
// absolute values to calculate the yScale domain, so that the yScale doesn't
// change when the user toggles between absolute and relative values.
if (interactiveFiltersConfig?.calculation.active) {
if (interactiveFiltersConfig.calculation.active) {
const scale = getStackedYScale(paddingData, {
normalize: false,
getX,
Expand All @@ -384,7 +384,7 @@ const useColumnsStackedState = (
customDomain: y.customDomain,
});
}, [
interactiveFiltersConfig?.calculation.active,
interactiveFiltersConfig.calculation.active,
paddingData,
normalize,
getX,
Expand Down
10 changes: 6 additions & 4 deletions app/charts/index.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -314,6 +314,8 @@ describe("chart type switch", () => {
componentIds: [
"https://environment.ld.admin.ch/foen/ubd0104/dateofprobing",
],
defaultValueOverrides: {},
filterTypes: {},
},
calculation: {
active: false,
Expand All @@ -330,12 +332,12 @@ describe("chart type switch", () => {
measures: bathingWaterData.data.dataCubeByIri.measures as Measure[],
});

expect(newConfig.interactiveFiltersConfig?.dataFilters.active).toEqual(
expect(newConfig.interactiveFiltersConfig.dataFilters.active).toEqual(
false
);
expect(
newConfig.interactiveFiltersConfig?.dataFilters.componentIds
).toEqual([]);
expect(newConfig.interactiveFiltersConfig.dataFilters.componentIds).toEqual(
[]
);
});

it("should not carry over not-allowed segment", () => {
Expand Down
Loading