diff --git a/frontend/css/farm_designer/farm_designer.scss b/frontend/css/farm_designer/farm_designer.scss
index 0e5718e5a..16f842c59 100644
--- a/frontend/css/farm_designer/farm_designer.scss
+++ b/frontend/css/farm_designer/farm_designer.scss
@@ -273,7 +273,9 @@
}
.plant-indicator.is-chosen-true {
- animation: plant-selection-pop 0.2s 1 cubic-bezier(0, 0, 0, 0.9), pulse-and-rotate 4s 0.2s infinite linear;
+ &.animate {
+ animation: plant-selection-pop 0.2s 1 cubic-bezier(0, 0, 0, 0.9), pulse-and-rotate 4s 0.2s infinite linear;
+ }
transform-origin: center;
transform-box: fill-box;
}
diff --git a/frontend/farm_designer/__tests__/panel_header_test.tsx b/frontend/farm_designer/__tests__/panel_header_test.tsx
index 3a28ae4a5..aad98142b 100644
--- a/frontend/farm_designer/__tests__/panel_header_test.tsx
+++ b/frontend/farm_designer/__tests__/panel_header_test.tsx
@@ -44,6 +44,22 @@ describe("", () => {
expect(wrapper.html()).toContain("active");
});
+ it("renders for points", () => {
+ mockPath = "/app/designer/points";
+ mockDev = true;
+ const wrapper = shallow();
+ expect(wrapper.hasClass("gray-panel")).toBeTruthy();
+ expect(wrapper.html()).toContain("active");
+ });
+
+ it("renders for groups", () => {
+ mockPath = "/app/designer/groups";
+ mockDev = true;
+ const wrapper = shallow();
+ expect(wrapper.hasClass("blue-panel")).toBeTruthy();
+ expect(wrapper.html()).toContain("active");
+ });
+
it("renders for settings", () => {
mockPath = "/app/designer/settings";
mockDev = true;
diff --git a/frontend/farm_designer/__tests__/state_to_props_test.tsx b/frontend/farm_designer/__tests__/state_to_props_test.tsx
index 448c167d4..45320f2ec 100644
--- a/frontend/farm_designer/__tests__/state_to_props_test.tsx
+++ b/frontend/farm_designer/__tests__/state_to_props_test.tsx
@@ -9,7 +9,8 @@ import {
fakeSavedGarden,
fakePoint,
fakeWebAppConfig,
- fakeFarmwareEnv
+ fakeFarmwareEnv,
+ fakeSensorReading
} from "../../__test_support__/fake_state/resources";
import { WebAppConfig } from "farmbot/dist/resources/configs/web_app";
import { generateUuid } from "../../resources/util";
@@ -82,6 +83,21 @@ describe("mapStateToProps()", () => {
state.resources = buildResourceIndex([webAppConfig, point1, point2, point3]);
expect(mapStateToProps(state).points.length).toEqual(1);
});
+
+ it("returns sensor readings", () => {
+ const state = fakeState();
+ const sr1 = fakeSensorReading();
+ sr1.body.created_at = "2018-01-14T20:20:38.362Z";
+ const sr2 = fakeSensorReading();
+ sr2.body.created_at = "2018-01-11T20:20:38.362Z";
+ state.resources = buildResourceIndex([sr1, sr2]);
+ const uuid1 = Object.keys(state.resources.index.byKind["SensorReading"])[0];
+ const uuid2 = Object.keys(state.resources.index.byKind["SensorReading"])[1];
+ expect(mapStateToProps(state).sensorReadings).toEqual([
+ expect.objectContaining({ uuid: uuid2 }),
+ expect.objectContaining({ uuid: uuid1 }),
+ ]);
+ });
});
describe("getPlants()", () => {
diff --git a/frontend/farm_designer/map/active_plant/hovered_plant.tsx b/frontend/farm_designer/map/active_plant/hovered_plant.tsx
index 8337f3783..2c0f0032a 100644
--- a/frontend/farm_designer/map/active_plant/hovered_plant.tsx
+++ b/frontend/farm_designer/map/active_plant/hovered_plant.tsx
@@ -62,16 +62,16 @@ export class HoveredPlant extends
animate={animate} />
}
-
-
+
+
-
{DevSettings.futureFeaturesEnabled()
? ![]()