Fix the clipped answer field + the doubled AI note; ordering only where it fits
UI bug from a phone screenshot (short answer, Czech): - The textarea was flex-shrunk inside the slide's column (58px instead of ~82px), clipping the typed answer mid-line. Every direct child of a study/review/guide slide is now shrink-0 and the slide scrolls instead. - Two AI disclaimers were visible at once: the activity's own after the grading box plus the feed's row. The activity-level copy is gone; the feed/guide row (which also carries the report control) is the single one. The phase-2 check now asserts the note sits below the graded feedback. - The mobile suite's backdrop-tap check is deterministic too (the spring animation made the measured box mid-flight). Ordering activities: the deck prompt now allows them only when the notes hold a real sequence (chronological events, process stages, procedure steps, a lifecycle, a ranked scale) and points at matching / multiple choice / true-false when they do not - "sort these" was landing on decks with no order at all. Version 0.2.4, SW -> freezmo-v57.
This commit is contained in:
parent
f4026d3e55
commit
9b0354fb11
9 changed files with 34 additions and 15 deletions
|
|
@ -142,13 +142,15 @@ const browser = await launchBrowser();
|
|||
await page.getByRole("button", { name: "Submit answer" }).click();
|
||||
await page.waitForTimeout(800);
|
||||
check("grading: AI feedback rendered", await page.getByText("Nice — scattering does the work.").isVisible());
|
||||
// Scope it to the placement: the disclaimer directly under the graded box.
|
||||
// The disclaimer sits below the graded feedback (the feed's row carries it;
|
||||
// the activity no longer duplicates it right after the grading box).
|
||||
const feedbackDisclaimer = await page.evaluate(() => {
|
||||
const feedback = [...document.querySelectorAll("p")].find((el) => el.textContent.includes("Nice — scattering does the work."));
|
||||
const next = feedback?.closest("div")?.nextElementSibling;
|
||||
return Boolean(next?.textContent?.includes("Freezmo uses AI"));
|
||||
const note = [...document.querySelectorAll("p")].find((el) => el.textContent.includes("Freezmo uses AI"));
|
||||
if (!feedback || !note) return false;
|
||||
return note.getBoundingClientRect().top > feedback.getBoundingClientRect().bottom - 4;
|
||||
});
|
||||
check("grading: AI disclaimer under the feedback", feedbackDisclaimer);
|
||||
check("grading: AI disclaimer below the feedback", feedbackDisclaimer);
|
||||
await context.close();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue