@@ -1292,6 +1292,72 @@ fn no_instances_are_semver_and_they_differ() {
12921292 ] ) ;
12931293}
12941294
1295+ #[ test]
1296+ fn workspace_protocol_version_differs_to_local_version_is_invalid_in_strict_mode ( ) {
1297+ let config = test:: mock:: config_from_mock ( json ! ( {
1298+ "strict" : true
1299+ } ) ) ;
1300+ let packages = test:: mock:: packages_from_mocks ( vec ! [ json!( {
1301+ "name" : "package-a" ,
1302+ "version" : "1.0.0" ,
1303+ "devDependencies" : {
1304+ "package-a" : "workspace:*"
1305+ }
1306+ } ) ] ) ;
1307+ let ctx = Context :: create ( config, packages) ;
1308+ let ctx = visit_packages ( ctx) ;
1309+ expect ( & ctx) . to_have_instances ( vec ! [
1310+ ExpectedInstance {
1311+ state: InstanceState :: valid( IsLocalAndValid ) ,
1312+ dependency_name: "package-a" ,
1313+ id: "package-a in /version of package-a" ,
1314+ actual: "1.0.0" ,
1315+ expected: Some ( "1.0.0" ) ,
1316+ overridden: None ,
1317+ } ,
1318+ ExpectedInstance {
1319+ state: InstanceState :: fixable( DiffersToLocal ) ,
1320+ dependency_name: "package-a" ,
1321+ id: "package-a in /devDependencies of package-a" ,
1322+ actual: "workspace:*" ,
1323+ expected: Some ( "1.0.0" ) ,
1324+ overridden: None ,
1325+ } ,
1326+ ] ) ;
1327+ }
1328+
1329+ #[ test]
1330+ fn workspace_protocol_version_differs_to_local_version_is_valid_by_default ( ) {
1331+ let config = test:: mock:: config_from_mock ( json ! ( { } ) ) ;
1332+ let packages = test:: mock:: packages_from_mocks ( vec ! [ json!( {
1333+ "name" : "package-a" ,
1334+ "version" : "1.0.0" ,
1335+ "devDependencies" : {
1336+ "package-a" : "workspace:*"
1337+ }
1338+ } ) ] ) ;
1339+ let ctx = Context :: create ( config, packages) ;
1340+ let ctx = visit_packages ( ctx) ;
1341+ expect ( & ctx) . to_have_instances ( vec ! [
1342+ ExpectedInstance {
1343+ state: InstanceState :: valid( IsLocalAndValid ) ,
1344+ dependency_name: "package-a" ,
1345+ id: "package-a in /version of package-a" ,
1346+ actual: "1.0.0" ,
1347+ expected: Some ( "1.0.0" ) ,
1348+ overridden: None ,
1349+ } ,
1350+ ExpectedInstance {
1351+ state: InstanceState :: valid( SatisfiesLocal ) ,
1352+ dependency_name: "package-a" ,
1353+ id: "package-a in /devDependencies of package-a" ,
1354+ actual: "workspace:*" ,
1355+ expected: Some ( "workspace:*" ) ,
1356+ overridden: None ,
1357+ } ,
1358+ ] ) ;
1359+ }
1360+
12951361// = Ignored Version Group =====================================================
12961362
12971363#[ test]
0 commit comments