| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- /**
- * u-charts 库基础测试
- * Story 016.001 - 验证 u-charts 库可以正确导入
- *
- * 注意:由于原始 u-charts 库中存在一些变量重复声明的问题(非严格模式),
- * 在 Jest 严格环境下会报错。本测试仅验证基础导出功能。
- */
- // 简化测试 - 只验证配置导出
- describe('u-charts 库基础测试', () => {
- describe('配置导出验证', () => {
- it('应该正确导出配置对象', () => {
- const { config } = require('../src/lib/u-charts');
- expect(config).toBeDefined();
- expect(config.version).toBe('v2.5.0-20230101');
- expect(config.color).toBeDefined();
- expect(Array.isArray(config.color)).toBe(true);
- });
- it('配置应该包含必要的默认值', () => {
- const { config } = require('../src/lib/u-charts');
- expect(config.yAxisWidth).toBe(15);
- expect(config.xAxisHeight).toBe(22);
- expect(config.fontSize).toBe(13);
- expect(config.fontColor).toBe('#666666');
- });
- });
- describe('工具函数导出验证', () => {
- it('应该正确导出 util 工具对象', () => {
- const { util } = require('../src/lib/u-charts');
- expect(util).toBeDefined();
- expect(typeof util.toFixed).toBe('function');
- expect(typeof util.isFloat).toBe('function');
- });
- it('应该正确导出 assign 函数', () => {
- const { assign } = require('../src/lib/u-charts');
- expect(assign).toBeDefined();
- expect(typeof assign).toBe('function');
- });
- it('util.toFixed 应该正确格式化数字', () => {
- const { util } = require('../src/lib/u-charts');
- expect(util.toFixed(3.14159, 2)).toBe('3.14');
- expect(util.toFixed(10, 2)).toBe(10);
- });
- it('util.isFloat 应该正确判断浮点数', () => {
- const { util } = require('../src/lib/u-charts');
- expect(util.isFloat(3.14)).toBe(true);
- expect(util.isFloat(10)).toBe(false);
- });
- });
- describe('辅助函数导出验证', () => {
- it('应该正确导出辅助函数', () => {
- const uChartsModule = require('../src/lib/u-charts');
- expect(uChartsModule.hexToRgb).toBeDefined();
- expect(uChartsModule.findRange).toBeDefined();
- expect(uChartsModule.measureText).toBeDefined();
- expect(uChartsModule.dataCombine).toBeDefined();
- });
- it('hexToRgb 应该正确转换颜色', () => {
- const { hexToRgb } = require('../src/lib/u-charts');
- expect(hexToRgb('#FF0000', 1)).toBe('rgba(255,0,0,1)');
- expect(hexToRgb('#00FF00', 0.5)).toBe('rgba(0,255,0,0.5)');
- });
- it('findRange 应该正确查找范围', () => {
- const { findRange } = require('../src/lib/u-charts');
- expect(findRange(123, 'upper', 10)).toBe(130);
- expect(findRange(98, 'lower', 10)).toBe(90);
- });
- it('assign 应该正确合并对象', () => {
- const { assign } = require('../src/lib/u-charts');
- const target = { a: 1 };
- const source = { b: 2 };
- const result = assign(target, source);
- expect(result).toEqual({ a: 1, b: 2 });
- });
- });
- describe('类导出验证', () => {
- it('应该正确导出 uChartsEvent 类', () => {
- const { uChartsEvent } = require('../src/lib/u-charts');
- expect(uChartsEvent).toBeDefined();
- expect(typeof uChartsEvent).toBe('function');
- });
- it('应该能够实例化 uChartsEvent', () => {
- const { uChartsEvent } = require('../src/lib/u-charts');
- const event = new uChartsEvent();
- expect(event).toBeDefined();
- expect(event.events).toBeDefined();
- expect(event.events).toEqual({});
- });
- it('uChartsEvent 应该支持添加和触发事件监听器', () => {
- const { uChartsEvent } = require('../src/lib/u-charts');
- const event = new uChartsEvent();
- const mockListener = jest.fn();
- event.addEventListener('test', mockListener);
- expect(event.events.test).toHaveLength(1);
- event.trigger('test', 'arg1', 'arg2');
- expect(mockListener).toHaveBeenCalledWith('arg1', 'arg2');
- });
- it('应该正确导出 uCharts 类', () => {
- const { uCharts } = require('../src/lib/u-charts');
- expect(uCharts).toBeDefined();
- expect(typeof uCharts).toBe('function');
- });
- });
- describe('主入口导出测试', () => {
- it('应该从主入口正确导出所有内容', () => {
- const index = require('../src/index');
- expect(index.uCharts).toBeDefined();
- expect(index.uChartsEvent).toBeDefined();
- expect(index.config).toBeDefined();
- expect(index.util).toBeDefined();
- });
- });
- });
|