terriajs
Version:
Geospatial data visualization platform.
85 lines (74 loc) • 2.53 kB
text/typescript
import { action, computed, makeObservable } from "mobx";
import JulianDate from "terriajs-cesium/Source/Core/JulianDate";
import DiffableMixin from "../../lib/ModelMixins/DiffableMixin";
import MappableMixin from "../../lib/ModelMixins/MappableMixin";
import CommonStrata from "../../lib/Models/Definition/CommonStrata";
import CreateModel from "../../lib/Models/Definition/CreateModel";
import { ModelConstructorParameters } from "../../lib/Models/Definition/Model";
import Terria from "../../lib/Models/Terria";
import mixTraits from "../../lib/Traits/mixTraits";
import CatalogMemberTraits from "../../lib/Traits/TraitsClasses/CatalogMemberTraits";
import DiffableTraits from "../../lib/Traits/TraitsClasses/DiffableTraits";
import SplitterTraits from "../../lib/Traits/TraitsClasses/SplitterTraits";
describe("DiffableMixin", function () {
describe("canFilterTimeByFeature", function () {
it(
"returns false if the item is showing diff",
action(function () {
const testItem = new TestDiffableItem("test", new Terria());
testItem.setTrait(CommonStrata.user, "isShowingDiff", true);
expect(testItem.canFilterTimeByFeature).toBe(false);
})
);
it(
"otherwise returns the inherited value",
action(function () {
const testItem = new TestDiffableItem("test", new Terria());
testItem.setTrait(CommonStrata.user, "isShowingDiff", false);
testItem.setTrait(CommonStrata.user, "timeFilterPropertyName", "foo");
expect(testItem.canFilterTimeByFeature).toBe(true);
testItem.setTrait(
CommonStrata.user,
"timeFilterPropertyName",
undefined
);
expect(testItem.canFilterTimeByFeature).toBe(false);
})
);
});
});
class TestDiffableItem extends DiffableMixin(
MappableMixin(
CreateModel(mixTraits(DiffableTraits, CatalogMemberTraits, SplitterTraits))
)
) {
constructor(...args: ModelConstructorParameters) {
super(...args);
makeObservable(this);
}
protected async forceLoadMapItems() {}
styleSelectableDimensions = [];
get canDiffImages() {
return true;
}
get discreteTimes() {
return undefined;
}
showDiffImage(
_firstDate: JulianDate,
_secondDate: JulianDate,
_diffStyleId: string
) {}
clearDiffImage() {}
getLegendUrlForStyle(
_diffStyleId: string,
_firstDate: JulianDate,
_secondDate: JulianDate
) {
return "test-legend-url";
}
@computed
get mapItems() {
return [];
}
}