@cainiaofe/cn-ui-m
Version:
74 lines (73 loc) • 3.14 kB
JavaScript
import React from 'react';
import { CnDialog } from '../index';
import { render } from '@testing-library/react';
describe('CnDialog', function () {
it('should render CnDialog component', function () {
var getByText = render(React.createElement(CnDialog, { visible: true, title: "Test Dialog", content: "This is a test dialog" })).getByText;
expect(getByText('Test Dialog')).toBeInTheDocument();
expect(getByText('This is a test dialog')).toBeInTheDocument();
});
it('should show dialog', function () {
var dialogProps = {
title: 'Test Dialog',
content: 'This is a test dialog',
};
var dialogInstance = CnDialog.show(dialogProps);
expect(dialogInstance).toBeDefined();
});
it('should hide dialog', function () {
var dialogInstance = CnDialog.hide();
expect(dialogInstance).toBeUndefined();
});
it('should show alert dialog', function () {
var dialogProps = {
title: 'Alert Dialog',
content: 'This is an alert dialog',
};
var dialogInstance = CnDialog.alert(dialogProps);
expect(dialogInstance).toBeDefined();
});
it('should show success dialog', function () {
var dialogProps = {
title: 'Success Dialog',
content: 'This is a success dialog',
};
var dialogInstance = CnDialog.success(dialogProps);
expect(dialogInstance).toBeDefined();
});
// Positive test case: Confirm dialog with custom buttons
it('should show confirm dialog with custom buttons', function () {
var dialogProps = {
title: 'Confirm Dialog',
content: 'Are you sure?',
buttons: [
{ text: 'Yes', onClick: jest.fn() },
{ text: 'No', onClick: jest.fn() },
],
};
var dialogInstance = CnDialog.confirm(dialogProps);
expect(dialogInstance).toBeDefined();
});
// Edge case: Empty content
it('should show notice dialog with empty content', function () {
var dialogProps = { title: 'Notice Dialog', content: '' };
var dialogInstance = CnDialog.notice(dialogProps);
expect(dialogInstance).toBeDefined();
});
// Corner case: Very long content
it('should show warning dialog with very long content', function () {
var longContent = 'a'.repeat(10000);
var dialogProps = { title: 'Warning Dialog', content: longContent };
var dialogInstance = CnDialog.warning(dialogProps);
expect(dialogInstance).toBeDefined();
});
// Scalability test case: Show multiple dialogs simultaneously
it('should show multiple dialogs simultaneously', function () {
var dialogProps1 = { title: 'Dialog 1', content: 'This is dialog 1' };
var dialogProps2 = { title: 'Dialog 2', content: 'This is dialog 2' };
var dialogInstance1 = CnDialog.show(dialogProps1);
var dialogInstance2 = CnDialog.show(dialogProps2);
expect(dialogInstance1).toBeDefined();
expect(dialogInstance2).toBeDefined();
});
});