Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 20 additions & 5 deletions src/components/admin/modals/banusermodal.test.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
import BanUserModal from './banusermodal';

describe('BanUserModal', () => {
test('module can be imported', () => {
expect(BanUserModal).toBeDefined();
});
// Mock antd components
jest.mock('antd', () => ({
...jest.requireActual('antd'),
message: {
success: jest.fn(),
error: jest.fn(),
},
}));

// Mock antd icons
jest.mock('@ant-design/icons', () => ({
ExclamationCircleOutlined: () => <div data-testid="exclamation-icon" />,
UserDeleteOutlined: () => <div data-testid="user-delete-icon" />,
}));

describe('BanUserModal', () => {
test('is a valid React component', () => {
expect(typeof BanUserModal).toBe('function');
});

test('component is exported correctly', () => {
test('component can be imported', () => {
expect(BanUserModal).toBeDefined();
});

test('component is not null', () => {
expect(BanUserModal).not.toBeNull();
});
});
19 changes: 14 additions & 5 deletions src/components/admin/modals/confirmdialog.test.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,24 @@
import ConfirmDialog from './confirmdialog';

describe('ConfirmDialog', () => {
test('module can be imported', () => {
expect(ConfirmDialog).toBeDefined();
});
// Mock antd icons
jest.mock('@ant-design/icons', () => ({
ExclamationCircleOutlined: () => <div data-testid="exclamation-icon" />,
QuestionCircleOutlined: () => <div data-testid="question-icon" />,
InfoCircleOutlined: () => <div data-testid="info-icon" />,
CheckCircleOutlined: () => <div data-testid="check-icon" />,
CloseCircleOutlined: () => <div data-testid="close-icon" />,
}));

describe('ConfirmDialog', () => {
test('is a valid React component', () => {
expect(typeof ConfirmDialog).toBe('function');
});

test('component is exported correctly', () => {
test('component can be imported', () => {
expect(ConfirmDialog).toBeDefined();
});

test('component is not null', () => {
expect(ConfirmDialog).not.toBeNull();
});
});
39 changes: 34 additions & 5 deletions src/components/admin/modals/editmodal.test.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,44 @@
import EditModal from './editmodal';

describe('EditModal', () => {
test('module can be imported', () => {
expect(EditModal).toBeDefined();
});
// Mock antd components
jest.mock('antd', () => ({
...jest.requireActual('antd'),
message: {
success: jest.fn(),
error: jest.fn(),
},
}));

// Mock antd icons
jest.mock('@ant-design/icons', () => ({
EditOutlined: () => <div data-testid="edit-icon" />,
UploadOutlined: () => <div data-testid="upload-icon" />,
SaveOutlined: () => <div data-testid="save-icon" />,
ReloadOutlined: () => <div data-testid="reload-icon" />,
}));

// Mock dayjs
jest.mock('dayjs', () => {
const originalDayjs = jest.requireActual('dayjs');
return {
...originalDayjs,
default: jest.fn(() => ({
format: jest.fn(() => '2023-01-01'),
isValid: jest.fn(() => true),
})),
};
});

describe('EditModal', () => {
test('is a valid React component', () => {
expect(typeof EditModal).toBe('function');
});

test('component is exported correctly', () => {
test('component can be imported', () => {
expect(EditModal).toBeDefined();
});

test('component is not null', () => {
expect(EditModal).not.toBeNull();
});
});
64 changes: 61 additions & 3 deletions src/components/admin/modals/index.test.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,63 @@
describe('Modals Index', () => {
test('modals index exports', () => {
expect(true).toBe(true);
import {
EditModal,
DeleteConfirm,
ConfirmDialog,
SuspendUserModal,
BanUserModal,
ViewModal,
ReportActionModal,
} from './index';

describe('Modal Components Index', () => {
test('exports EditModal', () => {
expect(EditModal).toBeDefined();
expect(typeof EditModal).toBe('function');
});

test('exports DeleteConfirm', () => {
expect(DeleteConfirm).toBeDefined();
expect(typeof DeleteConfirm).toBe('function');
});

test('exports ConfirmDialog', () => {
expect(ConfirmDialog).toBeDefined();
expect(typeof ConfirmDialog).toBe('function');
});

test('exports SuspendUserModal', () => {
expect(SuspendUserModal).toBeDefined();
expect(typeof SuspendUserModal).toBe('function');
});

test('exports BanUserModal', () => {
expect(BanUserModal).toBeDefined();
expect(typeof BanUserModal).toBe('function');
});

test('exports ViewModal', () => {
expect(ViewModal).toBeDefined();
expect(typeof ViewModal).toBe('function');
});

test('exports ReportActionModal', () => {
expect(ReportActionModal).toBeDefined();
expect(typeof ReportActionModal).toBe('function');
});

test('all exports are React components', () => {
const components = [
EditModal,
DeleteConfirm,
ConfirmDialog,
SuspendUserModal,
BanUserModal,
ViewModal,
ReportActionModal,
];

components.forEach((component) => {
expect(component).toBeDefined();
expect(typeof component).toBe('function');
});
});
});
28 changes: 23 additions & 5 deletions src/components/admin/modals/reportactionmodal.test.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,33 @@
import ReportActionModal from './reportactionmodal';

describe('ReportActionModal', () => {
test('module can be imported', () => {
expect(ReportActionModal).toBeDefined();
});
// Mock antd components
jest.mock('antd', () => ({
...jest.requireActual('antd'),
message: {
success: jest.fn(),
error: jest.fn(),
},
}));

// Mock antd icons
jest.mock('@ant-design/icons', () => ({
FlagOutlined: () => <div data-testid="flag-icon" />,
UserOutlined: () => <div data-testid="user-icon" />,
CloseOutlined: () => <div data-testid="close-icon" />,
ExclamationCircleOutlined: () => <div data-testid="exclamation-icon" />,
EyeOutlined: () => <div data-testid="eye-icon" />,
}));

describe('ReportActionModal', () => {
test('is a valid React component', () => {
expect(typeof ReportActionModal).toBe('function');
});

test('component is exported correctly', () => {
test('component can be imported', () => {
expect(ReportActionModal).toBeDefined();
});

test('component is not null', () => {
expect(ReportActionModal).not.toBeNull();
});
});
25 changes: 20 additions & 5 deletions src/components/admin/modals/suspendusermodal.test.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,30 @@
import SuspendUserModal from './suspendusermodal';

describe('SuspendUserModal', () => {
test('module can be imported', () => {
expect(SuspendUserModal).toBeDefined();
});
// Mock antd components
jest.mock('antd', () => ({
...jest.requireActual('antd'),
message: {
success: jest.fn(),
error: jest.fn(),
},
}));

// Mock antd icons
jest.mock('@ant-design/icons', () => ({
ExclamationCircleOutlined: () => <div data-testid="exclamation-icon" />,
ClockCircleOutlined: () => <div data-testid="clock-icon" />,
}));

describe('SuspendUserModal', () => {
test('is a valid React component', () => {
expect(typeof SuspendUserModal).toBe('function');
});

test('component is exported correctly', () => {
test('component can be imported', () => {
expect(SuspendUserModal).toBeDefined();
});

test('component is not null', () => {
expect(SuspendUserModal).not.toBeNull();
});
});
38 changes: 33 additions & 5 deletions src/components/admin/modals/viewmodal.test.jsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,43 @@
import ViewModal from './viewmodal';

describe('ViewModal', () => {
test('module can be imported', () => {
expect(ViewModal).toBeDefined();
});
// Mock antd components
jest.mock('antd', () => ({
...jest.requireActual('antd'),
Grid: {
useBreakpoint: jest.fn(() => ({ md: true })),
},
}));

// Mock antd icons
jest.mock('@ant-design/icons', () => ({
EyeOutlined: () => <div data-testid="eye-icon" />,
UserOutlined: () => <div data-testid="user-icon" />,
CalendarOutlined: () => <div data-testid="calendar-icon" />,
InfoCircleOutlined: () => <div data-testid="info-icon" />,
}));

// Mock dayjs
jest.mock('dayjs', () => {
const originalDayjs = jest.requireActual('dayjs');
return {
...originalDayjs,
default: jest.fn(() => ({
format: jest.fn(() => '2023-01-01 12:00:00'),
isValid: jest.fn(() => true),
})),
};
});

describe('ViewModal', () => {
test('is a valid React component', () => {
expect(typeof ViewModal).toBe('function');
});

test('component is exported correctly', () => {
test('component can be imported', () => {
expect(ViewModal).toBeDefined();
});

test('component is not null', () => {
expect(ViewModal).not.toBeNull();
});
});
Loading
Loading