78 lines
4.1 KiB
JavaScript
78 lines
4.1 KiB
JavaScript
// Rôle : vérifie les conventions statiques des styles Sass.
|
|
import { readFile } from "node:fs/promises";
|
|
import { test } from "node:test";
|
|
import assert from "node:assert/strict";
|
|
|
|
test("style entrypoint and theme layers are wired", async () => {
|
|
const styles = await readFile("website/src/styles/main.scss", "utf8");
|
|
const styleNebula = await readFile("website/src/styles/_nebula.scss", "utf8");
|
|
const styleTokens = await readFile("website/src/styles/_tokens.scss", "utf8");
|
|
const styleBase = await readFile("website/src/styles/_base.scss", "utf8");
|
|
const styleMixins = await readFile("website/src/styles/_mixins.scss", "utf8");
|
|
const styleShell = await readFile("website/src/styles/_shell.scss", "utf8");
|
|
const styleCards = await readFile("website/src/styles/_cards.scss", "utf8");
|
|
const styleHome = await readFile("website/src/styles/_home.scss", "utf8");
|
|
const styleToolboxes = await readFile("website/src/styles/_toolboxes.scss", "utf8");
|
|
const styleOverlays = await readFile("website/src/styles/_overlays.scss", "utf8");
|
|
const styleIcons = await readFile("website/src/styles/_icons.scss", "utf8");
|
|
const styleGames = await readFile("website/src/styles/_games.scss", "utf8");
|
|
const styleMhwilds = await readFile("website/src/styles/_mhwilds.scss", "utf8");
|
|
const styleResponsive = await readFile("website/src/styles/_responsive.scss", "utf8");
|
|
|
|
assert.match(styles, /@use "tokens"/);
|
|
assert.match(styles, /@use "nebula"/);
|
|
assert.match(styles, /@use "toolboxes"/);
|
|
assert.match(styles, /@use "mhwilds"/);
|
|
assert.match(styles, /@use "diablo4"/);
|
|
assert.match(styleTokens, /--gradient-brand/);
|
|
assert.match(styleBase, /:is\(/);
|
|
assert.match(styleBase, /\.card-icon-button/);
|
|
assert.match(styleBase, /\.drawer-action-button/);
|
|
assert.match(styleBase, /\.import-icon-button/);
|
|
assert.match(styleBase, /themed-scrollbar/);
|
|
assert.match(styleBase, /body\.is-modal-open/);
|
|
assert.match(styleNebula, /@function star-field/);
|
|
assert.match(styleNebula, /body::after/);
|
|
assert.match(styleHome, /\.dialogue-line i/);
|
|
assert.match(styleHome, /font-style: italic/);
|
|
assert.match(styleHome, /\.about-page/);
|
|
assert.match(styleHome, /\.nebula-panel/);
|
|
assert.match(styleHome, /\.about-story-section/);
|
|
assert.match(styleHome, /\.about-tools-list/);
|
|
assert.match(styleHome, /\.about-tool-item \.module-icon/);
|
|
assert.match(styleMixins, /@mixin gold-panel-frame/);
|
|
assert.match(styleShell, /\.sidebar-about-link/);
|
|
assert.match(styleToolboxes, /\.module-icon-abacus/);
|
|
assert.match(styleToolboxes, /\.module-icon-calculator/);
|
|
assert.match(styleToolboxes, /\.calculator-module/);
|
|
assert.match(styleToolboxes, /\.toolbox-icon-picker/);
|
|
assert.match(styleToolboxes, /\.toolbox-game-icon/);
|
|
assert.match(styleToolboxes, /\.toolbox-hero-link/);
|
|
assert.match(styleToolboxes, /\.toolbox-actions-row/);
|
|
assert.match(styleToolboxes, /\.text-import-actions/);
|
|
assert.match(styleToolboxes, /\.text-import-modal-dialog/);
|
|
assert.doesNotMatch(styleToolboxes, /lecture seule/);
|
|
assert.match(styleIcons, /ui-icon-drag/);
|
|
assert.match(styleIcons, /ui-icon-dropdown/);
|
|
assert.match(styleIcons, /ui-icon-enter/);
|
|
assert.match(styleIcons, /ui-icon-calculator/);
|
|
assert.match(styleIcons, /ui-icon-scrollable/);
|
|
assert.match(styleIcons, /ui-icon-hide/);
|
|
assert.match(styleIcons, /ui-icon-eye-open/);
|
|
assert.match(styleIcons, /ui-icon-eye-closed/);
|
|
assert.match(styleIcons, /ui-icon-chevron-down/);
|
|
assert.match(styleIcons, /ui-icon-chevron-up/);
|
|
assert.match(styleIcons, /ui-icon-flip/);
|
|
assert.match(styleIcons, /ui-icon-add/);
|
|
assert.match(styleIcons, /ui-icon-map/);
|
|
assert.match(styleGames, /\.game-home-card/);
|
|
assert.match(styleGames, /\.game-layout/);
|
|
assert.match(styleGames, /\.game-grid/);
|
|
assert.match(styleGames, /\.filter-panel/);
|
|
assert.match(styleMhwilds, /\.mhwilds-card/);
|
|
assert.match(styleMhwilds, /\.mhwilds-flip-indicator/);
|
|
assert.doesNotMatch(styleMhwilds, /\.game-(home-card|layout|grid)/);
|
|
assert.match(styleCards, /compact-data-card/);
|
|
assert.match(styleOverlays, /overscroll-behavior: contain/);
|
|
assert.match(styleResponsive, /@media \(max-width: 760px\)/);
|
|
});
|