hookehuyr

fix: avoid duplicate wechat share descriptions

......@@ -148,6 +148,27 @@ describe('useShare', () => {
)
})
it('resolver 显式返回空 desc 时不回退为标题或 description', async () => {
const router = createRouterMock({
meta: { title: '课程详情' },
})
installWxShareSync(router, {
isEnabled: true,
resolver: vi.fn(() =>
Promise.resolve({
description: '课程详情',
desc: '',
})
),
})
await flushMutationObserver()
expect(wxMocks.updateAppMessageShareData.mock.lastCall[0].title).toBe('美乐爱觉')
expect(wxMocks.updateAppMessageShareData.mock.lastCall[0].desc).toBe('')
})
it('非 cdn 图片地址保持不变', () => {
expect(normalizeShareImageUrl('https://example.com/image.png')).toBe(
'https://example.com/image.png'
......
......@@ -170,15 +170,15 @@ const mergeResolvedShareData = (
...(resolvedShareData || {}),
}
if (resolvedShareData?.description && !resolvedShareData?.desc) {
if (resolvedShareData && 'description' in resolvedShareData && !('desc' in resolvedShareData)) {
mergedShareData.desc = resolvedShareData.description
}
if (resolvedShareData?.image && !resolvedShareData?.imgUrl) {
if (resolvedShareData && 'image' in resolvedShareData && !('imgUrl' in resolvedShareData)) {
mergedShareData.imgUrl = resolvedShareData.image
}
if (resolvedShareData?.url && !resolvedShareData?.link) {
if (resolvedShareData && 'url' in resolvedShareData && !('link' in resolvedShareData)) {
mergedShareData.link = resolvedShareData.url
}
......
......@@ -219,15 +219,15 @@ const mergeResolvedOgMeta = (
...(resolvedPayload || {}),
}
if (resolvedPayload?.desc && !resolvedPayload?.description) {
if (resolvedPayload && 'desc' in resolvedPayload && !('description' in resolvedPayload)) {
mergedPayload.description = resolvedPayload.desc
}
if (resolvedPayload?.imgUrl && !resolvedPayload?.image) {
if (resolvedPayload && 'imgUrl' in resolvedPayload && !('image' in resolvedPayload)) {
mergedPayload.image = resolvedPayload.imgUrl
}
if (resolvedPayload?.link && !resolvedPayload?.url) {
if (resolvedPayload && 'link' in resolvedPayload && !('url' in resolvedPayload)) {
mergedPayload.url = resolvedPayload.link
}
......