'use strict'; const test = require('node:test'); const assert = require('node:assert/strict'); const { buildPublicUrl, normalizeEndpoint, normalizeProtocol, normalizePublicDomain, normalizeStorageClass, } = require('../src/services/objectStorage'); test('object storage normalizes endpoint and protocol', () => { assert.equal( normalizeEndpoint('s3.cn-east-1.qiniucs.com/', 'https'), 'https://s3.cn-east-1.qiniucs.com' ); assert.equal(normalizeEndpoint('http://example.com/', 'https'), 'https://example.com'); assert.equal(normalizeProtocol('', 'http://example.com'), 'http'); assert.equal(normalizeProtocol('HTTPS'), 'https'); }); test('object storage public URL prefers the configured public domain', () => { assert.equal( buildPublicUrl({ protocol: 'https', customDomain: 'scqny.jiansun.vip/', endpoint: 'https://s3.cn-east-1.qiniucs.com', bucket: 'gongxiangpan-sc', }, 'images/中文 文件.png'), 'https://scqny.jiansun.vip/images/%E4%B8%AD%E6%96%87%20%E6%96%87%E4%BB%B6.png' ); assert.equal( normalizePublicDomain('scqny.jiansun.vip/', 'https'), 'https://scqny.jiansun.vip' ); }); test('object storage class falls back to STANDARD', () => { assert.equal(normalizeStorageClass('standard'), 'STANDARD'); assert.equal(normalizeStorageClass('LINE'), 'LINE'); assert.equal(normalizeStorageClass('unsupported'), 'STANDARD'); });