- Introduced `.prettierrc.json` to enforce consistent code formatting across the project. - Updated unit and e2e test files to address formatting issues, improve readability, and ensure alignment with the new Prettier configuration.
65 lines
2.6 KiB
JavaScript
65 lines
2.6 KiB
JavaScript
import { readdirSync, readFileSync, statSync } from "node:fs";
|
|
import { join } from "node:path";
|
|
import { describe, expect, it } from "vitest";
|
|
|
|
const root = process.cwd();
|
|
const paginationModelsRoot = join(root, "src/components/displays/pagination/models");
|
|
const paginationGeneralSearchSource = readFileSync(
|
|
join(root, "src/components/displays/pagination/PaginationDisplayGeneralSearchReload.vue"),
|
|
"utf8"
|
|
);
|
|
const mainSource = readFileSync(join(root, "src/main.js"), "utf8");
|
|
const userOrdersPaginationSource = readFileSync(
|
|
join(root, "src/components/displays/pagination/models/UserDashboard/OrdersPagination.vue"),
|
|
"utf8"
|
|
);
|
|
|
|
const collectVueFiles = (dir) => {
|
|
const entries = readdirSync(dir);
|
|
return entries.flatMap((entry) => {
|
|
const fullPath = join(dir, entry);
|
|
const stats = statSync(fullPath);
|
|
if (stats.isDirectory()) {
|
|
return collectVueFiles(fullPath);
|
|
}
|
|
if (entry.endsWith(".vue")) {
|
|
return [fullPath];
|
|
}
|
|
return [];
|
|
});
|
|
};
|
|
|
|
describe("table standards contract", () => {
|
|
it("keeps pagination model templates free from legacy raw <table> markup", () => {
|
|
const vueFiles = collectVueFiles(paginationModelsRoot);
|
|
const filesWithRawTableMarkup = vueFiles.filter((filePath) => {
|
|
const source = readFileSync(filePath, "utf8");
|
|
return source.includes("<table");
|
|
});
|
|
|
|
expect(filesWithRawTableMarkup).toEqual([]);
|
|
});
|
|
|
|
it("exposes a shared excel export action in the opdater dropdown controls", () => {
|
|
expect(paginationGeneralSearchSource).toContain("pagination.download_excel");
|
|
expect(paginationGeneralSearchSource).toContain("handleExportExcel");
|
|
expect(paginationGeneralSearchSource).toContain("exportToExcel");
|
|
expect(paginationGeneralSearchSource).toContain("toggleActionDropdown");
|
|
expect(paginationGeneralSearchSource).toContain("action-dropdown-main");
|
|
expect(paginationGeneralSearchSource).toContain("action-dropdown-toggle");
|
|
});
|
|
|
|
it("initializes automatic visible-row export hooks for legacy non-paginated tables", () => {
|
|
expect(mainSource).toContain("initializeAutoTableExports");
|
|
expect(mainSource).toContain("initializeAutoTableExports()");
|
|
});
|
|
|
|
it("uses excel export for historical washes instead of legacy csv download", () => {
|
|
expect(userOrdersPaginationSource).toContain("setExportTransform");
|
|
expect(userOrdersPaginationSource).toContain("clearExportTransform");
|
|
expect(userOrdersPaginationSource).not.toContain("exportCsvFile");
|
|
expect(userOrdersPaginationSource).not.toContain("orders.csv");
|
|
expect(userOrdersPaginationSource).not.toContain('@click="downloadExcel"');
|
|
});
|
|
});
|