mirror of
https://gitee.com/mirrors/AllinSSL.git
synced 2026-03-08 07:41:10 +08:00
【调整】微信公众号图标调整
This commit is contained in:
100
frontend/plugin/vite-plugin-i18n/__tests__/utils.extend.test.js
Normal file
100
frontend/plugin/vite-plugin-i18n/__tests__/utils.extend.test.js
Normal file
@@ -0,0 +1,100 @@
|
||||
import { Utils } from '../src/utils/index.js'
|
||||
|
||||
describe('Utils Extended Features', () => {
|
||||
describe('chunkArray', () => {
|
||||
it('应该正确分块数组', () => {
|
||||
const array = [1, 2, 3, 4, 5, 6, 7]
|
||||
const size = 3
|
||||
const chunks = Utils.chunkArray(array, size)
|
||||
|
||||
expect(chunks).toHaveLength(3)
|
||||
expect(chunks[0]).toEqual([1, 2, 3])
|
||||
expect(chunks[1]).toEqual([4, 5, 6])
|
||||
expect(chunks[2]).toEqual([7])
|
||||
})
|
||||
|
||||
it('处理空数组', () => {
|
||||
const chunks = Utils.chunkArray([], 2)
|
||||
expect(chunks).toHaveLength(0)
|
||||
})
|
||||
})
|
||||
|
||||
describe('delay', () => {
|
||||
it('应该延迟执行指定时间', async () => {
|
||||
const start = Date.now()
|
||||
await Utils.delay(100)
|
||||
const duration = Date.now() - start
|
||||
|
||||
expect(duration).toBeGreaterThanOrEqual(100)
|
||||
})
|
||||
})
|
||||
|
||||
describe('extractChineseTexts', () => {
|
||||
it('应该正确提取中文内容', () => {
|
||||
const content = `
|
||||
$t('你好世界')
|
||||
$t("测试文本")
|
||||
$t('Hello World')
|
||||
`
|
||||
const templateRegex = /\$t\(['"]([^'"]+)['"]\)/g
|
||||
|
||||
const texts = Utils.extractChineseTexts(content, templateRegex)
|
||||
expect(texts.size).toBe(2)
|
||||
expect(texts.has('你好世界')).toBe(true)
|
||||
expect(texts.has('测试文本')).toBe(true)
|
||||
expect(texts.has('Hello World')).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
describe('mergeTranslations', () => {
|
||||
it('应该正确合并翻译结果', () => {
|
||||
const target = {
|
||||
key1: 'old value 1',
|
||||
key2: 'old value 2',
|
||||
}
|
||||
const source = {
|
||||
key1: 'new value 1',
|
||||
key3: 'new value 3',
|
||||
}
|
||||
|
||||
const result = Utils.mergeTranslations(target, source)
|
||||
expect(result).toEqual({
|
||||
key1: 'new value 1',
|
||||
key2: 'old value 2',
|
||||
key3: 'new value 3',
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('isValidLanguageCode', () => {
|
||||
it('应该验证语言代码格式', () => {
|
||||
expect(Utils.isValidLanguageCode('zhCN')).toBe(true)
|
||||
expect(Utils.isValidLanguageCode('enUS')).toBe(true)
|
||||
expect(Utils.isValidLanguageCode('zh-CN')).toBe(false)
|
||||
expect(Utils.isValidLanguageCode('123')).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
describe('formatError', () => {
|
||||
it('应该正确格式化错误信息', () => {
|
||||
const error = new Error('测试错误')
|
||||
const formatted = Utils.formatError(error)
|
||||
|
||||
expect(formatted).toHaveProperty('message', '测试错误')
|
||||
expect(formatted).toHaveProperty('stack')
|
||||
expect(formatted).toHaveProperty('timestamp')
|
||||
expect(new Date(formatted.timestamp)).toBeInstanceOf(Date)
|
||||
})
|
||||
})
|
||||
|
||||
describe('generateId', () => {
|
||||
it('应该生成唯一的标识符', () => {
|
||||
const id1 = Utils.generateId()
|
||||
const id2 = Utils.generateId()
|
||||
|
||||
expect(id1).toMatch(/^translation_\d+$/)
|
||||
expect(id2).toMatch(/^translation_\d+$/)
|
||||
expect(id1).not.toBe(id2)
|
||||
})
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user