flnxi-Wu/scripts/__tests__/registry-proxy-config.test.ts
2026-06-02 19:25:48 +08:00

43 lines
2.3 KiB
TypeScript

import fs from 'fs'
import path from 'path'
describe('registry premium module proxy config', () => {
const config = fs.readFileSync(
path.join(process.cwd(), 'deploy', 'registry-proxy', 'nginx.module-auth.conf.template'),
'utf8'
)
const existingRegistryCompose = fs.readFileSync(
path.join(process.cwd(), 'deploy', 'registry-proxy', 'docker-compose.existing-registry.yml'),
'utf8'
)
it('只对 flnxi/premium 模块拉取做验证服务器鉴权', () => {
expect(config).toContain('^/v2/(?<module_repository>flnxi/premium/[^/]+)')
expect(config).toContain('auth_request /_flnxi_module_auth')
expect(config).toContain('if ($flnxi_is_pull_method = 0)')
expect(config).toContain("return 200 '{}'")
})
it('会把短期 token、仓库路径、请求类型和 digest 转发给许可证服务', () => {
expect(config).toContain('proxy_set_header Authorization $http_authorization')
expect(config).toContain('proxy_set_header X-Registry-Host $http_host')
expect(config).toContain('proxy_set_header X-Registry-Repository $module_repository')
expect(config).toContain('proxy_set_header X-Registry-Reference-Type $module_reference_type')
expect(config).toContain('proxy_set_header X-Registry-Reference $module_reference')
expect(config).toContain('proxy_set_header X-Registry-Digest $module_digest_header')
expect(config).toContain('proxy_set_header X-Registry-Scope "repository:$module_repository:pull"')
expect(config).toContain('${LICENSE_SERVER_AUTH_URL}')
expect(config).toContain('proxy_set_header Authorization "${REGISTRY_BACKEND_AUTH}"')
})
it('已有镜像站编排只新增代理,不创建第二个 Registry 数据卷', () => {
expect(existingRegistryCompose).toContain('module-registry-proxy:')
expect(existingRegistryCompose).toContain('REGISTRY_BACKEND: ${REGISTRY_BACKEND:-http://flnxi-registry:5000}')
expect(existingRegistryCompose).toContain('REGISTRY_BACKEND_AUTH: ${REGISTRY_BACKEND_AUTH:-}')
expect(existingRegistryCompose).toContain('name: ${REGISTRY_NETWORK_NAME:-flnxi-registry-net}')
expect(existingRegistryCompose).toContain('external: true')
expect(existingRegistryCompose).not.toContain('image: ${REGISTRY_IMAGE:-registry:2}')
expect(existingRegistryCompose).not.toContain('registry_data:')
})
})