import React from 'react';
import { render } from '@testing-library/react';
/**
* 主题颜色系统集成测试
* 验证TCB Shop Demo的颜色类名在当前项目中可用
*/
describe('TCB Theme Colors Integration', () => {
test('语义化颜色类名应该可用', () => {
// 测试语义化文字颜色类
const textClasses = [
'text-primary',
'text-success',
'text-warn',
'text-danger'
];
textClasses.forEach(className => {
expect(() => {
const { container } = render(
测试文本
);
expect(container.firstChild).toHaveClass(className);
}).not.toThrow();
});
});
test('层级颜色类名应该可用', () => {
// 测试层级文字颜色类
const levelClasses = [
'text-title',
'text-normal',
'text-small',
'text-minor',
'text-border'
];
levelClasses.forEach(className => {
expect(() => {
const { container } = render(
测试文本
);
expect(container.firstChild).toHaveClass(className);
}).not.toThrow();
});
});
test('背景颜色类名应该可用', () => {
// 测试背景颜色类
const bgClasses = [
'bg-primary',
'bg-success',
'bg-warn',
'bg-danger'
];
bgClasses.forEach(className => {
expect(() => {
const { container } = render(
测试背景
);
expect(container.firstChild).toHaveClass(className);
}).not.toThrow();
});
});
test('按钮样式类名应该可用', () => {
// 测试按钮样式类
const btnClasses = [
'btn-primary',
'btn-success',
'btn-warn',
'btn-danger'
];
btnClasses.forEach(className => {
expect(() => {
const { container } = render(
);
expect(container.firstChild).toHaveClass(className);
}).not.toThrow();
});
});
test('边框颜色类名应该可用', () => {
// 测试边框颜色类
const borderClasses = [
'border-primary',
'border-success',
'border-warn',
'border-danger'
];
borderClasses.forEach(className => {
expect(() => {
const { container } = render(
测试边框
);
expect(container.firstChild).toHaveClass(className);
}).not.toThrow();
});
});
test('图标颜色类名应该可用', () => {
// 测试图标颜色类
const iconClasses = [
'icon-primary',
'icon-success',
'icon-warn',
'icon-danger'
];
iconClasses.forEach(className => {
expect(() => {
const { container } = render(
图标
);
expect(container.firstChild).toHaveClass(className);
}).not.toThrow();
});
});
test('状态指示器类名应该可用', () => {
// 测试状态指示器类
const statusClasses = [
'status-primary',
'status-success',
'status-warn',
'status-danger'
];
statusClasses.forEach(className => {
expect(() => {
const { container } = render(
状态
);
expect(container.firstChild).toHaveClass(className);
}).not.toThrow();
});
});
test('CSS自定义属性应该可用', () => {
// 验证CSS自定义属性已定义
// 注意:在测试环境中,CSS自定义属性可能无法通过getComputedStyle获取
// 我们验证CSS文件已正确导入,类名可用即可
const cssVars = [
'--tcb-primary-color',
'--tcb-primary-text-color',
'--td-input-placeholder-text-color',
'--td-input-text-color',
'--td-tab-bar-color',
'--td-tab-bar-active-color',
'--td-cascader-active-color',
'--td-switch-checked-color',
'--td-button-default-bg-color',
'--td-button-default-border-color',
'--td-checkbox-icon-checked-color'
];
// 验证CSS文件存在且已导入
expect(() => {
const { container } = render(
测试CSS变量
);
expect(container.firstChild).toHaveClass('text-primary', 'bg-primary');
}).not.toThrow();
});
});