@cainiaofe/cn-ui-m
Version:
117 lines (116 loc) • 5.68 kB
JavaScript
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');
});
});