import { GitHubRelease } from './tool-utils'; import { downloadUrl, OS } from './update-readme-download'; describe('update-readme-download', () => { it('convert download URLs', async () => { const createRelease = (assetName: string, browserDownloadUrl: string) => { const r: GitHubRelease = { assets: [ { browser_download_url: browserDownloadUrl, name: assetName, }, ], tag_name: '', upload_url: '', html_url: '', prerelease: false, draft: false, body: '', }; return r; }; const testCases: [GitHubRelease, OS, boolean, string][] = [ [ createRelease('joplin-v2.9.8.apk', 'https://github.com/laurent22/joplin-android/releases/download/android-v2.9.8/joplin-v2.9.8.apk'), OS.Android, false, 'https://objects.joplinusercontent.com/v2.9.8/joplin-v2.9.8.apk', ], [ createRelease('Joplin-Setup-2.11.11.exe', 'https://github.com/laurent22/joplin/releases/download/v2.11.11/Joplin-Setup-2.11.11.exe'), OS.Windows, false, 'https://objects.joplinusercontent.com/v2.11.11/Joplin-Setup-2.11.11.exe', ], [ createRelease('JoplinPortable.exe', 'https://github.com/laurent22/joplin/releases/download/v2.11.11/JoplinPortable.exe'), OS.Windows, true, 'https://objects.joplinusercontent.com/v2.11.11/JoplinPortable.exe', ], ]; for (const [release, os, portable, expected] of testCases) { const actual = downloadUrl(release, os, portable); expect(actual).toBe(expected); } }); });