43 lines
1.4 KiB
JavaScript
43 lines
1.4 KiB
JavaScript
import assert from 'node:assert/strict'
|
|
import { access, readFile } from 'node:fs/promises'
|
|
import { createSpine38ImportOptions, prepareSpine38SkeletonJson } from '../connector/spine38-project.mjs'
|
|
import { createConversionWorkspace } from '../connector/spine-workspace.mjs'
|
|
|
|
const source = {
|
|
skeleton: { spine: '3.8', images: './images/', fps: 30 },
|
|
bones: [{ name: 'root' }],
|
|
slots: [],
|
|
skins: { default: {} },
|
|
animations: { animation: {} },
|
|
}
|
|
|
|
const prepared = JSON.parse(prepareSpine38SkeletonJson(source, 'images'))
|
|
assert.equal(prepared.skeleton.images, 'images')
|
|
assert.equal(source.skeleton.images, './images/')
|
|
|
|
const workspace = await createConversionWorkspace({
|
|
schemaVersion: 1,
|
|
projectName: 'Spine38PathTest',
|
|
spineVersion: '3.8',
|
|
skeletonJson: JSON.stringify(source),
|
|
images: [],
|
|
})
|
|
|
|
try {
|
|
const written = JSON.parse(await readFile(workspace.inputPath, 'utf8'))
|
|
assert.equal(written.skeleton.images, 'images')
|
|
await access(`${workspace.root}/images`)
|
|
|
|
const invocation = createSpine38ImportOptions({
|
|
workspaceRoot: workspace.root,
|
|
inputPath: workspace.inputPath,
|
|
outputPath: workspace.outputPath,
|
|
})
|
|
assert.equal(invocation.cwd, workspace.root)
|
|
assert.equal(invocation.inputPath, 'Spine38PathTest.json')
|
|
assert.equal(invocation.outputPath, 'Spine38PathTest.spine')
|
|
console.log('Spine 3.8 图片路径预处理与相对路径导入检查通过')
|
|
} finally {
|
|
await workspace.cleanup()
|
|
}
|