Expose default workflow model lane overrides directly in project settings. - load and persist default workflow model lane overrides from the active project workflow - add inline workflow lane status, reset, save, and advanced policy actions in project model settings - add CSS contract and modal coverage for the workflow model action row spacing and placement Files changed: .../dashboard/app/components/SettingsModal.css | 20 ++ .../components/__tests__/SettingsModal.test.tsx | 20 +- .../SettingsModal.workflow-model-lane-css.test.ts | 24 ++ .../settings/sections/ProjectModelsSection.tsx | 245 ++++++++++++++++++++- 4 files changed, 298 insertions(+), 11 deletions(-) Fusion-Task-Id: FN-6027 Fusion-Task-Lineage: 981a5f01-f4b7-467e-9e2f-4ac8e4ed40fb
25 lines
1.3 KiB
TypeScript
25 lines
1.3 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { loadAllAppCss } from "../../test/cssFixture";
|
|
|
|
describe("SettingsModal workflow model lane CSS contract", () => {
|
|
it("gives the save workflow models action row dedicated tokenized spacing", async () => {
|
|
const css = await loadAllAppCss();
|
|
const block = css.match(/\.settings-model-lane-actions\s*\{[\s\S]*?\}/)?.[0] ?? "";
|
|
|
|
expect(block).toContain("display: flex");
|
|
expect(block).toContain("flex-wrap: wrap");
|
|
expect(block).toContain("gap: var(--space-sm)");
|
|
expect(block).toContain("padding: var(--space-md) var(--space-xl) var(--space-lg)");
|
|
expect(block).toContain("margin-block: var(--space-sm) var(--space-lg)");
|
|
expect(block).toContain("border-bottom: var(--btn-border-width) solid var(--border)");
|
|
expect(block).not.toMatch(/#[0-9a-fA-F]{3,8}\b|rgba?\(/);
|
|
expect(block).not.toMatch(/(?<!-)\b(?:[1-9]\d*)px\b/);
|
|
});
|
|
|
|
it("keeps the workflow model action row usable at the mobile breakpoint", async () => {
|
|
const css = await loadAllAppCss();
|
|
|
|
expect(css).toMatch(/@media[^{}]*\(max-width:\s*768px\)[\s\S]*?\.settings-model-lane-actions\s*\{[^}]*align-items\s*:\s*stretch;[^}]*flex-direction\s*:\s*column;[^}]*padding-inline\s*:\s*calc\(var\(--space-md\) \+ var\(--space-xs\) \/ 2\);[^}]*\}/);
|
|
});
|
|
});
|