初始化提交:go比特版本精简
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
'use strict';
|
||||
|
||||
const assert = require('assert');
|
||||
const {
|
||||
_private: {
|
||||
normalizeWorkspaceRefundProxy,
|
||||
normalizeWorkspaceRefundProxyList,
|
||||
parseStoredSecret,
|
||||
encodeStoredSecret,
|
||||
maskWorkspaceRefundProxy,
|
||||
},
|
||||
} = require('../src/services/workspace_refund_credentials_store');
|
||||
|
||||
const proxy = 'socks5://proxy-user:proxy-pass@127.0.0.1:1080';
|
||||
const proxy2 = 'socks5://proxy-user:proxy-pass@127.0.0.2:1080';
|
||||
assert.strictEqual(normalizeWorkspaceRefundProxy(proxy), proxy);
|
||||
assert.deepStrictEqual(
|
||||
normalizeWorkspaceRefundProxyList(`${proxy}\n${proxy2}\n${proxy}`),
|
||||
[proxy, proxy2],
|
||||
'代理池应按行读取、保持顺序并自动去重',
|
||||
);
|
||||
assert.strictEqual(maskWorkspaceRefundProxy(proxy), 'socks5://127.0.0.1:1080');
|
||||
assert.strictEqual(
|
||||
maskWorkspaceRefundProxy('127.0.0.1:1080:proxy-user:proxy-pass'),
|
||||
'auto://127.0.0.1:1080',
|
||||
);
|
||||
|
||||
const encoded = encodeStoredSecret('header.payload.signature', [proxy, proxy2]);
|
||||
const decoded = parseStoredSecret(encoded);
|
||||
assert.deepStrictEqual(decoded, {
|
||||
accessToken: 'header.payload.signature',
|
||||
proxies: [proxy, proxy2],
|
||||
});
|
||||
|
||||
assert.deepStrictEqual(
|
||||
parseStoredSecret(JSON.stringify({
|
||||
kind: 'workspace_refund_credentials',
|
||||
version: 2,
|
||||
accessToken: 'legacy-v2.header.signature',
|
||||
proxy,
|
||||
})),
|
||||
{ accessToken: 'legacy-v2.header.signature', proxies: [proxy] },
|
||||
'已有单代理加密配置必须自动迁移为代理池',
|
||||
);
|
||||
|
||||
assert.deepStrictEqual(
|
||||
parseStoredSecret('legacy.header.signature'),
|
||||
{ accessToken: 'legacy.header.signature', proxies: [] },
|
||||
'升级前只保存 Token 的文件必须继续兼容',
|
||||
);
|
||||
assert.throws(
|
||||
() => normalizeWorkspaceRefundProxy('not-a-proxy'),
|
||||
error => error && error.code === 'REFUND_PROXY_INVALID',
|
||||
);
|
||||
assert.throws(
|
||||
() => normalizeWorkspaceRefundProxyList(Array.from({ length: 21 }, (_, index) => `127.0.0.${index + 1}:1080`)),
|
||||
error => error && error.code === 'REFUND_PROXY_INVALID',
|
||||
);
|
||||
|
||||
console.log('workspace_refund_credentials_store.test.js: PASS');
|
||||
Reference in New Issue
Block a user