feat(web): accueil et profil — allègement du hero (textes descriptifs retirés), grilles de livres pleine largeur à 5 colonnes (auto-fit sans max-width), liste des bibliothèques scrollable (3 lignes visibles, partagée avec .continue-grid), et écran de profil clarifié (avatar, bloc identité, actions Modifier/Sortir — évolution #48)
This commit is contained in:
@ -4,14 +4,13 @@ import { describe, expect, it } from "vitest";
|
||||
describe("home progress list layout", () => {
|
||||
it("keeps the continue reading list scrollable after three visible books", () => {
|
||||
const styles = readFileSync(new URL("../styles/app.css", import.meta.url), "utf8");
|
||||
const continueGrid = styles.match(/\.continue-grid\s*\{[^}]+\}/)?.[0] ?? "";
|
||||
const continueTile = styles.match(/\.continue-tile\s*\{[^}]+\}/)?.[0] ?? "";
|
||||
|
||||
expect(continueGrid).toContain("--continue-visible-rows: 3");
|
||||
expect(continueGrid).toContain("--continue-tile-block-size: 112px");
|
||||
expect(continueGrid).toContain("max-height: calc((var(--continue-tile-block-size) * var(--continue-visible-rows)) + (10px * (var(--continue-visible-rows) - 1)))");
|
||||
expect(continueGrid).toContain("overflow-y: auto");
|
||||
expect(continueGrid).toContain("scrollbar-gutter: stable");
|
||||
expect(styles).toContain(".continue-grid,\n.library-list {\n --continue-visible-rows: 3;");
|
||||
expect(styles).toContain("--continue-tile-block-size: 112px");
|
||||
expect(styles).toContain("max-height: calc((var(--continue-tile-block-size) * var(--continue-visible-rows)) + (10px * (var(--continue-visible-rows) - 1)))");
|
||||
expect(styles).toContain("overflow-y: auto");
|
||||
expect(styles).toContain("scrollbar-gutter: stable");
|
||||
expect(continueTile).toContain("block-size: var(--continue-tile-block-size)");
|
||||
expect(continueTile).toContain("overflow: hidden");
|
||||
});
|
||||
@ -33,6 +32,8 @@ describe("home progress list layout", () => {
|
||||
expect(source).not.toContain("book.language");
|
||||
expect(source).not.toContain("API absente ou incomplete");
|
||||
expect(source).not.toContain("specimens de demonstration actifs");
|
||||
expect(source).not.toContain("Catalogue branche sur le serveur local");
|
||||
expect(source).not.toContain("Bibliotheque personnelle");
|
||||
});
|
||||
|
||||
it("keeps visible book grids capped to five columns", () => {
|
||||
@ -40,7 +41,22 @@ describe("home progress list layout", () => {
|
||||
const bookGrid = styles.match(/\.book-grid\s*\{[^}]+\}/)?.[0] ?? "";
|
||||
const homeBookGrid = styles.match(/\.home-book-grid\s*\{[^}]+\}/)?.[0] ?? "";
|
||||
|
||||
expect(bookGrid).toContain("max-width: calc((var(--book-grid-column-min) * 5) + (var(--book-grid-gap) * 4))");
|
||||
expect(homeBookGrid).toContain("max-width: calc((var(--book-grid-column-min) * 5) + (var(--book-grid-gap) * 4))");
|
||||
expect(bookGrid).toContain("grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--book-grid-column-min), calc((100% - (var(--book-grid-gap) * 4)) / 5))), 1fr))");
|
||||
expect(homeBookGrid).toContain("grid-template-columns: repeat(auto-fit, minmax(min(100%, max(var(--book-grid-column-min), calc((100% - (var(--book-grid-gap) * 4)) / 5))), 1fr))");
|
||||
expect(bookGrid).toContain("width: 100%");
|
||||
expect(homeBookGrid).toContain("width: 100%");
|
||||
expect(bookGrid).not.toContain("max-width");
|
||||
expect(homeBookGrid).not.toContain("max-width");
|
||||
});
|
||||
|
||||
it("keeps the library list capped like continue reading", () => {
|
||||
const styles = readFileSync(new URL("../styles/app.css", import.meta.url), "utf8");
|
||||
const libraryButton = styles.match(/\.library-list button\s*\{[^}]+\}/)?.[0] ?? "";
|
||||
|
||||
expect(styles).toContain(".continue-grid,\n.library-list {\n --continue-visible-rows: 3;");
|
||||
expect(styles).toContain("height: calc((var(--continue-tile-block-size) * var(--continue-visible-rows)) + (10px * (var(--continue-visible-rows) - 1)))");
|
||||
expect(styles).toContain("max-height: calc((var(--continue-tile-block-size) * var(--continue-visible-rows)) + (10px * (var(--continue-visible-rows) - 1)))");
|
||||
expect(libraryButton).toContain("block-size: var(--continue-tile-block-size)");
|
||||
expect(libraryButton).toContain("overflow: hidden");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user