Test for EditFEForm#isOneTime
parent
376a8123d9
commit
e53196fe54
|
@ -1,10 +1,37 @@
|
|||
import { Everything } from "../../interfaces";
|
||||
import { buildResourceIndex } from "../resource_index_builder";
|
||||
import { TaggedFarmEvent } from "../../resources/tagged_resources";
|
||||
import { TaggedFarmEvent, TaggedSequence, TaggedRegimen } from "../../resources/tagged_resources";
|
||||
import { ExecutableType } from "../../farm_designer/interfaces";
|
||||
|
||||
export let resources: Everything["resources"] = buildResourceIndex();
|
||||
|
||||
export function fakeSequence(): TaggedSequence {
|
||||
return {
|
||||
"kind": "sequences",
|
||||
uuid: "---",
|
||||
"body": {
|
||||
args: { version: 4 },
|
||||
id: 12,
|
||||
color: "red",
|
||||
name: "fake",
|
||||
kind: "sequence",
|
||||
body: []
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function fakeRegimen(): TaggedRegimen {
|
||||
return {
|
||||
uuid: "Whatever",
|
||||
kind: "regimens",
|
||||
body: {
|
||||
name: "Foo",
|
||||
color: "red",
|
||||
regimen_items: []
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
export function fakeFarmEvent(exe_type: ExecutableType,
|
||||
exe_id: number): TaggedFarmEvent {
|
||||
return {
|
||||
|
|
|
@ -12,7 +12,7 @@ export const TIME = {
|
|||
SATURDAY: moment("2017-06-24T06:30:00.000-05:00")
|
||||
};
|
||||
|
||||
export let fake_fe = (): FarmEventWithExecutable => {
|
||||
export let fakeFarmEventWithExecutable = (): FarmEventWithExecutable => {
|
||||
return {
|
||||
id: 1,
|
||||
start_time: "---",
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import * as react from "react";
|
||||
import { EditFEForm } from "../edit_fe_form";
|
||||
import { fakeFarmEvent } from "../../../__test_support__/fake_state/resources";
|
||||
import * as React from "react";
|
||||
import { fakeFarmEvent, fakeSequence } from "../../../__test_support__/fake_state/resources";
|
||||
import { mount } from "enzyme";
|
||||
import { EditFEForm, EditFEProps } from "../edit_fe_form";
|
||||
|
||||
describe("<FarmEventForm/>", () => {
|
||||
let props = (): EditFEForm["props"] => ({
|
||||
|
@ -9,7 +10,7 @@ describe("<FarmEventForm/>", () => {
|
|||
repeatOptions: [],
|
||||
farmEvent: fakeFarmEvent("Sequence", 12),
|
||||
dispatch: jest.fn(),
|
||||
findExecutable: jest.fn(),
|
||||
findExecutable: jest.fn(() => fakeSequence()),
|
||||
title: "title"
|
||||
});
|
||||
let context = { form: new EditFEForm(props()) };
|
||||
|
@ -24,7 +25,12 @@ describe("<FarmEventForm/>", () => {
|
|||
});
|
||||
|
||||
it("determines if it is a one time event", () => {
|
||||
expect(context.form.isOneTime).toBe(true);
|
||||
let el = mount<EditFEProps>(<EditFEForm {...props() } />);
|
||||
let i = el.instance() as EditFEForm;
|
||||
expect(i.isOneTime).toBe(true);
|
||||
i.mergeState("timeUnit", "daily");
|
||||
i.forceUpdate();
|
||||
expect(i.isOneTime).toBe(false);
|
||||
});
|
||||
|
||||
it("has a dispatch");
|
||||
|
|
|
@ -3,7 +3,7 @@ import * as moment from "moment";
|
|||
import { occurrence } from "../occurrence";
|
||||
import {
|
||||
TIME,
|
||||
fake_fe
|
||||
fakeFarmEventWithExecutable
|
||||
} from "../../../../__test_support__/farm_event_calendar_support";
|
||||
|
||||
describe("calendar", () => {
|
||||
|
@ -15,8 +15,8 @@ describe("calendar", () => {
|
|||
|
||||
it("inserts dates", () => {
|
||||
let calendar = new Calendar();
|
||||
calendar.insert(occurrence(TIME.MONDAY, fake_fe()));
|
||||
calendar.insert(occurrence(TIME.TUESDAY, fake_fe()));
|
||||
calendar.insert(occurrence(TIME.MONDAY, fakeFarmEventWithExecutable()));
|
||||
calendar.insert(occurrence(TIME.TUESDAY, fakeFarmEventWithExecutable()));
|
||||
expect(calendar.getAll().length).toEqual(2);
|
||||
expect(calendar.value).toBeInstanceOf(Object);
|
||||
expect(calendar.value["0619"]).toBeInstanceOf(Array);
|
||||
|
@ -25,7 +25,7 @@ describe("calendar", () => {
|
|||
|
||||
it("finds by date", () => {
|
||||
let calendar = new Calendar();
|
||||
let wow = occurrence(TIME.MONDAY, fake_fe());
|
||||
let wow = occurrence(TIME.MONDAY, fakeFarmEventWithExecutable());
|
||||
calendar.insert(wow);
|
||||
expect(calendar.findByDate(TIME.FRIDAY)).toBeInstanceOf(Array);
|
||||
expect(calendar.findByDate(TIME.MONDAY)).toContain(wow);
|
||||
|
|
|
@ -2,12 +2,12 @@ import { occurrence } from "../occurrence";
|
|||
import * as moment from "moment";
|
||||
import {
|
||||
TIME,
|
||||
fake_fe
|
||||
fakeFarmEventWithExecutable
|
||||
} from "../../../../__test_support__/farm_event_calendar_support";
|
||||
|
||||
describe("occurrence", () => {
|
||||
it("builds a single entry for the calendar", () => {
|
||||
let fe = fake_fe();
|
||||
let fe = fakeFarmEventWithExecutable();
|
||||
let t = occurrence(TIME.MONDAY, fe);
|
||||
expect(t.executableId).toBe(fe.executable_id);
|
||||
expect(t.mmdd).toBe("0619");
|
||||
|
|
|
@ -80,7 +80,7 @@ function recombine(vm: FarmEventViewModel): Partial<TaggedFarmEvent["body"]> {
|
|||
};
|
||||
}
|
||||
|
||||
interface Props {
|
||||
export interface EditFEProps {
|
||||
deviceTimezone: string | undefined;
|
||||
executableOptions: TightlyCoupledFarmEventDropDown[];
|
||||
repeatOptions: DropDownItem[];
|
||||
|
@ -102,7 +102,7 @@ interface State {
|
|||
localCopyDirty: boolean;
|
||||
}
|
||||
|
||||
export class EditFEForm extends React.Component<Props, State> {
|
||||
export class EditFEForm extends React.Component<EditFEProps, State> {
|
||||
state: State = { fe: {}, localCopyDirty: false };
|
||||
|
||||
get isOneTime() { return this.fieldGet("timeUnit") === NEVER; }
|
||||
|
@ -134,6 +134,7 @@ export class EditFEForm extends React.Component<Props, State> {
|
|||
}
|
||||
|
||||
executableGet = (): TightlyCoupledFarmEventDropDown => {
|
||||
debugger;
|
||||
let executable_type: ExecutableType =
|
||||
(this.executable.kind === "sequences") ? "Sequence" : "Regimen";
|
||||
return {
|
||||
|
@ -207,11 +208,6 @@ export class EditFEForm extends React.Component<Props, State> {
|
|||
let isSaved = !isSaving && !isDirty;
|
||||
let repeats = this.fieldGet("timeUnit") !== NEVER;
|
||||
let allowRepeat = (!this.isReg && repeats);
|
||||
fancyDebug({
|
||||
timeUnit: this.fieldGet("timeUnit"),
|
||||
repeats,
|
||||
allowRepeat
|
||||
});
|
||||
return <div className="panel-container magenta-panel add-farm-event-panel">
|
||||
<div className="panel-header magenta-panel">
|
||||
<p className="panel-title"> <BackArrow /> {this.props.title} </p>
|
||||
|
|
|
@ -3,19 +3,10 @@ import * as React from "react";
|
|||
import { mount } from "enzyme";
|
||||
import { CopyButton } from "../copy_button";
|
||||
import { TaggedRegimen } from "../../../resources/tagged_resources";
|
||||
import { fakeRegimen } from "../../../__test_support__/fake_state/resources";
|
||||
|
||||
describe("Copy button", () => {
|
||||
function fakeRegimen(): TaggedRegimen {
|
||||
return {
|
||||
uuid: "Whatever",
|
||||
kind: "regimens",
|
||||
body: {
|
||||
name: "Foo",
|
||||
color: "red",
|
||||
regimen_items: []
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
it("Initializes a new regimen on click", () => {
|
||||
let dispatch = jest.fn();
|
||||
let regimen = fakeRegimen();
|
||||
|
|
Loading…
Reference in New Issue