Skip to content

Commit d1420de

Browse files
committed
Put switches in form, persist form state
1 parent bfbabe1 commit d1420de

File tree

7 files changed

+196
-212
lines changed

7 files changed

+196
-212
lines changed

site/src/components/WorkspaceScheduleForm/WorkspaceScheduleForm.test.ts

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,41 +1,45 @@
11
import {
2-
getValidationSchema,
32
Language,
43
ttlShutdownAt,
4+
validationSchema,
55
WorkspaceScheduleFormValues,
66
} from "./WorkspaceScheduleForm"
77
import { zones } from "./zones"
88

99
const valid: WorkspaceScheduleFormValues = {
10+
autoStartEnabled: true,
1011
sunday: false,
1112
monday: true,
1213
tuesday: true,
1314
wednesday: true,
1415
thursday: true,
1516
friday: true,
1617
saturday: false,
17-
1818
startTime: "09:30",
1919
timezone: "Canada/Eastern",
20+
21+
autoStopEnabled: true,
2022
ttl: 120,
2123
}
2224

2325
describe("validationSchema", () => {
2426
it("allows everything to be falsy when switches are off", () => {
2527
const values: WorkspaceScheduleFormValues = {
28+
autoStartEnabled: false,
2629
sunday: false,
2730
monday: false,
2831
tuesday: false,
2932
wednesday: false,
3033
thursday: false,
3134
friday: false,
3235
saturday: false,
33-
3436
startTime: "",
3537
timezone: "",
38+
39+
autoStopEnabled: false,
3640
ttl: 0,
3741
}
38-
const validate = () => getValidationSchema(false, false).validateSync(values)
42+
const validate = () => validationSchema.validateSync(values)
3943
expect(validate).not.toThrow()
4044
})
4145

@@ -44,7 +48,7 @@ describe("validationSchema", () => {
4448
...valid,
4549
ttl: -1,
4650
}
47-
const validate = () => getValidationSchema(true, true).validateSync(values)
51+
const validate = () => validationSchema.validateSync(values)
4852
expect(validate).toThrow()
4953
})
5054

@@ -59,7 +63,7 @@ describe("validationSchema", () => {
5963
friday: false,
6064
saturday: false,
6165
}
62-
const validate = () => getValidationSchema(true, false).validateSync(values)
66+
const validate = () => validationSchema.validateSync(values)
6367
expect(validate).toThrowError(Language.errorNoDayOfWeek)
6468
})
6569

@@ -75,7 +79,7 @@ describe("validationSchema", () => {
7579
saturday: false,
7680
startTime: "",
7781
}
78-
const validate = () => getValidationSchema(true, false).validateSync(values)
82+
const validate = () => validationSchema.validateSync(values)
7983
expect(validate).toThrowError(Language.errorNoTime)
8084
})
8185

@@ -84,7 +88,7 @@ describe("validationSchema", () => {
8488
...valid,
8589
startTime: "16:20",
8690
}
87-
const validate = () => getValidationSchema(true, true).validateSync(values)
91+
const validate = () => validationSchema.validateSync(values)
8892
expect(validate).not.toThrow()
8993
})
9094

@@ -93,7 +97,7 @@ describe("validationSchema", () => {
9397
...valid,
9498
startTime: "9:30",
9599
}
96-
const validate = () => getValidationSchema(true, true).validateSync(values)
100+
const validate = () => validationSchema.validateSync(values)
97101
expect(validate).toThrowError(Language.errorTime)
98102
})
99103

@@ -102,7 +106,7 @@ describe("validationSchema", () => {
102106
...valid,
103107
startTime: "09:5",
104108
}
105-
const validate = () => getValidationSchema(true, true).validateSync(values)
109+
const validate = () => validationSchema.validateSync(values)
106110
expect(validate).toThrowError(Language.errorTime)
107111
})
108112

@@ -111,7 +115,7 @@ describe("validationSchema", () => {
111115
...valid,
112116
startTime: "24:01",
113117
}
114-
const validate = () => getValidationSchema(true, true).validateSync(values)
118+
const validate = () => validationSchema.validateSync(values)
115119
expect(validate).toThrowError(Language.errorTime)
116120
})
117121

@@ -120,7 +124,7 @@ describe("validationSchema", () => {
120124
...valid,
121125
startTime: "09:60",
122126
}
123-
const validate = () => getValidationSchema(true, true).validateSync(values)
127+
const validate = () => validationSchema.validateSync(values)
124128
expect(validate).toThrowError(Language.errorTime)
125129
})
126130

@@ -129,7 +133,7 @@ describe("validationSchema", () => {
129133
...valid,
130134
timezone: "Canada/North",
131135
}
132-
const validate = () => getValidationSchema(true, true).validateSync(values)
136+
const validate = () => validationSchema.validateSync(values)
133137
expect(validate).toThrowError(Language.errorTimezone)
134138
})
135139

@@ -138,7 +142,7 @@ describe("validationSchema", () => {
138142
...valid,
139143
timezone: zone,
140144
}
141-
const validate = () => getValidationSchema(true, true).validateSync(values)
145+
const validate = () => validationSchema.validateSync(values)
142146
expect(validate).not.toThrow()
143147
})
144148

@@ -147,7 +151,7 @@ describe("validationSchema", () => {
147151
...valid,
148152
ttl: 24 * 7,
149153
}
150-
const validate = () => getValidationSchema(true, true).validateSync(values)
154+
const validate = () => validationSchema.validateSync(values)
151155
expect(validate).not.toThrowError()
152156
})
153157

@@ -156,7 +160,7 @@ describe("validationSchema", () => {
156160
...valid,
157161
ttl: 24 * 7 + 1,
158162
}
159-
const validate = () => getValidationSchema(true, true).validateSync(values)
163+
const validate = () => validationSchema.validateSync(values)
160164
expect(validate).toThrowError("ttl must be less than or equal to 168")
161165
})
162166
})

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy