统一发布分享弹窗为作品分享卡片 支持下载分享卡与小程序九宫切图保存 小程序复制链接改为可直达作品详情的 web-view 路径 修复本地 dev Rust 构建绕过损坏 sccache 补充分享链路与 dev 启动文档和测试
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
import { describe, expect, test } from 'vitest';
|
|
|
|
import webViewBridge from './index.shared.js';
|
|
|
|
const {
|
|
appendLaunchTargetToEntryUrl,
|
|
resolveWebViewUrlFromRuntimeConfig,
|
|
} = webViewBridge;
|
|
|
|
const runtimeConfig = {
|
|
sourceQuery: {
|
|
clientType: 'mini_program',
|
|
clientRuntime: 'wechat_mini_program',
|
|
},
|
|
webViewEntryUrl: 'https://www.genarrative.world',
|
|
};
|
|
|
|
describe('mini program web-view launch target', () => {
|
|
test('opens the H5 public work detail when launch query carries work params', () => {
|
|
expect(
|
|
appendLaunchTargetToEntryUrl('https://www.genarrative.world?foo=bar', {
|
|
targetPath: '/works/detail',
|
|
work: 'BB-12345678',
|
|
}),
|
|
).toBe(
|
|
'https://www.genarrative.world/works/detail?foo=bar&work=BB-12345678',
|
|
);
|
|
|
|
const webViewUrl = resolveWebViewUrlFromRuntimeConfig(
|
|
null,
|
|
{
|
|
targetPath: '/works/detail',
|
|
work: 'BB-12345678',
|
|
},
|
|
runtimeConfig,
|
|
);
|
|
const url = new URL(webViewUrl);
|
|
expect(url.pathname).toBe('/works/detail');
|
|
expect(url.searchParams.get('work')).toBe('BB-12345678');
|
|
expect(url.searchParams.get('clientRuntime')).toBe('wechat_mini_program');
|
|
});
|
|
|
|
test('ignores unsupported launch target paths', () => {
|
|
const webViewUrl = resolveWebViewUrlFromRuntimeConfig(
|
|
null,
|
|
{
|
|
targetPath: '/admin',
|
|
work: 'BB-12345678',
|
|
},
|
|
runtimeConfig,
|
|
);
|
|
const url = new URL(webViewUrl);
|
|
expect(url.pathname).toBe('/');
|
|
expect(url.searchParams.get('work')).toBeNull();
|
|
});
|
|
});
|