32 lines
1.4 KiB
TypeScript
32 lines
1.4 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import {
|
|
findNianCodeDeepLinkUrl,
|
|
parseNianCodeDeepLinkUrl,
|
|
} from '@electron/main/app-deep-link';
|
|
|
|
describe('NianCode app deep links', () => {
|
|
it('parses desktop auth callback request ids from niancode links', () => {
|
|
expect(parseNianCodeDeepLinkUrl('niancode://auth/callback?request_id=desktop-request-id')).toEqual({
|
|
type: 'desktop-auth-callback',
|
|
requestId: 'desktop-request-id',
|
|
url: 'niancode://auth/callback?request_id=desktop-request-id',
|
|
});
|
|
});
|
|
|
|
it('rejects links that do not target the desktop auth callback', () => {
|
|
expect(parseNianCodeDeepLinkUrl('https://square.nianxx.cn/#desktop-auth?request_id=1')).toBeNull();
|
|
expect(parseNianCodeDeepLinkUrl('niancode://auth/callback')).toBeNull();
|
|
expect(parseNianCodeDeepLinkUrl('niancode://auth/callback?request_id=')).toBeNull();
|
|
expect(parseNianCodeDeepLinkUrl('niancode://auth/callback?request_id=1&access_token=secret')).toBeNull();
|
|
expect(parseNianCodeDeepLinkUrl('niancode://settings')).toBeNull();
|
|
});
|
|
|
|
it('finds the app link from platform launch arguments', () => {
|
|
expect(findNianCodeDeepLinkUrl([
|
|
'C:\\Program Files\\NianCode\\NianCode.exe',
|
|
'--flag',
|
|
'niancode://auth/callback?request_id=desktop-request-id',
|
|
])).toBe('niancode://auth/callback?request_id=desktop-request-id');
|
|
});
|
|
});
|