Farmbot-Web-App/frontend/__tests__/resource_index_builder_test.ts

42 lines
1.2 KiB
TypeScript
Raw Normal View History

import {
buildResourceIndex,
2020-02-28 09:35:32 -07:00
FAKE_RESOURCES,
} from "../__test_support__/resource_index_builder";
2018-08-01 07:03:35 -06:00
import { TaggedFarmEvent, SpecialStatus } from "farmbot";
const STUB_RESOURCE: TaggedFarmEvent = {
"uuid": "FarmEvent.0.435",
2017-10-27 07:31:25 -06:00
"kind": "FarmEvent",
"specialStatus": SpecialStatus.SAVED,
"body": {
"id": 217,
"start_time": "2017-07-21T00:30:00.000Z",
"end_time": "2017-07-21T00:31:00.000Z",
"repeat": 1,
"time_unit": "never",
"executable_id": 78,
"executable_type": "Regimen"
}
};
2017-07-21 10:36:12 -06:00
test("buildResourceIndex - base case", () => {
2017-08-28 05:49:13 -06:00
const result1 = buildResourceIndex(FAKE_RESOURCES);
const { index } = result1;
const OK_LENGTH = FAKE_RESOURCES.length;
2018-11-01 09:09:14 -06:00
expect(Object.keys(index.all).length).toBe(OK_LENGTH);
expect(Object.keys(index.references).length).toBe(OK_LENGTH);
2017-07-21 10:36:12 -06:00
});
2017-07-21 10:36:12 -06:00
test("buildResourceIndex - add a FarmEvent", () => {
2017-08-28 05:49:13 -06:00
const db = buildResourceIndex([STUB_RESOURCE]);
const key = Object.keys(db.index.byKind.FarmEvent)[0];
const fe = db.index.references[key];
expect(fe).toBeTruthy();
2020-01-03 13:04:45 -07:00
if (fe?.kind === "FarmEvent") {
2017-08-28 05:49:13 -06:00
const { body } = fe;
expect(body).toEqual(STUB_RESOURCE.body);
} else {
fail("fe was falsy or not a farm event.");
}
});