@@ -2,26 +2,25 @@ import { Repositorys, VersionInfo } from 'common/types'
2
2
import { getAvailableVersions } from '../../main'
3
3
import { test_data_release_list } from '../test_data/github-api-test-data.json'
4
4
import * as axios from 'axios'
5
+ import { logError , logWarning } from 'backend/logger/logger'
5
6
6
7
jest . mock ( 'backend/logger/logger' )
8
+ jest . mock ( 'backend/logger/logfile' )
7
9
8
10
describe ( 'Main - GetAvailableVersions' , ( ) => {
9
11
test ( 'fetch releases succesfully' , async ( ) => {
10
12
axios . default . get = jest . fn ( ) . mockResolvedValue ( test_data_release_list )
11
13
12
- await getAvailableVersions ( { } )
13
- . then ( ( releases : VersionInfo [ ] ) => {
14
- expect ( releases ) . not . toBe ( [ ] )
15
- expect ( releases . length ) . toBeGreaterThan ( 0 )
16
- expect ( releases [ 2 ] . version ) . toContain ( '6.16-GE-1' )
17
- } )
18
- . catch ( ( ) => {
19
- throw Error ( 'No error should be thrown!' )
20
- } )
14
+ await getAvailableVersions ( { } ) . then ( ( releases : VersionInfo [ ] ) => {
15
+ expect ( releases ) . not . toBe ( [ ] )
16
+ expect ( releases . length ) . toBeGreaterThan ( 0 )
17
+ expect ( releases [ 3 ] . version ) . toContain ( '6.16-GE-1' )
18
+ } )
21
19
22
20
expect ( axios . default . get ) . toBeCalledWith (
23
21
'https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases?per_page=100'
24
22
)
23
+ expect ( logError ) . not . toBeCalled ( )
25
24
} )
26
25
27
26
test ( 'fetch releases succesfully independent' , async ( ) => {
@@ -30,56 +29,51 @@ describe('Main - GetAvailableVersions', () => {
30
29
for ( let key = 0 ; key < Object . keys ( Repositorys ) . length / 2 ; key ++ ) {
31
30
await getAvailableVersions ( {
32
31
repositorys : [ key ]
32
+ } ) . then ( ( releases : VersionInfo [ ] ) => {
33
+ expect ( releases ) . not . toBe ( [ ] )
34
+ expect ( releases . length ) . toBeGreaterThan ( 0 )
35
+ expect ( releases [ 3 ] . version ) . toContain ( '6.16-GE-1' )
33
36
} )
34
- . then ( ( releases : VersionInfo [ ] ) => {
35
- expect ( releases ) . not . toBe ( [ ] )
36
- expect ( releases . length ) . toBeGreaterThan ( 0 )
37
- expect ( releases [ 2 ] . version ) . toContain ( '6.16-GE-1' )
38
- } )
39
- . catch ( ( ) => {
40
- throw Error ( 'No error should be thrown!' )
41
- } )
42
37
43
38
expect ( axios . default . get ) . toBeCalledWith (
44
39
'https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases?per_page=100'
45
40
)
41
+ expect ( logError ) . not . toBeCalled ( )
46
42
}
47
43
} )
48
44
49
45
test ( 'fetch releases failed because of 404' , async ( ) => {
50
46
axios . default . get = jest . fn ( ) . mockRejectedValue ( 'Could not fetch tag 404' )
51
47
52
48
for ( let key = 0 ; key < Object . keys ( Repositorys ) . length / 2 ; key ++ ) {
53
- await getAvailableVersions ( { repositorys : [ key ] } )
54
- . then ( ( ) => {
55
- throw Error ( "Function shouldn't success!" )
56
- } )
57
- . catch ( ( error : Error ) => {
58
- expect ( error . message ) . toContain ( 'Could not fetch tag 404' )
59
- } )
49
+ await expect (
50
+ getAvailableVersions ( { repositorys : [ key ] } )
51
+ ) . resolves . toStrictEqual ( [ ] )
60
52
61
53
expect ( axios . default . get ) . toBeCalledWith (
62
54
expect . stringContaining ( 'https://api.github.com/repos/' )
63
55
)
56
+ expect ( logError ) . toBeCalledWith (
57
+ Error (
58
+ 'Could not fetch available releases from https://api.github.com/repos/GloriousEggroll/wine-ge-custom/releases with error:\n ' +
59
+ 'Could not fetch tag 404'
60
+ ) ,
61
+ 'WineDownloader'
62
+ )
64
63
}
65
64
} )
66
65
67
66
test ( 'Invalid repository key returns nothing' , async ( ) => {
68
67
axios . default . get = jest . fn ( )
69
- console . warn = jest . fn ( )
70
68
71
- await getAvailableVersions ( { repositorys : [ - 1 ] } )
72
- . then ( ( releases : VersionInfo [ ] ) => {
73
- expect ( releases ) . toStrictEqual ( [ ] )
74
- expect ( releases . length ) . toBe ( 0 )
75
- } )
76
- . catch ( ( ) => {
77
- throw Error ( 'No error should be thrown!' )
78
- } )
69
+ await expect (
70
+ getAvailableVersions ( { repositorys : [ - 1 ] } )
71
+ ) . resolves . toStrictEqual ( [ ] )
79
72
80
73
expect ( axios . default . get ) . not . toBeCalled ( )
81
- expect ( console . warn ) . toBeCalledWith (
82
- 'Unknown and not supported repository key passed! Skip fetch for -1'
74
+ expect ( logWarning ) . toBeCalledWith (
75
+ 'Unknown and not supported repository key passed! Skip fetch for -1' ,
76
+ 'WineDownloader'
83
77
)
84
78
} )
85
79
} )
0 commit comments