@@ -9,9 +9,13 @@ const { spawnProcess } = require("./utils/spawn-process");
9
9
10
10
const root = path . join ( __dirname , ".." ) ;
11
11
12
- const codegenTestDir = path . join (
12
+ const testProjectDir = path . join (
13
13
root ,
14
14
"smithy-typescript-codegen-test" ,
15
+ ) ;
16
+
17
+ const codegenTestDir = path . join (
18
+ testProjectDir ,
15
19
"build" ,
16
20
"smithyprojections" ,
17
21
"smithy-typescript-codegen-test" ,
@@ -23,6 +27,16 @@ const weatherClientDir = path.join(
23
27
"typescript-client-codegen"
24
28
) ;
25
29
30
+ const releasedClientDir = path . join (
31
+ testProjectDir ,
32
+ "released-version-test" ,
33
+ "build" ,
34
+ "smithyprojections" ,
35
+ "released-version-test" ,
36
+ "source" ,
37
+ "typescript-codegen"
38
+ ) ;
39
+
26
40
// TODO(experimentalIdentityAndAuth): build generic client for integration tests
27
41
const weatherExperimentalIdentityAndAuthClientDir = path . join (
28
42
codegenTestDir ,
@@ -61,13 +75,15 @@ const buildAndCopyToNodeModules = async (packageName, codegenDir, nodeModulesDir
61
75
await spawnProcess ( "touch" , [ "yarn.lock" ] , { cwd : codegenDir } ) ;
62
76
await spawnProcess ( "yarn" , { cwd : codegenDir } ) ;
63
77
await spawnProcess ( "yarn" , [ "build" ] , { cwd : codegenDir } ) ;
64
- // After building the package, it's packed and copied to node_modules so that
78
+ // Optionally, after building the package, it's packed and copied to node_modules so that
65
79
// it can be used in integration tests by other packages within the monorepo.
66
- await spawnProcess ( "yarn" , [ "pack" ] , { cwd : codegenDir } ) ;
67
- await spawnProcess ( "rm" , [ "-rf" , packageName ] , { cwd : nodeModulesDir } ) ;
68
- await spawnProcess ( "mkdir" , [ "-p" , packageName ] , { cwd : nodeModulesDir } ) ;
69
- const targetPackageDir = path . join ( nodeModulesDir , packageName ) ;
70
- await spawnProcess ( "tar" , [ "-xf" , "package.tgz" , "-C" , targetPackageDir , "--strip-components" , "1" ] , { cwd : codegenDir } ) ;
80
+ if ( nodeModulesDir != undefined ) {
81
+ await spawnProcess ( "yarn" , [ "pack" ] , { cwd : codegenDir } ) ;
82
+ await spawnProcess ( "rm" , [ "-rf" , packageName ] , { cwd : nodeModulesDir } ) ;
83
+ await spawnProcess ( "mkdir" , [ "-p" , packageName ] , { cwd : nodeModulesDir } ) ;
84
+ const targetPackageDir = path . join ( nodeModulesDir , packageName ) ;
85
+ await spawnProcess ( "tar" , [ "-xf" , "package.tgz" , "-C" , targetPackageDir , "--strip-components" , "1" ] , { cwd : codegenDir } ) ;
86
+ }
71
87
} catch ( e ) {
72
88
console . log ( `Building and copying package \`${ packageName } \` in \`${ codegenDir } \` to \`${ nodeModulesDir } \` failed:` )
73
89
console . log ( e ) ;
@@ -84,4 +100,6 @@ const buildAndCopyToNodeModules = async (packageName, codegenDir, nodeModulesDir
84
100
await buildAndCopyToNodeModules ( "@smithy/identity-and-auth-http-api-key-auth-service" , httpApiKeyAuthClientDir , nodeModulesDir ) ;
85
101
// TODO(experimentalIdentityAndAuth): add `@httpBearerAuth` client for integration tests
86
102
await buildAndCopyToNodeModules ( "@smithy/identity-and-auth-http-bearer-auth-service" , httpBearerAuthClientDir , nodeModulesDir ) ;
103
+ // Test released version of smithy-typescript codegenerators, but
104
+ await buildAndCopyToNodeModules ( "released" , releasedClientDir , undefined ) ;
87
105
} ) ( ) ;
0 commit comments