Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ ones are marked like "v1.0.0-fork".

### Fixed

* **Selecting several words in the reader produced a term named after hashes**:
creating a multi-word term captured each word's `data_hex` identity token
instead of its text, so the term came out as e.g.
"e6967a5826fe441a 75e3090289e2955d" and the example sentence lost its
`{...}` markers. `data_hex` used to be a reversible hex encoding of the word,
which is why reading it once worked; it became a SHA-256 derived token in
3.2.0 (#237) and this call site was never updated.

* **The "edit term" button in the review table went nowhere** (#266): it pointed
at `edit_tword.php`, a filename that stopped being routed in v3, and opened it
in a frame the reader no longer renders. It now links to `/word/edit-term`,
Expand Down
17 changes: 13 additions & 4 deletions cypress/e2e/01-setup.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,19 @@ describe('Database Setup', () => {
it('should install demo database', () => {
cy.visit('/admin/install-demo');
cy.get('form').should('exist');
// Check the confirmation checkbox first (required to enable the install button)

// The checkbox is server-rendered, so it is clickable before Alpine has
// bound `x-model` to it — and a click that lands first is dropped
// silently. Alpine applying `:disabled="!confirmed"` to the install button
// is proof it has processed this tree, so gate on that before ticking.
cy.get('button[type="submit"], input[type="submit"]').should('be.disabled');
cy.get('input[type="checkbox"]').check();
// Now click the install button
cy.get('button[type="submit"], input[type="submit"]').click();

// Then let Cypress retry until the tick has propagated; it retries
// assertions but never retries the click itself.
cy.get('button[type="submit"], input[type="submit"]')
.should('not.be.disabled')
.click();
// Wait for install to complete and page to reload
cy.url().should('include', '/admin/install-demo');
// Should show success message or remain on page
Expand All @@ -23,7 +32,7 @@ describe('Database Setup', () => {
cy.visit('/languages');
// Check that the languages page loads and has content
// The page uses Alpine.js with card-based layout
cy.get('[x-data="languageList"], .language-card, .action-card').should('exist');
cy.get('[x-data="languageList"]').should('exist');
});

it('should have demo texts after install', () => {
Expand Down
Loading