43 lines
2.3 KiB
TypeScript
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:')
|
|
})
|
|
})
|