UNPKG

terriajs

Version:

Geospatial data visualization platform.

85 lines (74 loc) 2.53 kB
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 []; } }