@@ -32,8 +32,13 @@ const packageManager = process.env.PM || "npm";
32
32
if ( testCases . length > 0 ) {
33
33
console . log ( `Using ${ packageManager } ` ) ;
34
34
35
- describe . each ( testCases ) ( "fixture $name" , ( { name, skipTypecheck } ) => {
35
+ describe . each ( testCases ) ( "fixture $name" , async ( { name, skipTypecheck } ) => {
36
36
const fixtureDir = resolve ( join ( process . cwd ( ) , "e2e/fixtures" , name ) ) ;
37
+ const resolvedConfig = await readConfig ( fixtureDir ) ;
38
+
39
+ if ( resolvedConfig . status === "error" ) {
40
+ throw new Error ( `cannot resolve config in directory ${ fixtureDir } ` ) ;
41
+ }
37
42
38
43
beforeAll ( async ( ) => {
39
44
await rm ( resolve ( join ( fixtureDir , ".trigger" ) ) , { force : true , recursive : true } ) ;
@@ -84,23 +89,17 @@ if (testCases.length > 0) {
84
89
{ timeout : 60_000 }
85
90
) ;
86
91
92
+ if ( ! skipTypecheck ) {
93
+ test ( "typechecks" , async ( ) => {
94
+ await expect (
95
+ ( async ( ) => await typecheckProject ( resolvedConfig . config ) ) ( )
96
+ ) . resolves . not . toThrowError ( ) ;
97
+ } ) ;
98
+ }
99
+
87
100
test (
88
101
"compiles" ,
89
102
async ( ) => {
90
- const resolvedConfig = await readConfig ( fixtureDir ) ;
91
-
92
- if ( resolvedConfig . status === "error" ) {
93
- throw new Error ( `cannot resolve config in directory ${ fixtureDir } ` ) ;
94
- }
95
-
96
- if ( ! skipTypecheck ) {
97
- const typecheck = await typecheckProject ( resolvedConfig . config ) ;
98
-
99
- if ( ! typecheck ) {
100
- throw new Error ( "Typecheck failed, aborting deployment" ) ;
101
- }
102
- }
103
-
104
103
let compileArgs = [ "deploy-compile" , fixtureDir , "--log-level" , logLevel ] ;
105
104
if ( skipTypecheck ) compileArgs . push ( "--skip-typecheck" ) ;
106
105
@@ -126,7 +125,7 @@ function installArgs(packageManager: string) {
126
125
return [ "install" , "--frozen-lockfile" ] ;
127
126
case "pnpm" :
128
127
case "yarn" :
129
- throw new Error ( "pnpm and yarn version must be read from 'package.json' 'engines' field " ) ;
128
+ throw new Error ( "pnpm and yarn must install using `corepack use` " ) ;
130
129
case "npm" :
131
130
return [ "ci" , "--no-audit" ] ;
132
131
default :
0 commit comments