@@ -45,12 +45,16 @@ describe('getRequiredReleaseAssetNames', () => {
4545 )
4646 } )
4747
48- it ( 'includes the Linux RPM alongside the existing AppImage and deb names ' , ( ) => {
48+ it ( 'includes x64 and arm64 Linux assets ' , ( ) => {
4949 expect ( getRequiredReleaseAssetNames ( 'v1.4.27' ) ) . toEqual (
5050 expect . arrayContaining ( [
51+ 'latest-linux-arm64.yml' ,
5152 'orca-linux.AppImage' ,
53+ 'orca-linux-arm64.AppImage' ,
5254 'orca-ide_1.4.27_amd64.deb' ,
53- 'orca-ide-1.4.27.x86_64.rpm'
55+ 'orca-ide_1.4.27_arm64.deb' ,
56+ 'orca-ide-1.4.27.x86_64.rpm' ,
57+ 'orca-ide-1.4.27.aarch64.rpm'
5458 ] )
5559 )
5660 } )
@@ -100,4 +104,32 @@ describe('verifyRequiredReleaseAssets', () => {
100104 ) . rejects . toThrow ( 'Missing: Orca-1.4.27-arm64-mac.zip' )
101105 expect ( latestMacAsset ) . toBeTruthy ( )
102106 } )
107+
108+ it ( 'checks assets referenced by the Linux arm64 updater manifest' , async ( ) => {
109+ const tag = 'v1.4.27'
110+ const required = getRequiredReleaseAssetNames ( tag )
111+ const release = releaseWithAssets ( tag , required )
112+ const arm64Manifest = release . assets . find ( ( asset ) => asset . name === 'latest-linux-arm64.yml' )
113+ const fetchMock = vi
114+ . fn ( )
115+ . mockResolvedValueOnce ( jsonResponse ( [ release ] ) )
116+ . mockResolvedValueOnce ( jsonResponse ( 'version: 1.4.27\n' ) )
117+ . mockResolvedValueOnce (
118+ jsonResponse (
119+ [
120+ 'version: 1.4.27' ,
121+ 'files:' ,
122+ ' - url: orca-linux-arm64.AppImage.blockmap' ,
123+ 'path: orca-linux-arm64.AppImage'
124+ ] . join ( '\n' )
125+ )
126+ )
127+ . mockResolvedValue ( jsonResponse ( 'version: 1.4.27\n' ) )
128+ vi . stubGlobal ( 'fetch' , fetchMock )
129+
130+ await expect (
131+ verifyRequiredReleaseAssets ( { repo : 'stablyai/orca' , tag, token : 'token' } )
132+ ) . rejects . toThrow ( 'Missing: orca-linux-arm64.AppImage.blockmap' )
133+ expect ( arm64Manifest ) . toBeTruthy ( )
134+ } )
103135} )
0 commit comments