update at 2026-02-08 18:28:39
This commit is contained in:
60
scripts/check-miniprogram-core-test.js
Executable file
60
scripts/check-miniprogram-core-test.js
Executable file
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
const { wrapTextByChars } = require('../miniprogram/utils/core/text-layout')
|
||||
const { generateSvgFromFont } = require('../miniprogram/utils/core/svg-builder')
|
||||
const opentype = require('../frontend/node_modules/opentype.js/dist/opentype.js')
|
||||
|
||||
function findFirstFontFile(rootDir) {
|
||||
const entries = fs.readdirSync(rootDir, { withFileTypes: true })
|
||||
for (const entry of entries) {
|
||||
const fullPath = path.join(rootDir, entry.name)
|
||||
if (entry.isDirectory()) {
|
||||
const nested = findFirstFontFile(fullPath)
|
||||
if (nested) return nested
|
||||
continue
|
||||
}
|
||||
|
||||
if (/\.(ttf|otf)$/i.test(entry.name)) {
|
||||
return fullPath
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
function assert(condition, message) {
|
||||
if (!condition) {
|
||||
throw new Error(message)
|
||||
}
|
||||
}
|
||||
|
||||
function run() {
|
||||
console.log('开始执行小程序核心模块测试...')
|
||||
|
||||
const wrapped = wrapTextByChars('123456', 2)
|
||||
assert(wrapped === '12\n34\n56', 'wrapTextByChars 结果不符合预期')
|
||||
|
||||
const fontFile = findFirstFontFile(path.join(__dirname, '..', 'frontend', 'public', 'fonts'))
|
||||
assert(fontFile, '未找到可用字体文件')
|
||||
|
||||
const buffer = fs.readFileSync(fontFile)
|
||||
const font = opentype.parse(buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength))
|
||||
|
||||
const result = generateSvgFromFont({
|
||||
text: '星程字体转换',
|
||||
font,
|
||||
fontSize: 120,
|
||||
fillColor: '#000000',
|
||||
letterSpacing: 0,
|
||||
})
|
||||
|
||||
assert(typeof result.svg === 'string' && result.svg.includes('<svg'), 'SVG 内容无效')
|
||||
assert(result.svg.includes('<path'), 'SVG 未生成路径')
|
||||
assert(result.width > 0 && result.height > 0, 'SVG 尺寸计算无效')
|
||||
|
||||
console.log('小程序核心模块测试通过。')
|
||||
}
|
||||
|
||||
run()
|
||||
Reference in New Issue
Block a user