feat(FN-1978): rename schedule actions to Automation and polish mobile layout

- Rename Schedules/Scheduled Tasks labels to Automation in header and mobile navigation actions
- Update desktop, tablet, and mobile header tests to assert the new Automation wording and behavior
- Improve mobile schedule and routine modal spacing with token-based padding/margin updates for cards, forms, and empty states
- Refresh the UX audit report to reference the Automation label in the header control inventory
This commit is contained in:
Fusion
2026-04-17 16:10:09 -07:00
committed by gsxdsm
parent cdcaf027e4
commit 7b38fa623d
7 changed files with 77 additions and 27 deletions

View File

@@ -1,26 +1,30 @@
import { describe, expect, it } from "vitest";
import { readFileSync, readdirSync, statSync } from "node:fs";
import { readFileSync, readdirSync } from "node:fs";
import { join, relative } from "node:path";
const workspaceRoot = join(__dirname, "..", "..", "..", "..");
function listSourceFiles(dir: string): string[] {
const entries = readdirSync(dir);
const entries = readdirSync(dir, { withFileTypes: true });
const files: string[] = [];
for (const entry of entries) {
const path = join(dir, entry);
const stat = statSync(path);
const path = join(dir, entry.name);
if (stat.isDirectory()) {
if (entry === "__tests__" || entry === "dist" || entry === "node_modules") {
if (entry.isDirectory()) {
if (
entry.name === "__tests__" ||
entry.name === "dist" ||
entry.name === "node_modules" ||
entry.name.startsWith(".")
) {
continue;
}
files.push(...listSourceFiles(path));
continue;
}
if (!/\.(ts|tsx)$/.test(entry) || /\.test\.(ts|tsx)$/.test(entry)) {
if (!/\.(ts|tsx)$/.test(entry.name) || /\.test\.(ts|tsx)$/.test(entry.name)) {
continue;
}
@@ -40,13 +44,18 @@ describe("architecture hot-path contracts", () => {
];
const bareListTaskCalls: string[] = [];
const bareListTasksPattern = /\.\s*listTasks\(\)/;
for (const root of sourceRoots) {
for (const file of listSourceFiles(join(workspaceRoot, root))) {
const content = readFileSync(file, "utf-8");
const lines = content.split("\n");
if (!bareListTasksPattern.test(content)) {
continue;
}
const lines = content.split("\n");
lines.forEach((line, index) => {
if (/\.\s*listTasks\(\)/.test(line)) {
if (bareListTasksPattern.test(line)) {
bareListTaskCalls.push(`${relative(workspaceRoot, file)}:${index + 1}`);
}
});