11import { MarketplaceService } from './marketplace.service' ;
2- import { existsSync , mkdir , readFileSync , writeFileSync } from 'fs' ;
2+ import { existsSync , mkdir , readFileSync , writeFileSync , rename } from 'fs' ;
33import * as path from 'path' ;
44import * as rimraf from 'rimraf' ;
55import { ncp } from 'ncp' ;
@@ -8,6 +8,7 @@ import { execPromise, dirNameFromPluginName } from './execPromise';
88
99const testDirectory = 'test' ;
1010const testProject = 'baseTS' ;
11+ const testProjectOriginalSuffix = '_original' ;
1112
1213export namespace ProjectService {
1314
@@ -18,30 +19,30 @@ export namespace ProjectService {
1819
1920 await _createTestDirectory ( ) ;
2021 await _createProject ( testProject ) ;
22+ await _renameTestProject ( ) ;
2123 }
2224
2325 export async function testPlugin ( plugin : MarketplaceService . PluginModel ) {
2426 const result = { android : false , ios : false } ;
2527 let hasPlatform = false ;
2628 try {
27- const projectName = dirNameFromPluginName ( plugin . name ) ;
28- await _copyTestProject ( projectName ) ;
29- await _installPlugin ( plugin . name , projectName , _isDev ( plugin . name ) ) ;
29+ await _copyTestProject ( testProject ) ;
30+ await _installPlugin ( plugin . name , testProject , _isDev ( plugin . name ) ) ;
3031 if ( plugin . badges . androidVersion ) {
31- result . android = ! ! ( await _buildProject ( projectName , 'android' ) ) ;
32+ result . android = ! ! ( await _buildProject ( testProject , 'android' ) ) ;
3233 hasPlatform = true ;
3334 }
3435
3536 if ( plugin . badges . iosVersion ) {
36- result . ios = ! ! ( await _buildProject ( projectName , 'ios' ) ) ;
37+ result . ios = ! ! ( await _buildProject ( testProject , 'ios' ) ) ;
3738 hasPlatform = true ;
3839 }
3940
4041 if ( ! hasPlatform ) {
4142 Logger . error ( 'plugin has no platform' ) ;
4243 }
4344
44- await _removeDirectory ( path . join ( testDirectory , projectName ) ) ;
45+ await _removeDirectory ( path . join ( testDirectory , testProject ) ) ;
4546 } catch ( errExec ) {
4647 Logger . error ( JSON . stringify ( errExec ) ) ;
4748 }
@@ -81,9 +82,22 @@ export namespace ProjectService {
8182 }
8283
8384 async function _copyTestProject ( name : string ) {
85+ const newPath = path . join ( testDirectory , name ) ;
86+ if ( existsSync ( newPath ) ) {
87+ await _removeDirectory ( newPath ) ;
88+ }
89+
8490 ncp . limit = 16 ;
8591 return new Promise ( ( resolve , reject ) => {
86- ncp ( path . join ( testDirectory , testProject ) , path . join ( testDirectory , name ) , err => {
92+ ncp ( path . join ( testDirectory , testProject + testProjectOriginalSuffix ) , newPath , err => {
93+ return err ? reject ( err ) : resolve ( ) ;
94+ } ) ;
95+ } ) ;
96+ }
97+
98+ async function _renameTestProject ( ) {
99+ return new Promise ( ( resolve , reject ) => {
100+ rename ( path . join ( testDirectory , testProject ) , path . join ( testDirectory , testProject + testProjectOriginalSuffix ) , err => {
87101 return err ? reject ( err ) : resolve ( ) ;
88102 } ) ;
89103 } ) ;
0 commit comments