feat: wrong-answer remediation loop #238
ci-deploy.yml
on: pull_request
Annotations
4 errors
|
Unit & Component Tests
Process completed with exit code 1.
|
|
src/__tests__/components/lesson-flow.test.tsx > LessonFlow > calls complete API and redirects on completion:
apps/web/src/__tests__/components/lesson-flow.test.tsx#L187
TestingLibraryElementError: Unable to find an element with the text: Practice complete. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
Ignored nodes: comments, script, style
<body>
<div>
<div
class="space-y-6"
>
<div>
<h2
class="text-2xl font-bold text-foreground"
>
Fire Behavior
</h2>
<p
class="text-sm text-muted-foreground mt-1"
>
Knowledge Point
1
of
2
</p>
</div>
<div
aria-valuemax="100"
aria-valuemin="0"
aria-valuenow="50"
aria-valuetext="50%"
class="flex flex-wrap gap-3 h-2"
data-progressing=""
data-slot="progress"
role="progressbar"
>
<div
class="relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted"
data-progressing=""
data-slot="progress-track"
>
<div
class="h-full bg-primary transition-all"
data-progressing=""
data-slot="progress-indicator"
style="inset-inline-start: 0px; height: inherit; width: 50%;"
/>
</div>
<span
role="presentation"
style="clip-path: inset(50%); overflow: hidden; white-space: nowrap; border: 0px; padding: 0px; width: 1px; height: 1px; margin: -1px; position: fixed; top: 0px; left: 0px;"
>
x
</span>
</div>
<div
class="rounded-lg border border-border p-6 space-y-4"
>
<div
class="flex items-center gap-2 text-sm font-medium text-primary"
>
<svg
aria-hidden="true"
class="lucide lucide-clipboard-list h-4 w-4"
fill="none"
height="24"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<rect
height="4"
rx="1"
ry="1"
width="8"
x="8"
y="2"
/>
<path
d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"
/>
<path
d="M12 11h4"
/>
<path
d="M12 16h4"
/>
<path
d="M8 11h.01"
/>
<path
d="M8 16h.01"
/>
</svg>
Practice
</div>
<details
class="rounded-lg border border-border bg-muted/20 p-4"
>
<summary
class="cursor-pointer text-sm font-medium text-muted-foreground"
>
Review the worked example
</summary>
<div
class="mt-3 space-y-2"
>
<div
class="text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_em]:italic [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-sm [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:list-decimal [&_ol]:pl-6 [&_li]:my-1 [&_a]:text-primary [&_a]:underline"
>
<p>
Example: A candle flame needs all three elements.
</p>
</div>
</div>
</details>
<div
class="space-y-6"
>
<p
class="text-lg font-medium text-foreground"
>
Which element is part of the fire triangle?
</p>
<div
class="space-y-3"
role="radiogroup"
>
<button
aria-checked="true"
class="w-full rounded-lg border-2 p-4 text-left text-sm transition-colors border-primary bg-primary/5 cursor-pointer hover:border-primary/50"
role="radio"
|
|
src/__tests__/components/lesson-flow.test.tsx > LessonFlow > shows Complete Lesson button on last KP after practice is done:
apps/web/src/__tests__/components/lesson-flow.test.tsx#L159
TestingLibraryElementError: Unable to find an element with the text: Practice complete. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
Ignored nodes: comments, script, style
<body>
<div>
<div
class="space-y-6"
>
<div>
<h2
class="text-2xl font-bold text-foreground"
>
Fire Behavior
</h2>
<p
class="text-sm text-muted-foreground mt-1"
>
Knowledge Point
1
of
2
</p>
</div>
<div
aria-valuemax="100"
aria-valuemin="0"
aria-valuenow="50"
aria-valuetext="50%"
class="flex flex-wrap gap-3 h-2"
data-progressing=""
data-slot="progress"
role="progressbar"
>
<div
class="relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted"
data-progressing=""
data-slot="progress-track"
>
<div
class="h-full bg-primary transition-all"
data-progressing=""
data-slot="progress-indicator"
style="inset-inline-start: 0px; height: inherit; width: 50%;"
/>
</div>
<span
role="presentation"
style="clip-path: inset(50%); overflow: hidden; white-space: nowrap; border: 0px; padding: 0px; width: 1px; height: 1px; margin: -1px; position: fixed; top: 0px; left: 0px;"
>
x
</span>
</div>
<div
class="rounded-lg border border-border p-6 space-y-4"
>
<div
class="flex items-center gap-2 text-sm font-medium text-primary"
>
<svg
aria-hidden="true"
class="lucide lucide-clipboard-list h-4 w-4"
fill="none"
height="24"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<rect
height="4"
rx="1"
ry="1"
width="8"
x="8"
y="2"
/>
<path
d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"
/>
<path
d="M12 11h4"
/>
<path
d="M12 16h4"
/>
<path
d="M8 11h.01"
/>
<path
d="M8 16h.01"
/>
</svg>
Practice
</div>
<details
class="rounded-lg border border-border bg-muted/20 p-4"
>
<summary
class="cursor-pointer text-sm font-medium text-muted-foreground"
>
Review the worked example
</summary>
<div
class="mt-3 space-y-2"
>
<div
class="text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_em]:italic [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-sm [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:list-decimal [&_ol]:pl-6 [&_li]:my-1 [&_a]:text-primary [&_a]:underline"
>
<p>
Example: A candle flame needs all three elements.
</p>
</div>
</div>
</details>
<div
class="space-y-6"
>
<p
class="text-lg font-medium text-foreground"
>
Which element is part of the fire triangle?
</p>
<div
class="space-y-3"
role="radiogroup"
>
<button
aria-checked="true"
class="w-full rounded-lg border-2 p-4 text-left text-sm transition-colors border-primary bg-primary/5 cursor-pointer hover:border-primary/50"
role="radio"
|
|
src/__tests__/components/lesson-flow.test.tsx > LessonFlow > advances to next KP after completing practice:
apps/web/src/__tests__/components/lesson-flow.test.tsx#L140
TestingLibraryElementError: Unable to find an element with the text: Practice complete. This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.
Ignored nodes: comments, script, style
<body>
<div>
<div
class="space-y-6"
>
<div>
<h2
class="text-2xl font-bold text-foreground"
>
Fire Behavior
</h2>
<p
class="text-sm text-muted-foreground mt-1"
>
Knowledge Point
1
of
2
</p>
</div>
<div
aria-valuemax="100"
aria-valuemin="0"
aria-valuenow="50"
aria-valuetext="50%"
class="flex flex-wrap gap-3 h-2"
data-progressing=""
data-slot="progress"
role="progressbar"
>
<div
class="relative flex h-1 w-full items-center overflow-x-hidden rounded-full bg-muted"
data-progressing=""
data-slot="progress-track"
>
<div
class="h-full bg-primary transition-all"
data-progressing=""
data-slot="progress-indicator"
style="inset-inline-start: 0px; height: inherit; width: 50%;"
/>
</div>
<span
role="presentation"
style="clip-path: inset(50%); overflow: hidden; white-space: nowrap; border: 0px; padding: 0px; width: 1px; height: 1px; margin: -1px; position: fixed; top: 0px; left: 0px;"
>
x
</span>
</div>
<div
class="rounded-lg border border-border p-6 space-y-4"
>
<div
class="flex items-center gap-2 text-sm font-medium text-primary"
>
<svg
aria-hidden="true"
class="lucide lucide-clipboard-list h-4 w-4"
fill="none"
height="24"
stroke="currentColor"
stroke-linecap="round"
stroke-linejoin="round"
stroke-width="2"
viewBox="0 0 24 24"
width="24"
xmlns="http://www.w3.org/2000/svg"
>
<rect
height="4"
rx="1"
ry="1"
width="8"
x="8"
y="2"
/>
<path
d="M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2"
/>
<path
d="M12 11h4"
/>
<path
d="M12 16h4"
/>
<path
d="M8 11h.01"
/>
<path
d="M8 16h.01"
/>
</svg>
Practice
</div>
<details
class="rounded-lg border border-border bg-muted/20 p-4"
>
<summary
class="cursor-pointer text-sm font-medium text-muted-foreground"
>
Review the worked example
</summary>
<div
class="mt-3 space-y-2"
>
<div
class="text-foreground leading-relaxed space-y-3 [&_strong]:font-semibold [&_em]:italic [&_code]:rounded [&_code]:bg-muted [&_code]:px-1 [&_code]:py-0.5 [&_code]:text-sm [&_ul]:list-disc [&_ul]:pl-6 [&_ol]:list-decimal [&_ol]:pl-6 [&_li]:my-1 [&_a]:text-primary [&_a]:underline"
>
<p>
Example: A candle flame needs all three elements.
</p>
</div>
</div>
</details>
<div
class="space-y-6"
>
<p
class="text-lg font-medium text-foreground"
>
Which element is part of the fire triangle?
</p>
<div
class="space-y-3"
role="radiogroup"
>
<button
aria-checked="true"
class="w-full rounded-lg border-2 p-4 text-left text-sm transition-colors border-primary bg-primary/5 cursor-pointer hover:border-primary/50"
role="radio"
|