104 lines
2.4 KiB
TypeScript
104 lines
2.4 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
DEFAULT_LAUNCH_SCHEME,
|
|
parseLaunchQuery,
|
|
parseMiniProgramScheme,
|
|
resolveLaunchQuery,
|
|
} from './launch'
|
|
|
|
describe('parseMiniProgramScheme', () => {
|
|
it('reads the default weixin business scheme query', () => {
|
|
expect(parseMiniProgramScheme(DEFAULT_LAUNCH_SCHEME)).toEqual({
|
|
appId: 'wxf8a8961f30396c19',
|
|
path: 'pages/index/index',
|
|
scene: '/h/KZ9Q',
|
|
token: '',
|
|
host: 'nb.batiao8.com',
|
|
package: '10044',
|
|
phone: '',
|
|
})
|
|
})
|
|
})
|
|
|
|
describe('parseLaunchQuery', () => {
|
|
it('keeps token host and package from the H5 jump', () => {
|
|
expect(
|
|
parseLaunchQuery({
|
|
token: 'h5-token',
|
|
host: 'h5test.batiao8.com',
|
|
package: '10044',
|
|
scene: '%2Fh%2FKZ9Q',
|
|
})
|
|
).toEqual({
|
|
token: 'h5-token',
|
|
host: 'h5test.batiao8.com',
|
|
packageId: '10044',
|
|
scene: '/h/KZ9Q',
|
|
linkId: 'KZ9Q',
|
|
shareId: '',
|
|
prevId: '',
|
|
phone: '',
|
|
})
|
|
})
|
|
|
|
it('reads share and preview short links', () => {
|
|
expect(parseLaunchQuery({ scene: '/s/SHARE1' }).shareId).toBe('SHARE1')
|
|
expect(parseLaunchQuery({ scene: '/p/PREV9' }).prevId).toBe('PREV9')
|
|
})
|
|
|
|
it('ignores empty values', () => {
|
|
expect(parseLaunchQuery({})).toEqual({
|
|
token: '',
|
|
host: '',
|
|
packageId: '',
|
|
scene: '',
|
|
linkId: '',
|
|
shareId: '',
|
|
prevId: '',
|
|
phone: '',
|
|
})
|
|
|
|
expect(parseLaunchQuery({ phone: '13900001111' }).phone).toBe('13900001111')
|
|
})
|
|
})
|
|
|
|
describe('resolveLaunchQuery', () => {
|
|
it('fills missing fields from the default scheme', () => {
|
|
expect(resolveLaunchQuery({})).toEqual({
|
|
token: '',
|
|
host: 'nb.batiao8.com',
|
|
packageId: '10044',
|
|
scene: '/h/KZ9Q',
|
|
linkId: 'KZ9Q',
|
|
shareId: '',
|
|
prevId: '',
|
|
phone: '',
|
|
})
|
|
})
|
|
|
|
it('uses the launched phone when present', () => {
|
|
expect(resolveLaunchQuery({ phone: '13900001111' }).phone).toBe('13900001111')
|
|
})
|
|
|
|
it('keeps explicit jump params over defaults', () => {
|
|
expect(
|
|
resolveLaunchQuery({
|
|
token: 'h5-token',
|
|
host: 'h5test.batiao8.com',
|
|
package: '20001',
|
|
scene: '/s/SHARE1',
|
|
})
|
|
).toEqual({
|
|
token: 'h5-token',
|
|
host: 'h5test.batiao8.com',
|
|
packageId: '20001',
|
|
scene: '/s/SHARE1',
|
|
linkId: '',
|
|
shareId: 'SHARE1',
|
|
prevId: '',
|
|
phone: '',
|
|
})
|
|
})
|
|
})
|
|
|