[FAILING] Fix up some (not all) issues in buildReourceIndex
This commit is contained in:
parent
ca13d52b0d
commit
d75b93e514
|
@ -1,11 +1,11 @@
|
|||
import { resourceReducer } from "../resources/reducer";
|
||||
import { resourceReducer, emptyState } from "../resources/reducer";
|
||||
import { TaggedResource } from "../resources/tagged_resources";
|
||||
import * as _ from "lodash";
|
||||
import { createStore } from "redux";
|
||||
import { RestResources } from "../resources/interfaces";
|
||||
import { ReduxAction } from "../redux/interfaces";
|
||||
|
||||
let FAKE_RESOURCES: TaggedResource[] = [
|
||||
export let FAKE_RESOURCES: TaggedResource[] = [
|
||||
{
|
||||
"kind": "device",
|
||||
"body": {
|
||||
|
@ -266,15 +266,11 @@ let FAKE_RESOURCES: TaggedResource[] = [
|
|||
export
|
||||
function buildResourceIndex(resources: TaggedResource[] = FAKE_RESOURCES) {
|
||||
const KIND: keyof TaggedResource = "kind"; // Safety first, kids.
|
||||
// TODO: Figure out why Redux typings broke after the 2.4 upgrade.
|
||||
let store = createStore<RestResources>(resourceReducer as any);
|
||||
store.subscribe(() => console.log("!!!!"));
|
||||
let actions = _(resources)
|
||||
let state = _(resources)
|
||||
.groupBy(KIND)
|
||||
.toPairs()
|
||||
.map((x: [(TaggedResource["kind"]), TaggedResource[]]) => x)
|
||||
.map(y => ({ type: "RESOURCE_READY", payload: { name: y[0], data: y[1] } }));
|
||||
actions.map(a => store.dispatch(a));
|
||||
debugger;
|
||||
return store.getState() as RestResources;
|
||||
.map(y => ({ type: "RESOURCE_READY", payload: { name: y[0], data: y[1] } }))
|
||||
.reduce(resourceReducer, emptyState());
|
||||
return state;
|
||||
}
|
||||
|
|
41
src/__tests__/resource_index_builder_test.ts
Normal file
41
src/__tests__/resource_index_builder_test.ts
Normal file
|
@ -0,0 +1,41 @@
|
|||
import {
|
||||
buildResourceIndex,
|
||||
FAKE_RESOURCES
|
||||
} from "../__test_support__/resource_index_builder";
|
||||
import { betterCompact } from "../util";
|
||||
import { TaggedFarmEvent } from "../resources/tagged_resources";
|
||||
|
||||
const STUB_RESOURCE: TaggedFarmEvent = {
|
||||
"uuid": "farm_events.0.435",
|
||||
"kind": "farm_events",
|
||||
"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",
|
||||
"calendar": [
|
||||
"2017-07-21T00:30:00.000Z"
|
||||
]
|
||||
}
|
||||
};
|
||||
|
||||
test("buildResourceIndex", () => {
|
||||
let result1 = buildResourceIndex(FAKE_RESOURCES);
|
||||
let { index } = result1;
|
||||
const OK_LENGTH = FAKE_RESOURCES.length;
|
||||
expect(index.all.length).toBe(OK_LENGTH);
|
||||
expect(Object.keys(index.references).length).toBe(OK_LENGTH);
|
||||
|
||||
let result2 = buildResourceIndex([STUB_RESOURCE]);
|
||||
let fe = result2.index.references[result2.index.byKind.farm_events[0]];
|
||||
expect(fe).toBeTruthy();
|
||||
if (fe && fe.kind === "farm_events") {
|
||||
let { body } = fe;
|
||||
expect(body).toEqual(STUB_RESOURCE.body);
|
||||
} else {
|
||||
fail("fe was falsy or not a farm event.");
|
||||
}
|
||||
});
|
6
src/devices/timezones/__tests__/tz_list_test.ts
Normal file
6
src/devices/timezones/__tests__/tz_list_test.ts
Normal file
|
@ -0,0 +1,6 @@
|
|||
import { list } from "../tz_list";
|
||||
|
||||
test("TZ List presence", () => {
|
||||
// Not the most useful test. Might catch accidental erasure, though.
|
||||
expect(list.length).toBe(588);
|
||||
});
|
|
@ -13,7 +13,6 @@ describe("mapResourcesToCalendar()", () => {
|
|||
let wow = fakeResources();
|
||||
let ri = buildResourceIndex(wow);
|
||||
let results = mapResourcesToCalendar(ri.index, FOUR_THIRTY).getAll();
|
||||
expect(true).toBeFalsy();
|
||||
});
|
||||
});
|
||||
|
||||
|
|
|
@ -47,7 +47,7 @@ export function joinFarmEventsToExecutable(input: ResourceIndex): FarmEventWithE
|
|||
}
|
||||
}
|
||||
} else {
|
||||
throw new Error("Opps...");
|
||||
throw new Error("Farmevent had no ID");
|
||||
}
|
||||
}));
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue