@@ -68,6 +68,97 @@ for (const shell of [Bash, Zsh, Fish, PowerShell, WinCmd]) {
68
68
. execute ( shell )
69
69
} )
70
70
71
+ test ( `package.json devEngines.runtime` , async ( ) => {
72
+ await writeFile (
73
+ join ( testCwd ( ) , "package.json" ) ,
74
+ JSON . stringify ( {
75
+ devEngines : { runtime : { name : "node" , version : "8.11.3" } } ,
76
+ } ) ,
77
+ )
78
+ await script ( shell )
79
+ . then ( shell . env ( { resolveDevEngines : true } ) )
80
+ . then ( shell . call ( "fnm" , [ "install" ] ) )
81
+ . then ( shell . call ( "fnm" , [ "use" ] ) )
82
+ . then ( testNodeVersion ( shell , "v8.11.3" ) )
83
+ . takeSnapshot ( shell )
84
+ . execute ( shell )
85
+ } )
86
+
87
+ test ( `package.json devEngines.runtime with semver range` , async ( ) => {
88
+ await writeFile (
89
+ join ( testCwd ( ) , "package.json" ) ,
90
+ JSON . stringify ( {
91
+ devEngines : { runtime : { name : "node" , version : "^6 < 6.17.1" } } ,
92
+ } ) ,
93
+ )
94
+ await script ( shell )
95
+ . then ( shell . env ( { resolveDevEngines : true } ) )
96
+ . then ( shell . call ( "fnm" , [ "install" ] ) )
97
+ . then ( shell . call ( "fnm" , [ "use" ] ) )
98
+ . then ( testNodeVersion ( shell , "v6.17.0" ) )
99
+ . takeSnapshot ( shell )
100
+ . execute ( shell )
101
+ } )
102
+
103
+ test ( `package.json devEngines.runtime (array)` , async ( ) => {
104
+ await writeFile (
105
+ join ( testCwd ( ) , "package.json" ) ,
106
+ JSON . stringify ( {
107
+ devEngines : {
108
+ runtime : [
109
+ { name : "bun" , version : "1.0.0" } ,
110
+ { name : "node" , version : "8.11.3" } ,
111
+ ] ,
112
+ } ,
113
+ } ) ,
114
+ )
115
+ await script ( shell )
116
+ . then ( shell . env ( { resolveDevEngines : true } ) )
117
+ . then ( shell . call ( "fnm" , [ "install" ] ) )
118
+ . then ( shell . call ( "fnm" , [ "use" ] ) )
119
+ . then ( testNodeVersion ( shell , "v8.11.3" ) )
120
+ . takeSnapshot ( shell )
121
+ . execute ( shell )
122
+ } )
123
+
124
+ test ( `package.json devEngines.runtime with semver range (array)` , async ( ) => {
125
+ await writeFile (
126
+ join ( testCwd ( ) , "package.json" ) ,
127
+ JSON . stringify ( {
128
+ devEngines : {
129
+ runtime : [
130
+ { name : "bun" , version : "1.0.0" } ,
131
+ { name : "node" , version : "^6 < 6.17.1" } ,
132
+ ] ,
133
+ } ,
134
+ } ) ,
135
+ )
136
+ await script ( shell )
137
+ . then ( shell . env ( { resolveDevEngines : true } ) )
138
+ . then ( shell . call ( "fnm" , [ "install" ] ) )
139
+ . then ( shell . call ( "fnm" , [ "use" ] ) )
140
+ . then ( testNodeVersion ( shell , "v6.17.0" ) )
141
+ . takeSnapshot ( shell )
142
+ . execute ( shell )
143
+ } )
144
+
145
+ test ( `package.json engines.node & devEngines.runtime` , async ( ) => {
146
+ await writeFile (
147
+ join ( testCwd ( ) , "package.json" ) ,
148
+ JSON . stringify ( {
149
+ engines : { node : "1.0.0" } ,
150
+ devEngines : { runtime : { name : "node" , version : "8.11.3" } } ,
151
+ } ) ,
152
+ )
153
+ await script ( shell )
154
+ . then ( shell . env ( { resolveDevEngines : true , resolveEngines : true } ) )
155
+ . then ( shell . call ( "fnm" , [ "install" ] ) )
156
+ . then ( shell . call ( "fnm" , [ "use" ] ) )
157
+ . then ( testNodeVersion ( shell , "v8.11.3" ) )
158
+ . takeSnapshot ( shell )
159
+ . execute ( shell )
160
+ } )
161
+
71
162
test ( `resolves partial semver` , async ( ) => {
72
163
await script ( shell )
73
164
. then ( shell . env ( { } ) )
0 commit comments