- app_config.json + AppConfig: qiniu_access_key/qiniu_secret_key/wechat_app_id/wechat_app_secret(扁平snake_case) - RemoteConfig.VersionFields + audio_domain/audio_bucket(4层可携带), VersionDecision + audioDomain/audioBucket - VersionResolver.resolve 复用 pickStr 解析 audioDomain/audioBucket(4层逐级回退) - QiniuToken.uploadToken(accessKey,secretKey,bucket) 改传参,去掉硬编码常量 - AudioProvider.doUpload: AK/SK取本地配置, domain/bucket取远程配置(cfg.resolve), URL用远程domain - WeChatApi.configure(appId) 注入AppID(去WX_APP_ID常量), EntryAbility.onCreate 从配置注入 - 更新 QiniuToken 单测传参 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
22 lines
1012 B
Plaintext
22 lines
1012 B
Plaintext
import { describe, it, expect } from '@ohos/hypium';
|
|
import { QiniuToken } from 'platform';
|
|
import { util } from '@kit.ArkTS';
|
|
|
|
export default function QiniuTokenTest() {
|
|
describe('QiniuTokenTest', () => {
|
|
it('token_has_three_parts_and_valid_policy', 0, async () => {
|
|
// AK/SK/bucket 现由调用方注入(本地 app_config + 远程 audio_bucket),单测用固定测试值
|
|
const token: string = await QiniuToken.uploadToken('AK_TEST', 'SK_TEST', 'bk_test');
|
|
const parts: string[] = token.split(':');
|
|
expect(parts.length).assertEqual(3);
|
|
expect(parts[0]).assertEqual('AK_TEST');
|
|
expect(parts[1].length).assertEqual(28);
|
|
const helper = new util.Base64Helper();
|
|
const std: string = parts[2].replace(/-/g, '+').replace(/_/g, '/');
|
|
const decoded: Uint8Array = helper.decodeSync(std);
|
|
const policy: string = String.fromCharCode.apply(null, Array.from(decoded));
|
|
expect(policy.indexOf('"scope":"bk_test"') >= 0).assertTrue();
|
|
});
|
|
});
|
|
}
|