Skip to content

Commit 429cdf8

Browse files
committed
skeleton validation tests
Signed-off-by: shmck <[email protected]>
1 parent 8cd8a88 commit 429cdf8

File tree

1 file changed

+183
-15
lines changed

1 file changed

+183
-15
lines changed

tests/skeleton.test.ts

+183-15
Original file line numberDiff line numberDiff line change
@@ -84,19 +84,187 @@ describe("validate skeleton", () => {
8484
const valid = validateSkeleton(json);
8585
expect(valid).toBe(true);
8686
});
87-
it.todo("should fail if version is invalid");
88-
it.todo("should fail if version is missing");
89-
it.todo("should fail if config is missing");
90-
it.todo("should fail if config testRunner is missing");
91-
it.todo("should fail if config testRunner command is missing");
92-
it.todo("should fail if config testRunner args tap is missing");
93-
it.todo("should fail if repo is missing");
94-
it.todo("should fail if repo uri is missing");
95-
it.todo("should fail if repo uri is invalid");
96-
it.todo("should fail if repo branch is missing");
97-
it.todo("should fial if level is missing id");
98-
it.todo("should fail if level setup is invalid");
99-
it.todo("should fail if step is missing id");
100-
it.todo("should fail if step setup is invalid");
101-
it.todo("should fail if solution setup is invalid");
87+
it("should fail if version is invalid", () => {
88+
const json = { ...validJson, version: "NOT A VERSION" };
89+
90+
const valid = validateSkeleton(json);
91+
expect(valid).toBe(false);
92+
});
93+
it("should fail if version is missing", () => {
94+
const json = { ...validJson, version: undefined };
95+
96+
const valid = validateSkeleton(json);
97+
expect(valid).toBe(false);
98+
});
99+
it("should fail if config is missing", () => {
100+
const json = { ...validJson, config: undefined };
101+
102+
const valid = validateSkeleton(json);
103+
expect(valid).toBe(false);
104+
});
105+
it("should fail if config testRunner is missing", () => {
106+
const json = {
107+
...validJson,
108+
config: { ...validJson.config, testRunner: undefined },
109+
};
110+
111+
const valid = validateSkeleton(json);
112+
expect(valid).toBe(false);
113+
});
114+
it("should fail if config testRunner command is missing", () => {
115+
const json = {
116+
...validJson,
117+
config: {
118+
...validJson.config,
119+
testRunner: { ...validJson.config.testRunner, command: undefined },
120+
},
121+
};
122+
123+
const valid = validateSkeleton(json);
124+
expect(valid).toBe(false);
125+
});
126+
it("should fail if config testRunner args tap is missing", () => {
127+
const json = {
128+
...validJson,
129+
config: {
130+
...validJson.config,
131+
testRunner: {
132+
...validJson.config.testRunner,
133+
args: { ...validJson.config.testRunner.args, tap: undefined },
134+
},
135+
},
136+
};
137+
138+
const valid = validateSkeleton(json);
139+
expect(valid).toBe(false);
140+
});
141+
it("should fail if repo is missing", () => {
142+
const json = {
143+
...validJson,
144+
config: {
145+
...validJson.config,
146+
repo: undefined,
147+
},
148+
};
149+
150+
const valid = validateSkeleton(json);
151+
expect(valid).toBe(false);
152+
});
153+
it("should fail if repo uri is missing", () => {
154+
const json = {
155+
...validJson,
156+
config: {
157+
...validJson.config,
158+
repo: { ...validJson.config.repo, uri: undefined },
159+
},
160+
};
161+
162+
const valid = validateSkeleton(json);
163+
expect(valid).toBe(false);
164+
});
165+
it("should fail if repo uri is invalid", () => {
166+
const json = {
167+
...validJson,
168+
config: {
169+
...validJson.config,
170+
repo: { ...validJson.config.repo, uri: "NOT A VALID URI" },
171+
},
172+
};
173+
174+
const valid = validateSkeleton(json);
175+
expect(valid).toBe(false);
176+
});
177+
it("should fail if repo branch is missing", () => {
178+
const json = {
179+
...validJson,
180+
config: {
181+
...validJson.config,
182+
repo: { ...validJson.config.repo, branch: undefined },
183+
},
184+
};
185+
186+
const valid = validateSkeleton(json);
187+
expect(valid).toBe(false);
188+
});
189+
it("should fial if level is missing id", () => {
190+
const level1 = { ...validJson.levels[0], id: undefined };
191+
const json = {
192+
...validJson,
193+
levels: [level1],
194+
};
195+
196+
const valid = validateSkeleton(json);
197+
expect(valid).toBe(false);
198+
});
199+
it("should fail if level setup is invalid", () => {
200+
const level1 = { ...validJson.levels[0], setup: { invalidThing: [] } };
201+
const json = {
202+
...validJson,
203+
levels: [level1],
204+
};
205+
206+
const valid = validateSkeleton(json);
207+
expect(valid).toBe(false);
208+
});
209+
it("should fail if step is missing id", () => {
210+
const step1 = { ...validJson.levels[0].steps[0], id: undefined };
211+
const level1 = { ...validJson.levels[0], steps: [step1] };
212+
const json = {
213+
...validJson,
214+
levels: [level1],
215+
};
216+
217+
const valid = validateSkeleton(json);
218+
expect(valid).toBe(false);
219+
});
220+
it("should fail if step setup is missing", () => {
221+
const step1 = { ...validJson.levels[0].steps[0], setup: undefined };
222+
const level1 = { ...validJson.levels[0], steps: [step1] };
223+
const json = {
224+
...validJson,
225+
levels: [level1],
226+
};
227+
228+
const valid = validateSkeleton(json);
229+
expect(valid).toBe(false);
230+
});
231+
it("should fail if step setup is invalid", () => {
232+
const step1 = {
233+
...validJson.levels[0].steps[0],
234+
setup: { invalidThing: [] },
235+
};
236+
const level1 = { ...validJson.levels[0], steps: [step1] };
237+
const json = {
238+
...validJson,
239+
levels: [level1],
240+
};
241+
242+
const valid = validateSkeleton(json);
243+
expect(valid).toBe(false);
244+
});
245+
it("should not fail if step solution is missing", () => {
246+
const step1 = { ...validJson.levels[0].steps[0], solution: undefined };
247+
const level1 = { ...validJson.levels[0], steps: [step1] };
248+
const json = {
249+
...validJson,
250+
levels: [level1],
251+
};
252+
253+
const valid = validateSkeleton(json);
254+
expect(valid).toBe(true);
255+
});
256+
it("should fail if step solution is invalid", () => {
257+
const step1 = {
258+
...validJson.levels[0].steps[0],
259+
solution: { invalidThing: [] },
260+
};
261+
const level1 = { ...validJson.levels[0], steps: [step1] };
262+
const json = {
263+
...validJson,
264+
levels: [level1],
265+
};
266+
267+
const valid = validateSkeleton(json);
268+
expect(valid).toBe(false);
269+
});
102270
});

0 commit comments

Comments
 (0)