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() ?