Skip to content

Commit

Permalink
Merge branch 'main' into fix-feature-prop-json
Browse files Browse the repository at this point in the history
  • Loading branch information
nf-s committed Jun 6, 2024
2 parents 12c8702 + 9861043 commit 2ee4981
Show file tree
Hide file tree
Showing 4 changed files with 66 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
- Fix position of draggable point after moving.
- Fix `getFeatureProperties` (in `FeatureInfoSection`) failing due to bad JSON parsing of nested strings.
- The `TableFeatureInfoStratum` default `featureInfoTemplate` will now not show `_id_` (internal Terria feature ID) in feature info
- Fix bug in FilterSection
- [The next improvement]

#### 8.7.3 - 2024-05-28
Expand Down
2 changes: 1 addition & 1 deletion lib/ReactViews/Workbench/Controls/FilterSection.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ class FilterSection extends React.Component {
}
return (
<div className={Styles.filters}>
{item.filters.map(this.renderFilter)}
{item.filters.map(this.renderFilter, this)}
</div>
);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ describe("YDYRCatalogFunction", function () {
csv.setTrait(CommonStrata.user, "csvString", lga11Csv);
await csv.loadRegionProviderList();
await csv.loadMapItems();
addUserCatalogMember(terria, csv, { enable: true });
await addUserCatalogMember(terria, csv, { enable: true });

ydyr = new YDYRCatalogFunction("testYdyr", terria);
ydyr.setTrait(CommonStrata.definition, "parameters", {
Expand Down
63 changes: 63 additions & 0 deletions test/ReactViews/Workbench/Controls/FilterSectionSpec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
import React from "react";
import { act } from "react-dom/test-utils";
import TestRenderer, { ReactTestRenderer } from "react-test-renderer";
import FilterSection from "../../../../lib/ReactViews/Workbench/Controls/FilterSection";
import { Range } from "rc-slider";
import Terria from "../../../../lib/Models/Terria";
import CommonStrata from "../../../../lib/Models/Definition/CommonStrata";
import CreateModel from "../../../../lib/Models/Definition/CreateModel";
import { FilterTraits } from "../../../../lib/Traits/TraitsClasses/Cesium3dTilesTraits";
import objectArrayTrait from "../../../../lib/Traits/Decorators/objectArrayTrait";
import ModelTraits from "../../../../lib/Traits/ModelTraits";
import { runInAction } from "mobx";

class TestTraits extends ModelTraits {
@objectArrayTrait({
type: FilterTraits,
idProperty: "name",
name: "filters",
description: "The filters to apply to this catalog item."
})
filters?: FilterTraits[];
}

class TestModel extends CreateModel(TestTraits) {}

describe("FilterSectionSpec", function () {
let testRenderer: ReactTestRenderer;
let terria: Terria;
let item: TestModel;

beforeAll(() => {
terria = new Terria({
baseUrl: "./"
});
item = new TestModel("test", terria);
});

it("Renders nothing if no filters", function () {
testRenderer = TestRenderer.create(<FilterSection item={item} />);
expect(testRenderer.root.children.length).toBe(0);
});

it("Renders a range input for each filter", function () {
runInAction(() => {
const filter = item.addObject(
CommonStrata.user,
"filters",
"level-filter"
);
filter?.setTrait(CommonStrata.user, "property", "level");
filter?.setTrait(CommonStrata.user, "minimumValue", 0);
filter?.setTrait(CommonStrata.user, "maximumValue", 42);
filter?.setTrait(CommonStrata.user, "minimumShown", 10);
filter?.setTrait(CommonStrata.user, "maximumShown", 20);
});

act(() => {
testRenderer = TestRenderer.create(<FilterSection item={item} />);
const rangeInputs = testRenderer.root.findAllByType(Range);
expect(rangeInputs.length).toBe(1);
});
});
});

0 comments on commit 2ee4981

Please sign in to comment.