mirror of
https://github.com/Awuqing/BackupX.git
synced 2026-08-12 16:03:59 +08:00
支持受限网络、正向代理、私有 CA 与 SSH 堡垒机部署 Agent。 加固 Docker、systemd、Nginx、安装器、Release 校验与可信代理边界,并完善命令队列索引、前端安装向导及中英文运维文档。
57 lines
2.1 KiB
TypeScript
57 lines
2.1 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import { buildAgentDownloadCommand, buildAgentInstallCommand, buildEmbeddedAgentInstallCommand } from './installCommands'
|
|
|
|
describe('install command builders', () => {
|
|
it('adds script marker validation and fallback install path', () => {
|
|
const cmd = buildAgentInstallCommand('https://master.example.com/api/install/abc')
|
|
|
|
expect(cmd).toContain('BACKUPX_AGENT_INSTALL_V1')
|
|
expect(cmd).toContain("'https://master.example.com/api/install/abc'")
|
|
expect(cmd).toContain("'https://master.example.com/install/abc'")
|
|
expect(cmd).toContain('sh "$tmp"')
|
|
})
|
|
|
|
it('uses explicit fallback URL when provided', () => {
|
|
const cmd = buildAgentDownloadCommand(
|
|
'https://master.example.com/api/install/abc',
|
|
'https://master.example.com/install/abc',
|
|
)
|
|
|
|
expect(cmd).toContain('mktemp /tmp/bx-agent-install.XXXXXX')
|
|
expect(cmd).toContain("'https://master.example.com/install/abc'")
|
|
expect(cmd).toContain('non-script content')
|
|
expect(cmd).toContain('umask 077')
|
|
expect(cmd).toContain('rm -f "$tmp"')
|
|
})
|
|
|
|
it('keeps the one-time URL as the primary install command', () => {
|
|
const cmd = buildAgentInstallCommand(
|
|
'https://master.example.com/api/install/abc',
|
|
'https://master.example.com/install/abc',
|
|
)
|
|
|
|
expect(cmd).toContain('https://master.example.com/api/install/abc')
|
|
expect(cmd).toContain('https://master.example.com/install/abc')
|
|
})
|
|
|
|
it('binds proxy and private CA settings to installer downloads', () => {
|
|
const cmd = buildAgentInstallCommand(
|
|
'https://master.internal/api/install/abc',
|
|
undefined,
|
|
{ proxyUrl: 'socks5h://127.0.0.1:1080', caCertFile: '/etc/backupx-agent/ca.pem' },
|
|
)
|
|
|
|
expect(cmd).toContain("--proxy 'socks5h://127.0.0.1:1080'")
|
|
expect(cmd).toContain("--cacert '/etc/backupx-agent/ca.pem'")
|
|
})
|
|
|
|
it('builds embedded fallback command explicitly', () => {
|
|
const cmd = buildEmbeddedAgentInstallCommand('IyEvYmluL3NoCg==')
|
|
|
|
expect(cmd).toContain('base64 -d')
|
|
expect(cmd).toContain('base64 -D')
|
|
expect(cmd).toContain('BACKUPX_AGENT_INSTALL_V1')
|
|
expect(cmd).toContain("'IyEvYmluL3NoCg=='")
|
|
})
|
|
})
|