flnxi-Wu/scripts/__tests__/premium-module-source.test.ts
2026-06-02 19:25:48 +08:00

38 lines
1.5 KiB
TypeScript

import fs from 'fs'
import path from 'path'
describe('premium module source packages', () => {
const moduleIds = [
'license-limits-core',
'custom-templates-core',
'intranet-penetration-core',
]
it('所有授权模块都应可作为独立模块镜像构建', () => {
for (const moduleId of moduleIds) {
const moduleDir = path.join(process.cwd(), 'premium-modules', moduleId)
const dockerfile = fs.readFileSync(path.join(moduleDir, 'Dockerfile'), 'utf8')
const server = fs.readFileSync(path.join(moduleDir, 'server.mjs'), 'utf8')
expect(fs.existsSync(path.join(moduleDir, 'VERSION.txt'))).toBe(true)
expect(fs.existsSync(path.join(moduleDir, 'package.json'))).toBe(true)
expect(dockerfile).toContain('HEALTHCHECK')
expect(dockerfile).toContain('EXPOSE 8787')
expect(server).toContain(`const moduleId = '${moduleId}'`)
expect(server).toContain("url.pathname === '/health'")
expect(server).not.toContain("status: 'success'")
}
})
it('内网穿透模块未接真实 provider 时必须明确返回未配置', () => {
const moduleDir = path.join(process.cwd(), 'premium-modules', 'intranet-penetration-core')
const server = fs.readFileSync(path.join(moduleDir, 'server.mjs'), 'utf8')
expect(server).toContain("status: 'provider_not_configured'")
expect(server).toContain("url.pathname === '/start'")
expect(server).toContain("url.pathname === '/status'")
expect(server).toContain("url.pathname === '/stop'")
expect(server).not.toContain("status: 'success'")
})
})