DSDSWeb/static/js/Cesium-1.53/Specs/Widgets/InfoBox/InfoBoxViewModelSpec.js

52 lines
1.8 KiB
JavaScript
Raw Normal View History

2024-07-11 18:02:47 +08:00
defineSuite([
'Widgets/InfoBox/InfoBoxViewModel'
], function(
InfoBoxViewModel) {
'use strict';
it('constructor sets expected values', function() {
var viewModel = new InfoBoxViewModel();
expect(viewModel.enableCamera).toBe(false);
expect(viewModel.isCameraTracking).toBe(false);
expect(viewModel.showInfo).toBe(false);
expect(viewModel.cameraClicked).toBeDefined();
expect(viewModel.closeClicked).toBeDefined();
expect(viewModel.maxHeightOffset(0)).toBeDefined();
});
it('sets description', function() {
var safeString = '<p>This is a test.</p>';
var viewModel = new InfoBoxViewModel();
viewModel.description = safeString;
expect(viewModel.description).toBe(safeString);
});
it('indicates missing description', function() {
var viewModel = new InfoBoxViewModel();
expect(viewModel._bodyless).toBe(true);
viewModel.description = 'Testing';
expect(viewModel._bodyless).toBe(false);
});
it('camera icon changes when tracking is not available, unless due to active tracking', function() {
var viewModel = new InfoBoxViewModel();
viewModel.enableCamera = true;
viewModel.isCameraTracking = false;
var enabledTrackingPath = viewModel.cameraIconPath;
viewModel.enableCamera = false;
viewModel.isCameraTracking = false;
expect(viewModel.cameraIconPath).not.toBe(enabledTrackingPath);
var disableTrackingPath = viewModel.cameraIconPath;
viewModel.enableCamera = true;
viewModel.isCameraTracking = true;
expect(viewModel.cameraIconPath).toBe(disableTrackingPath);
viewModel.enableCamera = false;
viewModel.isCameraTracking = true;
expect(viewModel.cameraIconPath).toBe(disableTrackingPath);
});
});