Showing
3 changed files
with
27 additions
and
6 deletions
| ... | @@ -148,6 +148,27 @@ describe('useShare', () => { | ... | @@ -148,6 +148,27 @@ describe('useShare', () => { |
| 148 | ) | 148 | ) |
| 149 | }) | 149 | }) |
| 150 | 150 | ||
| 151 | + it('resolver 显式返回空 desc 时不回退为标题或 description', async () => { | ||
| 152 | + const router = createRouterMock({ | ||
| 153 | + meta: { title: '课程详情' }, | ||
| 154 | + }) | ||
| 155 | + | ||
| 156 | + installWxShareSync(router, { | ||
| 157 | + isEnabled: true, | ||
| 158 | + resolver: vi.fn(() => | ||
| 159 | + Promise.resolve({ | ||
| 160 | + description: '课程详情', | ||
| 161 | + desc: '', | ||
| 162 | + }) | ||
| 163 | + ), | ||
| 164 | + }) | ||
| 165 | + | ||
| 166 | + await flushMutationObserver() | ||
| 167 | + | ||
| 168 | + expect(wxMocks.updateAppMessageShareData.mock.lastCall[0].title).toBe('美乐爱觉') | ||
| 169 | + expect(wxMocks.updateAppMessageShareData.mock.lastCall[0].desc).toBe('') | ||
| 170 | + }) | ||
| 171 | + | ||
| 151 | it('非 cdn 图片地址保持不变', () => { | 172 | it('非 cdn 图片地址保持不变', () => { |
| 152 | expect(normalizeShareImageUrl('https://example.com/image.png')).toBe( | 173 | expect(normalizeShareImageUrl('https://example.com/image.png')).toBe( |
| 153 | 'https://example.com/image.png' | 174 | 'https://example.com/image.png' | ... | ... |
| ... | @@ -170,15 +170,15 @@ const mergeResolvedShareData = ( | ... | @@ -170,15 +170,15 @@ const mergeResolvedShareData = ( |
| 170 | ...(resolvedShareData || {}), | 170 | ...(resolvedShareData || {}), |
| 171 | } | 171 | } |
| 172 | 172 | ||
| 173 | - if (resolvedShareData?.description && !resolvedShareData?.desc) { | 173 | + if (resolvedShareData && 'description' in resolvedShareData && !('desc' in resolvedShareData)) { |
| 174 | mergedShareData.desc = resolvedShareData.description | 174 | mergedShareData.desc = resolvedShareData.description |
| 175 | } | 175 | } |
| 176 | 176 | ||
| 177 | - if (resolvedShareData?.image && !resolvedShareData?.imgUrl) { | 177 | + if (resolvedShareData && 'image' in resolvedShareData && !('imgUrl' in resolvedShareData)) { |
| 178 | mergedShareData.imgUrl = resolvedShareData.image | 178 | mergedShareData.imgUrl = resolvedShareData.image |
| 179 | } | 179 | } |
| 180 | 180 | ||
| 181 | - if (resolvedShareData?.url && !resolvedShareData?.link) { | 181 | + if (resolvedShareData && 'url' in resolvedShareData && !('link' in resolvedShareData)) { |
| 182 | mergedShareData.link = resolvedShareData.url | 182 | mergedShareData.link = resolvedShareData.url |
| 183 | } | 183 | } |
| 184 | 184 | ... | ... |
| ... | @@ -219,15 +219,15 @@ const mergeResolvedOgMeta = ( | ... | @@ -219,15 +219,15 @@ const mergeResolvedOgMeta = ( |
| 219 | ...(resolvedPayload || {}), | 219 | ...(resolvedPayload || {}), |
| 220 | } | 220 | } |
| 221 | 221 | ||
| 222 | - if (resolvedPayload?.desc && !resolvedPayload?.description) { | 222 | + if (resolvedPayload && 'desc' in resolvedPayload && !('description' in resolvedPayload)) { |
| 223 | mergedPayload.description = resolvedPayload.desc | 223 | mergedPayload.description = resolvedPayload.desc |
| 224 | } | 224 | } |
| 225 | 225 | ||
| 226 | - if (resolvedPayload?.imgUrl && !resolvedPayload?.image) { | 226 | + if (resolvedPayload && 'imgUrl' in resolvedPayload && !('image' in resolvedPayload)) { |
| 227 | mergedPayload.image = resolvedPayload.imgUrl | 227 | mergedPayload.image = resolvedPayload.imgUrl |
| 228 | } | 228 | } |
| 229 | 229 | ||
| 230 | - if (resolvedPayload?.link && !resolvedPayload?.url) { | 230 | + if (resolvedPayload && 'link' in resolvedPayload && !('url' in resolvedPayload)) { |
| 231 | mergedPayload.url = resolvedPayload.link | 231 | mergedPayload.url = resolvedPayload.link |
| 232 | } | 232 | } |
| 233 | 233 | ... | ... |
-
Please register or login to post a comment