Add .prettierrc.json and refactor test files for improved formatting consistency:
- 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.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// @vitest-environment jsdom
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { beforeEach, describe, expect, it, vi } from "vitest";
|
||||
|
||||
const mocks = vi.hoisted(() => ({
|
||||
setColumn: vi.fn(),
|
||||
@@ -8,14 +8,14 @@ const mocks = vi.hoisted(() => ({
|
||||
swalShowValidationMessage: vi.fn(),
|
||||
}));
|
||||
|
||||
vi.mock('sweetalert2', () => ({
|
||||
vi.mock("sweetalert2", () => ({
|
||||
default: {
|
||||
fire: mocks.swalFire,
|
||||
showValidationMessage: mocks.swalShowValidationMessage,
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock('@/i18n', () => ({
|
||||
vi.mock("@/i18n", () => ({
|
||||
default: {
|
||||
global: {
|
||||
t: (key) => key,
|
||||
@@ -23,12 +23,12 @@ vi.mock('@/i18n', () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock('@/components/session/token/SessionUser.vue', () => ({
|
||||
vi.mock("@/components/session/token/SessionUser.vue", () => ({
|
||||
SessionUser: {
|
||||
objects: {
|
||||
global: {
|
||||
parse: {
|
||||
boolean: (value) => value === true || value === 'true',
|
||||
boolean: (value) => value === true || value === "true",
|
||||
},
|
||||
},
|
||||
departments: {
|
||||
@@ -40,7 +40,7 @@ vi.mock('@/components/session/token/SessionUser.vue', () => ({
|
||||
},
|
||||
}));
|
||||
|
||||
vi.mock('@/components/session/token/SessionUser/Objects/ObjectsGlobal.vue', () => ({
|
||||
vi.mock("@/components/session/token/SessionUser/Objects/ObjectsGlobal.vue", () => ({
|
||||
ObjectsGlobal: {
|
||||
set: {
|
||||
column: mocks.setColumn,
|
||||
@@ -52,19 +52,19 @@ vi.mock('@/components/session/token/SessionUser/Objects/ObjectsGlobal.vue', () =
|
||||
get: { objects: vi.fn(), object: vi.fn() },
|
||||
delete: { object: vi.fn() },
|
||||
language: {
|
||||
save: 'Save',
|
||||
cancel: 'Cancel',
|
||||
field: () => 'Edit config',
|
||||
save: "Save",
|
||||
cancel: "Cancel",
|
||||
field: () => "Edit config",
|
||||
},
|
||||
},
|
||||
}));
|
||||
|
||||
import { DepartmentGates } from '@/components/session/token/SessionUser/Objects/DepartmentGates.vue';
|
||||
import { DepartmentGates } from "@/components/session/token/SessionUser/Objects/DepartmentGates.vue";
|
||||
|
||||
describe('DepartmentGates config edit modal', () => {
|
||||
describe("DepartmentGates config edit modal", () => {
|
||||
beforeEach(() => {
|
||||
document.body.innerHTML = '';
|
||||
Object.defineProperty(window, 'innerWidth', {
|
||||
document.body.innerHTML = "";
|
||||
Object.defineProperty(window, "innerWidth", {
|
||||
value: 1440,
|
||||
writable: true,
|
||||
configurable: true,
|
||||
@@ -75,16 +75,16 @@ describe('DepartmentGates config edit modal', () => {
|
||||
mocks.swalShowValidationMessage.mockReset();
|
||||
});
|
||||
|
||||
it('uses dedicated config modal and saves typed config values', async () => {
|
||||
it("uses dedicated config modal and saves typed config values", async () => {
|
||||
const onAfterSubmit = vi.fn();
|
||||
mocks.setColumn.mockResolvedValue({});
|
||||
mocks.swalFire.mockResolvedValue({});
|
||||
|
||||
await DepartmentGates.showEditObjectFieldForm(
|
||||
7,
|
||||
'config',
|
||||
"config",
|
||||
{
|
||||
phone_number: '+4530878410',
|
||||
phone_number: "+4530878410",
|
||||
call_duration_threshold: 30,
|
||||
},
|
||||
onAfterSubmit
|
||||
@@ -94,61 +94,57 @@ describe('DepartmentGates config edit modal', () => {
|
||||
expect(mocks.swalFire).toHaveBeenCalledTimes(1);
|
||||
|
||||
const modalOptions = mocks.swalFire.mock.calls[0][0];
|
||||
expect(modalOptions.width).toBe('1100px');
|
||||
expect(modalOptions.html).toContain('data-config-header-key');
|
||||
expect(modalOptions.html).toContain('data-config-header-type');
|
||||
expect(modalOptions.html).toContain('data-config-header-value');
|
||||
expect(modalOptions.width).toBe("1100px");
|
||||
expect(modalOptions.html).toContain("data-config-header-key");
|
||||
expect(modalOptions.html).toContain("data-config-header-type");
|
||||
expect(modalOptions.html).toContain("data-config-header-value");
|
||||
document.body.innerHTML = modalOptions.html;
|
||||
modalOptions.didOpen();
|
||||
|
||||
const rows = Array.from(document.querySelectorAll('[data-config-row]'));
|
||||
const thresholdRow = rows.find((row) => row.querySelector('[data-config-key]')?.value === 'call_duration_threshold');
|
||||
const rows = Array.from(document.querySelectorAll("[data-config-row]"));
|
||||
const thresholdRow = rows.find(
|
||||
(row) => row.querySelector("[data-config-key]")?.value === "call_duration_threshold"
|
||||
);
|
||||
expect(thresholdRow).toBeTruthy();
|
||||
thresholdRow.querySelector('[data-config-value]').value = '45';
|
||||
thresholdRow.querySelector("[data-config-value]").value = "45";
|
||||
|
||||
const addRowButton = document.querySelector('[data-config-add-row]');
|
||||
const addRowButton = document.querySelector("[data-config-add-row]");
|
||||
addRowButton.click();
|
||||
|
||||
const updatedRows = Array.from(document.querySelectorAll('[data-config-row]'));
|
||||
const updatedRows = Array.from(document.querySelectorAll("[data-config-row]"));
|
||||
const newRow = updatedRows[updatedRows.length - 1];
|
||||
newRow.querySelector('[data-config-key]').value = 'enabled';
|
||||
newRow.querySelector('[data-config-type]').value = 'boolean';
|
||||
newRow.querySelector('[data-config-type]').dispatchEvent(new Event('change', { bubbles: true }));
|
||||
newRow.querySelector('[data-config-value]').value = 'true';
|
||||
newRow.querySelector("[data-config-key]").value = "enabled";
|
||||
newRow.querySelector("[data-config-type]").value = "boolean";
|
||||
newRow.querySelector("[data-config-type]").dispatchEvent(new Event("change", { bubbles: true }));
|
||||
newRow.querySelector("[data-config-value]").value = "true";
|
||||
|
||||
await modalOptions.preConfirm();
|
||||
|
||||
expect(mocks.setColumn).toHaveBeenCalledWith('/department/gates', 7, 'config', {
|
||||
phone_number: '+4530878410',
|
||||
expect(mocks.setColumn).toHaveBeenCalledWith("/department/gates", 7, "config", {
|
||||
phone_number: "+4530878410",
|
||||
call_duration_threshold: 45,
|
||||
enabled: true,
|
||||
});
|
||||
expect(onAfterSubmit).toHaveBeenCalledTimes(1);
|
||||
});
|
||||
|
||||
it('falls back to generic editor for non-config columns', async () => {
|
||||
it("falls back to generic editor for non-config columns", async () => {
|
||||
const onAfterSubmit = vi.fn();
|
||||
|
||||
await DepartmentGates.showEditObjectFieldForm(3, 'name', 'Gate 1', onAfterSubmit);
|
||||
await DepartmentGates.showEditObjectFieldForm(3, "name", "Gate 1", onAfterSubmit);
|
||||
|
||||
expect(mocks.showEditObjectFieldForm).toHaveBeenCalledTimes(1);
|
||||
expect(mocks.showEditObjectFieldForm).toHaveBeenCalledWith(
|
||||
DepartmentGates,
|
||||
3,
|
||||
'name',
|
||||
'Gate 1',
|
||||
onAfterSubmit
|
||||
);
|
||||
expect(mocks.showEditObjectFieldForm).toHaveBeenCalledWith(DepartmentGates, 3, "name", "Gate 1", onAfterSubmit);
|
||||
expect(mocks.swalFire).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('uses a compact width on small screens', async () => {
|
||||
it("uses a compact width on small screens", async () => {
|
||||
window.innerWidth = 640;
|
||||
mocks.swalFire.mockResolvedValue({});
|
||||
|
||||
await DepartmentGates.showEditObjectFieldForm(10, 'config', { value: 'x' }, vi.fn());
|
||||
await DepartmentGates.showEditObjectFieldForm(10, "config", { value: "x" }, vi.fn());
|
||||
|
||||
const modalOptions = mocks.swalFire.mock.calls[0][0];
|
||||
expect(modalOptions.width).toBe('94vw');
|
||||
expect(modalOptions.width).toBe("94vw");
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user