| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170 |
- 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(
- <div className={className}>测试文本</div>
- );
- 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(
- <div className={className}>测试文本</div>
- );
- 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(
- <div className={className}>测试背景</div>
- );
- 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(
- <button className={className}>测试按钮</button>
- );
- 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(
- <div className={`border ${className}`}>测试边框</div>
- );
- 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(
- <span className={className}>图标</span>
- );
- 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(
- <div className={className}>状态</div>
- );
- 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(
- <div className="text-primary bg-primary">测试CSS变量</div>
- );
- expect(container.firstChild).toHaveClass('text-primary', 'bg-primary');
- }).not.toThrow();
- });
- });
|