11import { Yok } from "../../../lib/common/yok" ;
22import { GradleBuildArgsService } from "../../../lib/services/android/gradle-build-args-service" ;
3+ import * as stubs from "../../stubs" ;
34import { assert } from "chai" ;
5+ import * as temp from "temp" ;
6+ temp . track ( ) ;
47
58function createTestInjector ( ) : IInjector {
69 const injector = new Yok ( ) ;
@@ -14,43 +17,45 @@ function createTestInjector(): IInjector {
1417 } ) ;
1518 injector . register ( "logger" , { } ) ;
1619 injector . register ( "gradleBuildArgsService" , GradleBuildArgsService ) ;
20+ injector . register ( "analyticsService" , stubs . AnalyticsService ) ;
21+ injector . register ( "staticConfig" , { TRACK_FEATURE_USAGE_SETTING_NAME : "TrackFeatureUsage" } ) ;
1722
1823 return injector ;
1924}
2025
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 ( ) => {
2429 const injector = createTestInjector ( ) ;
2530 if ( testCase . logLevel ) {
2631 const logger = injector . resolve ( "logger" ) ;
2732 logger . getLevel = ( ) => testCase . logLevel ;
2833 }
2934
3035 const gradleBuildArgsService = injector . resolve ( "gradleBuildArgsService" ) ;
31- const args = testFunction ( gradleBuildArgsService , testCase . buildConfig ) ;
36+ const args = await testFunction ( gradleBuildArgsService , testCase . buildConfig ) ;
3237
3338 assert . deepEqual ( args , testCase . expectedResult ) ;
3439 } ) ;
35- } ) ;
40+ }
3641}
37-
42+ const ksPath = temp . path ( { prefix : "ksPath" } ) ;
3843const expectedInfoLoggingArgs = [ "--quiet" ] ;
3944const expectedTraceLoggingArgs = [ "--stacktrace" , "--debug" ] ;
4045const 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 } ` ,
4247 "-Palias=keyStoreAlias" , "-Ppassword=keyStoreAliasPassword" , "-PksPassword=keyStorePassword" ] ) ;
4348
4449const releaseBuildConfig = {
4550 release : true ,
46- keyStorePath : "/my/key/store/path" ,
51+ keyStorePath : ksPath ,
4752 keyStoreAlias : "keyStoreAlias" ,
4853 keyStoreAliasPassword : "keyStoreAliasPassword" ,
4954 keyStorePassword : "keyStorePassword"
5055} ;
5156
5257describe ( "GradleBuildArgsService" , ( ) => {
53- describe ( "getBuildTaskArgs" , ( ) => {
58+ describe ( "getBuildTaskArgs" , async ( ) => {
5459 const testCases = [
5560 {
5661 name : "should return correct args for debug build with info log" ,
@@ -102,10 +107,10 @@ describe("GradleBuildArgsService", () => {
102107 }
103108 ] ;
104109
105- executeTests ( testCases , ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => gradleBuildArgsService . getBuildTaskArgs ( buildData ) ) ;
110+ await executeTests ( testCases , ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => gradleBuildArgsService . getBuildTaskArgs ( buildData ) ) ;
106111 } ) ;
107112
108- describe ( "getCleanTaskArgs" , ( ) => {
113+ describe ( "getCleanTaskArgs" , async ( ) => {
109114 const testCases = [
110115 {
111116 name : "should return correct args for debug clean build with info log" ,
@@ -157,6 +162,6 @@ describe("GradleBuildArgsService", () => {
157162 }
158163 ] ;
159164
160- executeTests ( testCases , ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => gradleBuildArgsService . getCleanTaskArgs ( buildData ) ) ;
165+ await executeTests ( testCases , ( gradleBuildArgsService : IGradleBuildArgsService , buildData : IAndroidBuildData ) => Promise . resolve ( gradleBuildArgsService . getCleanTaskArgs ( buildData ) ) ) ;
161166 } ) ;
162167} ) ;
0 commit comments