UNPKG

@cainiaofe/cn-ui-m

Version:
117 lines (116 loc) 5.68 kB
import { __assign } from "tslib"; import { getFormattedValue, transformToEmployeeMap, getRenderEmployee, } from '../util'; // 请替换为真实文件路径 import $i18n from "../../../locales/i18n"; // 这里模拟 $i18n.getLang 函数 jest.mock('@/locales/i18n', function () { return ({ getLang: jest.fn(), init: jest.fn(), }); }); describe('getFormattedValue', function () { it('测试当输入为undefined时,输出应为undefined', function () { expect(getFormattedValue(undefined)).toBeUndefined(); }); it('测试当输入为字符串数组时,输出应为工号数组', function () { var result = getFormattedValue(['222839', '102912']); expect(result).toHaveLength(2); expect(result).toEqual(['222839', '102912']); }); it('测试当输入为字符串数组、并且useDetailValue为true时,输出应为对象数组并且元素应包含value属性', function () { var result = getFormattedValue(['222839', '102912'], true, true); expect(result).toHaveLength(2); expect(result).toEqual([{ value: '222839' }, { value: '102912' }]); }); it('测试当输入为单个对象时,输出应为数组并且元素应包含对象的所有属性', function () { var employee = { name: '新焰', value: '222839' }; var result = getFormattedValue(employee); expect(result).toHaveLength(1); expect(result[0]).toEqual({ name: '新焰', value: '222839' }); }); it('测试当 valuePaddingZero 为 true 时,工号应被填充为零', function () { var employees = [{ name: '梭梭', value: '88852' }]; var result = getFormattedValue(employees, true); expect(result).toEqual([{ name: '梭梭', value: '088852' }]); }); }); describe('transformToEmployeeMap', function () { it('应该返回一个空对象,当输入为空数组', function () { var result = transformToEmployeeMap([]); expect(result).toEqual({}); }); it('应该返回一个空对象,当输入全是无效工号的员工', function () { var input = [{ name: 'Alice' }, { name: 'Bob' }]; var result = transformToEmployeeMap(input); expect(result).toEqual({}); }); it('应该返回映射对象,当输入包含唯一工号的员工', function () { var input = [ { workNo: '001', name: 'Alice' }, { workNo: '002', name: 'Bob' }, ]; var result = transformToEmployeeMap(input); expect(result).toEqual({ '001': { workNo: '001', name: 'Alice' }, '002': { workNo: '002', name: 'Bob' }, }); }); }); describe('getRenderEmployee', function () { var employee = { label: '新焰', nickName: '新焰', name: '陈旭璇', value: '222839', }; var usEmployee = { label: 'xinyan', nickName: 'xinyan', name: 'CHEN, Xuxuan(Kayla)', value: '222839', }; it('应该在中文环境下返回 label 值', function () { $i18n.getLang.mockReturnValue('zh-CN'); var result = getRenderEmployee(employee); expect(result).toBe('新焰'); }); it('应该在中文环境下返回 nickName 值,当 label 不存在时', function () { $i18n.getLang.mockReturnValue('zh-CN'); var employeeWithoutLabel = __assign(__assign({}, employee), { label: undefined }); var result = getRenderEmployee(employeeWithoutLabel); expect(result).toBe('新焰'); }); it('应该在中文环境下返回 name 值,当 label 和 nickName 不存在时', function () { $i18n.getLang.mockReturnValue('zh-CN'); var employeeWithoutLabelAndNickName = __assign(__assign({}, employee), { label: undefined, nickName: undefined }); var result = getRenderEmployee(employeeWithoutLabelAndNickName); expect(result).toBe('陈旭璇'); }); it('应该在中文环境下返回 value 值,当 label, nickName 和 name 不存在时', function () { $i18n.getLang.mockReturnValue('zh-CN'); var employeeWithoutAll = __assign(__assign({}, usEmployee), { name: undefined, label: undefined, nickName: undefined }); var result = getRenderEmployee(employeeWithoutAll); expect(result).toBe('222839'); }); it('应该在非中文环境下返回 name 值', function () { $i18n.getLang.mockReturnValue('en-US'); var result = getRenderEmployee(usEmployee); expect(result).toBe('CHEN, Xuxuan(Kayla)'); }); it('应该在非中文环境下返回 label 值,当 name 不存在时', function () { $i18n.getLang.mockReturnValue('en-US'); var employeeWithoutName = __assign(__assign({}, usEmployee), { name: undefined }); var result = getRenderEmployee(employeeWithoutName); expect(result).toBe('xinyan'); }); it('应该在非中文环境下返回 nickName 值,当 name 和 label 不存在时', function () { $i18n.getLang.mockReturnValue('en-US'); var employeeWithoutNameAndLabel = __assign(__assign({}, usEmployee), { name: undefined, label: undefined }); var result = getRenderEmployee(employeeWithoutNameAndLabel); expect(result).toBe('xinyan'); }); it('应该在非中文环境下返回 value 值,当 name, label 和 nickName 不存在时', function () { $i18n.getLang.mockReturnValue('en-US'); var employeeWithoutAll = __assign(__assign({}, usEmployee), { name: undefined, label: undefined, nickName: undefined }); var result = getRenderEmployee(employeeWithoutAll); expect(result).toBe('222839'); }); });