35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { validateWechatShareSignatureUrl } from './wechat-share.mjs';
|
|
|
|
test('validateWechatShareSignatureUrl accepts public H5 page urls without login state', () => {
|
|
assert.equal(
|
|
validateWechatShareSignatureUrl('https://m.tkmind.cn/u/john/pages/demo#section', {
|
|
publicBaseUrl: 'https://m.tkmind.cn',
|
|
requestHost: '127.0.0.1:8081',
|
|
}),
|
|
'https://m.tkmind.cn/u/john/pages/demo',
|
|
);
|
|
});
|
|
|
|
test('validateWechatShareSignatureUrl accepts current request host for local verification', () => {
|
|
assert.equal(
|
|
validateWechatShareSignatureUrl('http://127.0.0.1:8081/MindSpace/user-1/public/demo.html', {
|
|
publicBaseUrl: 'https://m.tkmind.cn',
|
|
requestHost: '127.0.0.1:8081',
|
|
}),
|
|
'http://127.0.0.1:8081/MindSpace/user-1/public/demo.html',
|
|
);
|
|
});
|
|
|
|
test('validateWechatShareSignatureUrl rejects foreign hosts', () => {
|
|
assert.throws(
|
|
() =>
|
|
validateWechatShareSignatureUrl('https://evil.example/u/john/pages/demo', {
|
|
publicBaseUrl: 'https://m.tkmind.cn',
|
|
requestHost: '127.0.0.1:8081',
|
|
}),
|
|
(error) => error.code === 'host_not_allowed',
|
|
);
|
|
});
|