1
1
import { Yok } from "../../../lib/common/yok" ;
2
2
import { GradleBuildArgsService } from "../../../lib/services/android/gradle-build-args-service" ;
3
+ import * as stubs from "../../stubs" ;
3
4
import { assert } from "chai" ;
5
+ import * as temp from "temp" ;
6
+ temp . track ( ) ;
4
7
5
8
function createTestInjector ( ) : IInjector {
6
9
const injector = new Yok ( ) ;
@@ -14,43 +17,45 @@ function createTestInjector(): IInjector {
14
17
} ) ;
15
18
injector . register ( "logger" , { } ) ;
16
19
injector . register ( "gradleBuildArgsService" , GradleBuildArgsService ) ;
20
+ injector . register ( "analyticsService" , stubs . AnalyticsService ) ;
21
+ injector . register ( "staticConfig" , { TRACK_FEATURE_USAGE_SETTING_NAME : "TrackFeatureUsage" } ) ;
17
22
18
23
return injector ;
19
24
}
20
25
21
- function executeTests ( testCases : any [ ] , testFunction : ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => string [ ] ) {
22
- _ . each ( testCases , testCase => {
23
- it ( testCase . name , ( ) => {
26
+ async function executeTests ( testCases : any [ ] , testFunction : ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => Promise < string [ ] > ) {
27
+ for ( const testCase of testCases ) {
28
+ it ( testCase . name , async ( ) => {
24
29
const injector = createTestInjector ( ) ;
25
30
if ( testCase . logLevel ) {
26
31
const logger = injector . resolve ( "logger" ) ;
27
32
logger . getLevel = ( ) => testCase . logLevel ;
28
33
}
29
34
30
35
const gradleBuildArgsService = injector . resolve ( "gradleBuildArgsService" ) ;
31
- const args = testFunction ( gradleBuildArgsService , testCase . buildConfig ) ;
36
+ const args = await testFunction ( gradleBuildArgsService , testCase . buildConfig ) ;
32
37
33
38
assert . deepEqual ( args , testCase . expectedResult ) ;
34
39
} ) ;
35
- } ) ;
40
+ }
36
41
}
37
-
42
+ const ksPath = temp . path ( { prefix : "ksPath" } ) ;
38
43
const expectedInfoLoggingArgs = [ "--quiet" ] ;
39
44
const expectedTraceLoggingArgs = [ "--stacktrace" , "--debug" ] ;
40
45
const expectedDebugBuildArgs = [ "-PcompileSdk=android-28" , "-PtargetSdk=26" , "-PbuildToolsVersion=my-build-tools-version" , "-PgenerateTypings=true" ] ;
41
- const expectedReleaseBuildArgs = expectedDebugBuildArgs . concat ( [ "-Prelease" , " -PksPath=/my/key/store/path" ,
46
+ const expectedReleaseBuildArgs = expectedDebugBuildArgs . concat ( [ "-Prelease" , ` -PksPath=${ ksPath } ` ,
42
47
"-Palias=keyStoreAlias" , "-Ppassword=keyStoreAliasPassword" , "-PksPassword=keyStorePassword" ] ) ;
43
48
44
49
const releaseBuildConfig = {
45
50
release : true ,
46
- keyStorePath : "/my/key/store/path" ,
51
+ keyStorePath : ksPath ,
47
52
keyStoreAlias : "keyStoreAlias" ,
48
53
keyStoreAliasPassword : "keyStoreAliasPassword" ,
49
54
keyStorePassword : "keyStorePassword"
50
55
} ;
51
56
52
57
describe ( "GradleBuildArgsService" , ( ) => {
53
- describe ( "getBuildTaskArgs" , ( ) => {
58
+ describe ( "getBuildTaskArgs" , async ( ) => {
54
59
const testCases = [
55
60
{
56
61
name : "should return correct args for debug build with info log" ,
@@ -102,10 +107,10 @@ describe("GradleBuildArgsService", () => {
102
107
}
103
108
] ;
104
109
105
- executeTests ( testCases , ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => gradleBuildArgsService . getBuildTaskArgs ( buildData ) ) ;
110
+ await executeTests ( testCases , ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => gradleBuildArgsService . getBuildTaskArgs ( buildData ) ) ;
106
111
} ) ;
107
112
108
- describe ( "getCleanTaskArgs" , ( ) => {
113
+ describe ( "getCleanTaskArgs" , async ( ) => {
109
114
const testCases = [
110
115
{
111
116
name : "should return correct args for debug clean build with info log" ,
@@ -157,6 +162,6 @@ describe("GradleBuildArgsService", () => {
157
162
}
158
163
] ;
159
164
160
- executeTests ( testCases , ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => gradleBuildArgsService . getCleanTaskArgs ( buildData ) ) ;
165
+ await executeTests ( testCases , ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => Promise . resolve ( gradleBuildArgsService . getCleanTaskArgs ( buildData ) ) ) ;
161
166
} ) ;
162
167
} ) ;
0 commit comments