@@ -1135,111 +1135,128 @@ void dartSdkConstraint() {
11351135 'current SDK is 2.0.0.' );
11361136 });
11371137
1138- test ("pre-release override requires major SDK versions to match" , () async {
1139- await d.dir (appPath, [
1140- await d.pubspec ({
1141- 'name' : 'myapp' ,
1142- 'environment' : {'sdk' : '<2.2.3' }
1143- })
1144- ]).create ();
1138+ group ("pre-release override" , () {
1139+ group ("requires" , () {
1140+ test ("major SDK versions to match" , () async {
1141+ await d.dir (appPath, [
1142+ await d.pubspec ({
1143+ 'name' : 'myapp' ,
1144+ 'environment' : {'sdk' : '<2.2.3' }
1145+ })
1146+ ]).create ();
11451147
1146- await expectResolves (
1147- environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1148- output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1149- });
1148+ await expectResolves (
1149+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1150+ output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1151+ });
11501152
1151- test ( "pre-release override requires minor SDK versions to match" , () async {
1152- await d.dir (appPath, [
1153- await d.pubspec ({
1154- 'name' : 'myapp' ,
1155- 'environment' : {'sdk' : '<1.3.3' }
1156- })
1157- ]).create ();
1153+ test ( " minor SDK versions to match" , () async {
1154+ await d.dir (appPath, [
1155+ await d.pubspec ({
1156+ 'name' : 'myapp' ,
1157+ 'environment' : {'sdk' : '<1.3.3' }
1158+ })
1159+ ]).create ();
11581160
1159- await expectResolves (
1160- environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1161- output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1162- });
1161+ await expectResolves (
1162+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1163+ output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1164+ });
11631165
1164- test ( "pre-release override requires patch SDK versions to match" , () async {
1165- await d.dir (appPath, [
1166- await d.pubspec ({
1167- 'name' : 'myapp' ,
1168- 'environment' : {'sdk' : '<1.2.4' }
1169- })
1170- ]).create ();
1166+ test ( " patch SDK versions to match" , () async {
1167+ await d.dir (appPath, [
1168+ await d.pubspec ({
1169+ 'name' : 'myapp' ,
1170+ 'environment' : {'sdk' : '<1.2.4' }
1171+ })
1172+ ]).create ();
11711173
1172- await expectResolves (
1173- environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1174- output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1175- });
1174+ await expectResolves (
1175+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1176+ output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1177+ });
11761178
1177- test ( "pre-release override requires exclusive max" , () async {
1178- await d.dir (appPath, [
1179- await d.pubspec ({
1180- 'name' : 'myapp' ,
1181- 'environment' : {'sdk' : '<=1.2.3' }
1182- })
1183- ]).create ();
1179+ test ( " exclusive max" , () async {
1180+ await d.dir (appPath, [
1181+ await d.pubspec ({
1182+ 'name' : 'myapp' ,
1183+ 'environment' : {'sdk' : '<=1.2.3' }
1184+ })
1185+ ]).create ();
11841186
1185- await expectResolves (
1186- environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1187- output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1188- });
1187+ await expectResolves (
1188+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1189+ output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1190+ });
11891191
1190- test ( "pre-release override requires pre-release SDK" , () async {
1191- await d.dir (appPath, [
1192- await d.pubspec ({
1193- 'name' : 'myapp' ,
1194- 'environment' : {'sdk' : '<1.2.3' }
1195- })
1196- ]).create ();
1192+ test ( " pre-release SDK" , () async {
1193+ await d.dir (appPath, [
1194+ await d.pubspec ({
1195+ 'name' : 'myapp' ,
1196+ 'environment' : {'sdk' : '<1.2.3' }
1197+ })
1198+ ]).create ();
11971199
1198- await expectResolves (
1199- environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3' },
1200- error: 'Package myapp requires SDK version <1.2.3 but the current '
1201- 'SDK is 1.2.3.' );
1202- });
1200+ await expectResolves (
1201+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3' },
1202+ error: 'Package myapp requires SDK version <1.2.3 but the current '
1203+ 'SDK is 1.2.3.' );
1204+ });
12031205
1204- test ("pre-release override requires no existing pre-release constraints" ,
1205- () async {
1206- await d.dir (appPath, [
1207- await d.pubspec ({
1208- 'name' : 'myapp' ,
1209- 'environment' : {'sdk' : '<1.2.3-dev.2.0' }
1210- })
1211- ]).create ();
1206+ test ("no max pre-release constraint" , () async {
1207+ await d.dir (appPath, [
1208+ await d.pubspec ({
1209+ 'name' : 'myapp' ,
1210+ 'environment' : {'sdk' : '<1.2.3-dev.2.0' }
1211+ })
1212+ ]).create ();
12121213
1213- await expectResolves (
1214- environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1215- output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1216- });
1214+ await expectResolves (
1215+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1216+ output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1217+ });
12171218
1218- test ( "pre-release override requires no build release constraints " , () async {
1219- await d.dir (appPath, [
1220- await d.pubspec ({
1221- 'name' : 'myapp' ,
1222- 'environment' : {'sdk' : '< 1.2.3+1 ' }
1223- })
1224- ]).create ();
1219+ test ( " no min pre- release constraint " , () async {
1220+ await d.dir (appPath, [
1221+ await d.pubspec ({
1222+ 'name' : 'myapp' ,
1223+ 'environment' : {'sdk' : '>= 1.2.3-dev.2.0 <2.0.0 ' }
1224+ })
1225+ ]).create ();
12251226
1226- await expectResolves (
1227- environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3' },
1228- output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1229- });
1227+ await expectResolves (
1228+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1229+ error: 'Package myapp requires SDK version >=1.2.3-dev.2.0 <2.0.0 '
1230+ 'but the current SDK is 1.2.3-dev.1.0.' );
1231+ });
12301232
1231- test ("pre-release override works generally " , () async {
1232- await d.dir (appPath, [
1233- await d.pubspec ({
1234- 'name' : 'myapp' ,
1235- 'environment' : {'sdk' : '<1.2.3' }
1236- })
1237- ]).create ();
1233+ test ("no build release constraints " , () async {
1234+ await d.dir (appPath, [
1235+ await d.pubspec ({
1236+ 'name' : 'myapp' ,
1237+ 'environment' : {'sdk' : '<1.2.3+1 ' }
1238+ })
1239+ ]).create ();
12381240
1239- await expectResolves (
1240- environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1241- output: allOf (contains ('PUB_ALLOW_PRERELEASE_SDK' ),
1242- contains ('<=1.2.3-dev.1.0' ), contains ('myapp' )));
1241+ await expectResolves (
1242+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3' },
1243+ output: isNot (contains ('PUB_ALLOW_PRERELEASE_SDK' )));
1244+ });
1245+ });
1246+
1247+ test ("works generally" , () async {
1248+ await d.dir (appPath, [
1249+ await d.pubspec ({
1250+ 'name' : 'myapp' ,
1251+ 'environment' : {'sdk' : '<1.2.3' }
1252+ })
1253+ ]).create ();
1254+
1255+ await expectResolves (
1256+ environment: {'_PUB_TEST_SDK_VERSION' : '1.2.3-dev.1.0' },
1257+ output: allOf (contains ('PUB_ALLOW_PRERELEASE_SDK' ),
1258+ contains ('<=1.2.3-dev.1.0' ), contains ('myapp' )));
1259+ });
12431260 });
12441261}
12451262
0 commit comments